package com.l7tech.server.folder;

import com.l7tech.gateway.common.security.rbac.OperationType;
import com.l7tech.gateway.common.security.rbac.Role;
import com.l7tech.objectmodel.Entity;
import com.l7tech.objectmodel.EntityHeader;
import com.l7tech.objectmodel.EntityType;
import com.l7tech.objectmodel.FindException;
import com.l7tech.objectmodel.Goid;
import com.l7tech.objectmodel.SaveException;
import com.l7tech.objectmodel.StaleUpdateException;
import com.l7tech.objectmodel.UpdateException;
import com.l7tech.objectmodel.EntityManager.UniqueType;
import com.l7tech.objectmodel.folder.Folder;
import com.l7tech.objectmodel.folder.FolderHeader;
import com.l7tech.server.FolderSupportHibernateEntityManager;
import com.l7tech.server.security.rbac.RoleManager;
import com.l7tech.util.Config;
import com.l7tech.util.PathUtils;
import com.l7tech.util.TextUtils;
import com.l7tech.util.CollectionUtils.MapBuilder;
import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.regex.Pattern;
import org.apache.commons.lang3.StringUtils;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
public class FolderManagerImpl extends FolderSupportHibernateEntityManager<Folder, FolderHeader> implements FolderManager {
   private static final Logger n;
   private static final String o;
   private static final String p;
   private static final String q;
   private static final Pattern r;
   static final String s;
   static final String t;
   private final RoleManager u;
   private final Config v;
   private static final String[] w;

   public FolderManagerImpl(RoleManager var1, @NotNull Config var2) {
      if (var2 == null) {
         c(0);
      }

      super();
      this.u = var1;
      this.v = var2;
   }

   @Transactional(propagation = Propagation.SUPPORTS)
   public Class<? extends Entity> getImpClass() {
      return Folder.class;
   }

   @Transactional(propagation = Propagation.SUPPORTS)
   @Override
   public Class<? extends Entity> getInterfaceClass() {
      return Folder.class;
   }

   @Transactional(propagation = Propagation.SUPPORTS)
   @Override
   public String getTableName() {
      return w[43];
   }

   protected FolderHeader newHeader(Folder var1) {
      return new FolderHeader(var1);
   }

   @Override
   protected UniqueType getUniqueType() {
      return UniqueType.OTHER;
   }

   protected Collection<Map<String, Object>> getUniqueConstraints(Folder var1) {
      HashMap var2 = new HashMap();
      String[] var3 = w;
      var2.put(var3[13], var1.getFolder());
      var2.put(var3[17], var1.getName());
      return Arrays.asList(var2);
   }

   public Folder findByHeader(EntityHeader var1) throws FindException {
      Folder var2 = (Folder)super.findByHeader(var1);

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

      return this.a(var1);
   }

   private Folder a(EntityHeader 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 1
      // 01: ifnonnull 0c
      // 04: aconst_null
      // 05: goto 10
      // 08: invokestatic com/l7tech/server/folder/FolderManagerImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0b: athrow
      // 0c: aload 1
      // 0d: invokevirtual com/l7tech/objectmodel/EntityHeader.getDescription ()Ljava/lang/String;
      // 10: astore 2
      // 11: aload 2
      // 12: ifnonnull 1b
      // 15: aconst_null
      // 16: areturn
      // 17: invokestatic com/l7tech/server/folder/FolderManagerImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1a: athrow
      // 1b: aload 0
      // 1c: invokevirtual com/l7tech/server/folder/FolderManagerImpl.findRootFolder ()Lcom/l7tech/objectmodel/folder/Folder;
      // 1f: astore 3
      // 20: ldc "/"
      // 22: aload 2
      // 23: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 26: ifeq 2f
      // 29: aload 3
      // 2a: areturn
      // 2b: invokestatic com/l7tech/server/folder/FolderManagerImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 2e: athrow
      // 2f: new java/util/HashMap
      // 32: dup
      // 33: invokespecial java/util/HashMap.<init> ()V
      // 36: astore 5
      // 38: aload 3
      // 39: astore 6
      // 3b: aload 2
      // 3c: ldc "/"
      // 3e: invokevirtual java/lang/String.split (Ljava/lang/String;)[Ljava/lang/String;
      // 41: astore 7
      // 43: aload 7
      // 45: astore 8
      // 47: aload 8
      // 49: arraylength
      // 4a: istore 9
      // 4c: bipush 0
      // 4d: istore 10
      // 4f: iload 10
      // 51: iload 9
      // 53: if_icmpge d3
      // 56: aload 8
      // 58: iload 10
      // 5a: aaload
      // 5b: astore 11
      // 5d: ldc ""
      // 5f: aload 11
      // 61: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 64: ifeq 6e
      // 67: goto cd
      // 6a: invokestatic com/l7tech/server/folder/FolderManagerImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 6d: athrow
      // 6e: aload 5
      // 70: getstatic com/l7tech/server/folder/FolderManagerImpl.w [Ljava/lang/String;
      // 73: astore 12
      // 75: aload 12
      // 77: bipush 42
      // 79: aaload
      // 7a: aload 6
      // 7c: invokeinterface java/util/Map.put (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; 3
      // 81: pop
      // 82: aload 5
      // 84: aload 12
      // 86: bipush 10
      // 88: aaload
      // 89: aload 11
      // 8b: invokeinterface java/util/Map.put (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; 3
      // 90: pop
      // 91: aload 0
      // 92: bipush 1
      // 93: anewarray 117
      // 96: dup
      // 97: bipush 0
      // 98: aload 5
      // 9a: aastore
      // 9b: invokestatic java/util/Arrays.asList ([Ljava/lang/Object;)Ljava/util/List;
      // 9e: invokevirtual com/l7tech/server/folder/FolderManagerImpl.findMatching (Ljava/util/Collection;)Ljava/util/List;
      // a1: astore 4
      // a3: aload 4
      // a5: ifnull ba
      // a8: aload 4
      // aa: invokeinterface java/util/List.size ()I 1
      // af: bipush 1
      // b0: if_icmpeq c0
      // b3: goto ba
      // b6: invokestatic com/l7tech/server/folder/FolderManagerImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // b9: athrow
      // ba: aconst_null
      // bb: areturn
      // bc: invokestatic com/l7tech/server/folder/FolderManagerImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // bf: athrow
      // c0: aload 4
      // c2: bipush 0
      // c3: invokeinterface java/util/List.get (I)Ljava/lang/Object; 2
      // c8: checkcast com/l7tech/objectmodel/folder/Folder
      // cb: astore 6
      // cd: iinc 10 1
      // d0: goto 4f
      // d3: aload 6
      // d5: areturn
      // try (0 -> 4): 4 com/l7tech/objectmodel/FindException
      // try (9 -> 13): 13 com/l7tech/objectmodel/FindException
      // try (18 -> 24): 24 com/l7tech/objectmodel/FindException
      // try (50 -> 55): 55 com/l7tech/objectmodel/FindException
      // try (83 -> 89): 90 com/l7tech/objectmodel/FindException
      // try (85 -> 94): 94 com/l7tech/objectmodel/FindException
   }

   public void update(Folder var1) throws UpdateException {
      try {
         Folder var2 = this.findByPrimaryKey(var1.getGoid());
         if (var2 == null) {
            String[] var7 = w;
            String var6 = var7[36];
            n.info(var7[15] + var1.getName() + var7[20]);
            throw new StaleUpdateException(var6);
         }

         if (var2.getVersion() != var1.getVersion()) {
            String[] var4 = w;
            String var3 = var4[11];
            n.info(var4[4] + var1.getName() + var4[27]);
            throw new StaleUpdateException(var3);
         }
      } catch (FindException var5) {
         throw new UpdateException(w[30]);
      }

      super.update(var1);
   }

   public void updateFolder(Goid var1, Folder var2) throws UpdateException {
      this.setParentFolderForEntity(var1, var2);
   }

   public void updateFolder(Folder var1, Folder var2) throws UpdateException {
      try {
         if (var1 == null) {
            throw new UpdateException(w[21]);
         }
      } catch (UpdateException var3) {
         throw a(var3);
      }

      this.setParentFolderForEntity(var1.getGoid(), var2);
   }

   @Override
   public Folder findRootFolder() throws FindException {
      for (Folder var3 : super.findAll()) {
         try {
            if (var3.getFolder() == null) {
               return var3;
            }
         } catch (FindException var4) {
            throw a(var4);
         }
      }

      throw new FindException(w[9]);
   }

   @Nullable
   @Override
   public Folder findByPath(@Nullable String var1) throws FindException {
      try {
         if (StringUtils.isBlank(var1)) {
            return null;
         }
      } catch (FindException var14) {
         throw a(var14);
      }

      try {
         if (var1.equals("/")) {
            return this.findRootFolder();
         }
      } catch (FindException var12) {
         throw a(var12);
      }

      String var10000;
      label47: {
         try {
            if (var1.startsWith("/")) {
               var10000 = var1;
               break label47;
            }
         } catch (FindException var13) {
            throw a(var13);
         }

         var10000 = "/" + var1;
      }

      String var2 = var10000;
      String[] var3 = PathUtils.getPathElements(var2);
      int var4 = var3.length;
      if (var4 > 0) {
         String var5 = PathUtils.getEscapedPathString(var3);
         String var6 = var3[var4 - 1];

         for (Folder var9 : this.a(var6)) {
            String var10 = this.a(var9);

            try {
               if (var5.equals(var10)) {
                  return var9;
               }
            } catch (FindException var11) {
               throw a(var11);
            }
         }
      } else {
         n.log(Level.WARNING, w[33] + var1);
      }

      return null;
   }

   @NotNull
   List<Folder> a(@NotNull String var1) throws FindException {
      try {
         if (var1 == null) {
            c(1);
         }
      } catch (FindException var3) {
         throw a(var3);
      }

      try {
         List var10000 = this.findMatching(Arrays.asList(MapBuilder.builder().put(w[10], var1).map()));
         if (var10000 == null) {
            c(2);
         }

         return var10000;
      } catch (FindException var2) {
         throw a(var2);
      }
   }

   @Nullable
   private String a(@NotNull Folder var1) throws FindException {
      try {
         if (var1 == null) {
            c(3);
         }
      } catch (FindException var4) {
         throw a(var4);
      }

      try {
         if (this.b(var1)) {
            return "/";
         }
      } catch (FindException var6) {
         throw a(var6);
      }

      ArrayList var2 = new ArrayList();
      var2.add(var1.getName());
      Folder var3 = var1.getFolder();

      while (var3 != null) {
         var3 = this.findByPrimaryKey(var3.getGoid());

         try {
            if (!this.b(var3)) {
               var2.add(0, var3.getName());
            }
         } catch (FindException var5) {
            throw a(var5);
         }

         var3 = var3.getFolder();
      }

      return PathUtils.getEscapedPathString(var2.toArray(new String[var2.size()]));
   }

   private boolean b(@NotNull Folder var1) {
      try {
         if (var1 == null) {
            c(4);
         }
      } catch (IllegalArgumentException var2) {
         throw a(var2);
      }

      return Folder.ROOT_FOLDER_ID.equals(var1.getGoid());
   }

   @Nullable
   @Override
   public Folder createPath(@NotNull String var1) throws FindException, SaveException {
      try {
         if (var1 == null) {
            c(5);
         }
      } catch (FindException var12) {
         throw a(var12);
      }

      try {
         if (StringUtils.isBlank(var1)) {
            throw new IllegalArgumentException(w[38]);
         }
      } catch (FindException var9) {
         throw a(var9);
      }

      String var10000;
      label53: {
         try {
            if (var1.startsWith("/")) {
               var10000 = var1;
               break label53;
            }
         } catch (FindException var11) {
            throw a(var11);
         }

         var10000 = "/" + var1;
      }

      String var2 = var10000;
      List var3 = PathUtils.getPaths(var2);
      String[] var4 = PathUtils.getPathElements(var2);
      Folder var5 = this.findRootFolder();
      Folder var6 = null;

      for (int var7 = 0; var7 < var3.size(); var7++) {
         Folder var8 = this.findByPath((String)var3.get(var7));
         if (var8 == null) {
            var6 = new Folder(var4[var7], var5);
            this.save(var6);
            var5 = var6;
         } else {
            var5 = var8;
         }
      }

      try {
         if (var6 == null) {
            return var5;
         }
      } catch (FindException var10) {
         throw a(var10);
      }

      return var6;
   }

   public void createRoles(Folder var1) throws SaveException {
      try {
         if (this.v.getBooleanProperty(w[26], true)) {
            this.addReadonlyFolderRole(var1);
         }
      } catch (SaveException var3) {
         throw a(var3);
      }

      try {
         if (this.v.getBooleanProperty(w[41], true)) {
            this.addManageFolderRole(var1);
         }
      } catch (SaveException var2) {
         throw a(var2);
      }
   }

   public void updateRoles(Folder var1) throws UpdateException {
      try {
         this.u.renameEntitySpecificRoles(EntityType.FOLDER, var1, r);
      } catch (FindException var3) {
         throw new UpdateException(w[35], var3);
      }
   }

   @Override
   public void addManageFolderRole(Folder var1) throws SaveException {
      String var2 = TextUtils.truncStringMiddle(var1.getName(), 50);
      String[] var5 = w;
      String var3 = MessageFormat.format(var5[28], var2, var1.getGoid());
      n.info(var5[0] + var3);
      Role var4 = new Role();
      var4.setName(var3);
      var4.addEntityPermission(OperationType.READ, EntityType.FOLDER, var1.getId());
      var4.addFolderPermission(OperationType.READ, EntityType.SERVICE, var1, true);
      var4.addFolderPermission(OperationType.UPDATE, EntityType.SERVICE, var1, true);
      var4.addFolderPermission(OperationType.DELETE, EntityType.SERVICE, var1, true);
      var4.addFolderPermission(OperationType.READ, EntityType.POLICY, var1, true);
      var4.addFolderPermission(OperationType.UPDATE, EntityType.POLICY, var1, true);
      var4.addFolderPermission(OperationType.DELETE, EntityType.POLICY, var1, true);
      var4.addFolderPermission(OperationType.READ, EntityType.SERVICE_ALIAS, var1, true);
      var4.addFolderPermission(OperationType.DELETE, EntityType.SERVICE_ALIAS, var1, true);
      var4.addFolderPermission(OperationType.READ, EntityType.POLICY_ALIAS, var1, true);
      var4.addFolderPermission(OperationType.DELETE, EntityType.POLICY_ALIAS, var1, true);
      var4.addFolderPermission(OperationType.READ, EntityType.FOLDER, var1, true);
      var4.addEntityPermission(OperationType.READ, EntityType.ID_PROVIDER_CONFIG, null);
      var4.addEntityPermission(OperationType.READ, EntityType.USER, null);
      var4.addEntityPermission(OperationType.READ, EntityType.GROUP, null);
      var4.addEntityPermission(OperationType.READ, EntityType.JMS_CONNECTION, null);
      var4.addEntityPermission(OperationType.READ, EntityType.JMS_ENDPOINT, null);
      var4.addEntityFolderAncestryPermission(EntityType.FOLDER, var1.getGoid());
      var4.addEntityPermission(OperationType.READ, EntityType.SERVICE_TEMPLATE, null);
      var4.addEntityPermission(OperationType.READ, EntityType.JDBC_CONNECTION, null);
      var4.addEntityPermission(OperationType.READ, EntityType.SSG_ACTIVE_CONNECTOR, null);
      var4.addEntityPermission(OperationType.READ, EntityType.ENCAPSULATED_ASSERTION, null);
      var4.addEntityPermission(OperationType.READ, EntityType.ASSERTION_ACCESS, null);
      var4.setEntityType(EntityType.FOLDER);
      var4.setEntityGoid(var1.getGoid());
      var4.setDescription(var5[25]);
      this.u.save(var4);
   }

   @Override
   public void addReadonlyFolderRole(Folder var1) throws SaveException {
      String var2 = TextUtils.truncStringMiddle(var1.getName(), 50);
      String[] var5 = w;
      String var3 = MessageFormat.format(var5[24], var2, var1.getGoid());
      n.info(var5[7] + var3);
      Role var4 = new Role();
      var4.setName(var3);
      var4.addEntityPermission(OperationType.READ, EntityType.FOLDER, var1.getId());
      var4.addFolderPermission(OperationType.READ, EntityType.SERVICE, var1, true);
      var4.addFolderPermission(OperationType.READ, EntityType.POLICY, var1, true);
      var4.addFolderPermission(OperationType.READ, EntityType.SERVICE_ALIAS, var1, true);
      var4.addFolderPermission(OperationType.READ, EntityType.POLICY_ALIAS, var1, true);
      var4.addFolderPermission(OperationType.READ, EntityType.FOLDER, var1, true);
      var4.addEntityPermission(OperationType.READ, EntityType.ID_PROVIDER_CONFIG, null);
      var4.addEntityPermission(OperationType.READ, EntityType.USER, null);
      var4.addEntityPermission(OperationType.READ, EntityType.GROUP, null);
      var4.addEntityPermission(OperationType.READ, EntityType.JMS_CONNECTION, null);
      var4.addEntityPermission(OperationType.READ, EntityType.JMS_ENDPOINT, null);
      var4.addEntityFolderAncestryPermission(EntityType.FOLDER, var1.getGoid());
      var4.addEntityPermission(OperationType.READ, EntityType.SERVICE_TEMPLATE, null);
      var4.addEntityPermission(OperationType.READ, EntityType.ENCAPSULATED_ASSERTION, null);
      var4.addEntityPermission(OperationType.READ, EntityType.ASSERTION_ACCESS, null);
      var4.setEntityType(EntityType.FOLDER);
      var4.setEntityGoid(var1.getGoid());
      var4.setDescription(var5[39]);
      this.u.save(var4);
   }

   static {
      String[] var5 = new String[45];
      int var3 = 0;
      String var2 = "p\u001eP\u0018}\u000e\u0007TL[\u001c~G;\\\u0000PC)\fZ\u001fg\u0016f\u0013/\\\u0000Q\u001c{\u0007T\tA)h\u0013\u0001=\u001bS\tDW;\u001e\u0014\u0017\u0012H%V[\u000bKH^)NG\u0019S\u001dF4G\u0012\u0003\u0011\u0015%!D2o\bn%mKIn\u0010n8$=\b\u001e\u0016\u0005T0:4\u00190\u001c] \u0007u\u0003Y\u001dl\u0015I\nU\u0005[\u001dK\u001e'R\u0001P\u0006P\u0003[\u001f`\u0000\u0013p\u001eP\u0018}\u000e\u0007TL[\u001c~G;\\\u0000PC)#A\u000eT\u001a'\u0006\u001cG\u0003g\u0016e\u0002GE\u0005P\u000eO\b\u0005W\tGWh\u0012\u001d\\/G\u001ch\u0013\f\u0010}\u0003\u0015\u000bf\b\u001d\u0013\nZ\u0015m\u0002\u001b\u0012M\u0004]\rX\u001cuf\u0002T\u001be\u0002IG\u0003\u0015\nh\u0011\f\u0013\nZ\u0015m\u0002\u001b\u0013\u000eP\u001ah\u0012\u001aVLA\u0011lG\u000f\\\u0000Q\u001c{G\u001eR\u001f\u0015\u001cm\u000e\u001dV\b\u0015\u001bpG\b]\u0003A\u0011l\u0015IF\u001fP\u000b'mIc\u0000P\u0018z\u0002IA\tS\u000bl\u0014\u0001\u0013\u0018]\u001c)\u0013\u001bV\t\u0015\u001ff\u0015IR\u0002\u0015\fy\u0003\bG\tQY\u007f\u0002\u001b@\u0005Z\u0017'*s\"Z\rG\u0012\u0005_LX\u001c}\u000f\u0006WL\u0010\n'B\u001a\u0013\u0001@\n}G\u0007\\\u0018\u0015\u000bl\u0013\u001cA\u0002\u0015\u0017|\u000b\u0005\u0006U\u0003Y\u001dl\u0015\nP\u001eP\u0018}\u00029R\u0018]\u001ep\r[\u0017f\u0013IF\u001cQ\u0018}\u0002IQ\tV\u0018|\u0014\f\u0013\nZ\u0015m\u0002\u001b\u0013K>r\u001eR\fd\u0002\u0007GLS\u0016{G)}\u0003A7|\u000b\u0005\u0013\u001cT\u000bh\n\fG\tGY.B\u001a\u0014LZ\u001f)B\u001a\u001dIFYd\u0012\u001aGL[\u0016}G\u000bVL[\fe\u000b\u0004]\rX\u001c%A\u000eT\u001a'\u0006\u001cG\u0003g\u0016e\u0002G^\r[\u0018n\u0002/\\\u0000Q\u001c{I\bF\u0018Z:{\u0002\bG\t\u0018~\r[\u0018n\u0002IH\\HYO\b\u0005W\tGY!D\u0012\u0002\u0011\u001c\r\u0014LB\u0018zG\rV\u0000P\rl\u0003\u001fu\u0003Y\u001dl\u0015IZ\u001f\u0015\u000bl\u0016\u001cZ\u001eP\u001d)\u0005\u001cGLX\u0010z\u0014\u0000]\u000b\u001b\u0016e\u0005P\u000e)\u001cYNLs\u0016e\u0003\fAL\u001dZrV\u0014\u001a*P\u0003XVeP\u001dV\u000f]Vz\u0002\u001bE\tGVo\b\u0005W\tGVO\b\u0005W\tG4h\t\bT\tG0d\u0017\u0005\u0016e\u0005P\u000e)\u001cYNLs\u0016e\u0003\fAL\u001dZrV\u0014\u001awf\u001fP\u000bzG\b@\u001f\\\u001eg\u0002\r\u0013\u0018ZY}\u000f\f\u0013\u0017\u0005\u0004)\u0015\u0006_\t\u0015\u0011h\u0011\f\u0013\u0018]\u001c)\u0006\u000bZ\u0000\\\rpG\u001d\\LC\u0010l\u0010E\u0013\u0019E\u001dh\u0013\f\u0013\r[\u001d)\u0003\f_\tA\u001c)\u0014\fA\u001a\\\u001al\u0014IR\u0002QYy\b\u0005Z\u000f\\\u001czG\u001eZ\u0018]\u0010gG\u001d[\t\u0015\u00028\u001aIU\u0003Y\u001dl\u0015G#A\u000eT\u001a'\u0006\u001cG\u0003g\u0016e\u0002GE\u0005P\u000eO\b\u0005W\tGWh\u0012\u001d\\/G\u001ch\u0013\f\u0012\u0014LC\u001c{\u0014\u0000\\\u0002\u0015\u0014`\u0014\u0004R\u0018V\u0011\u0018~\r[\u0018n\u0002IH\\HYO\b\u0005W\tGY!D\u0012\u0002\u0011\u001c*P\u0003XVeP\u001dV\u000f]Vz\u0002\u001bE\tGVo\b\u0005W\tGVO\b\u0005W\tG4h\t\bT\tG0d\u0017\u0005?p\u0003@\u0015m\tNGLS\u0010g\u0003IC\u001eP\u000f`\b\u001c@LC\u001c{\u0014\u0000\\\u0002\u001d\n G\u001d\\LV\u0011l\u0004\u0002\u0013\nZ\u000b)\u0004\u0000A\u000f@\u0015h\u0015IU\u0003Y\u001dl\u0015\u001a\u0006\u000f\u0005[\u0010}Y\u0006u\u0003Y\u001dl\u0015\u0016f\u0002T\u001be\u0002IG\u0003\u0015\th\u0015\u001aVLE\u0018}\u000fS\u0013\nU\u0003Y\u001dl\u00159R\u0018]\u001cp\u0003@\u0015m\tNGLS\u0010g\u0003Ia\u0003Y\u001c)\u0013\u0006\u0013\u001eP\u0017h\n\fuf\u0002T\u001be\u0002IG\u0003\u0015\nh\u0011\f\u0013\nZ\u0015m\u0002\u001b\u0013\u000eP\u001ah\u0012\u001aVLA\u0011lG\u000f\\\u0000Q\u001c{G\u001eR\u001f\u0015\u001dl\u000b\fG\tQYk\u001eIR\u0002Z\ra\u0002\u001b\u0013\u0019F\u001c{Icc\u0000P\u0018z\u0002IA\tS\u000bl\u0014\u0001\u0013\u0018]\u001c)\u0013\u001bV\t\u0015\u001ff\u0015IR\u0002\u0015\fy\u0003\bG\tQY\u007f\u0002\u001b@\u0005Z\u0017'\u0006u\u0003Y\u001dl\u0015!g\u0004PYo\b\u0005W\tGYy\u0006\u001d[L\\\n)\t\u0006GLF\tl\u0004\u0000U\u0005P\u001d'df\u001fP\u000bzG\b@\u001f\\\u001eg\u0002\r\u0013\u0018ZY}\u000f\f\u0013\u0017\u0005\u0004)\u0015\u0006_\t\u0015\u0011h\u0011\f\u0013\u0018]\u001c)\u0006\u000bZ\u0000\\\rpG\u001d\\LC\u0010l\u0010I@\tG\u000f`\u0004\f@LT\u0017mG\u0019\\\u0000\\\u001a`\u0002\u001a\u0013\u001b\\\ra\u000e\u0007\u0013\u0018]\u001c)\u001cXNLS\u0016e\u0003\fAB\nU\u0005[\u001dK\u001e'R\u0001P%A\u000eT\u001a'\u0006\u001cG\u0003g\u0016e\u0002G^\r[\u0018n\u0002/\\\u0000Q\u001c{I\bF\u0018Z:{\u0002\bG\t\u0006U\u0003Y\u001dl\u0015";
      int var4 = "p\u001eP\u0018}\u000e\u0007TL[\u001c~G;\\\u0000PC)\fZ\u001fg\u0016f\u0013/\\\u0000Q\u001c{\u0007T\tA)h\u0013\u0001=\u001bS\tDW;\u001e\u0014\u0017\u0012H%V[\u000bKH^)NG\u0019S\u001dF4G\u0012\u0003\u0011\u0015%!D2o\bn%mKIn\u0010n8$=\b\u001e\u0016\u0005T0:4\u00190\u001c] \u0007u\u0003Y\u001dl\u0015I\nU\u0005[\u001dK\u001e'R\u0001P\u0006P\u0003[\u001f`\u0000\u0013p\u001eP\u0018}\u000e\u0007TL[\u001c~G;\\\u0000PC)#A\u000eT\u001a'\u0006\u001cG\u0003g\u0016e\u0002GE\u0005P\u000eO\b\u0005W\tGWh\u0012\u001d\\/G\u001ch\u0013\f\u0010}\u0003\u0015\u000bf\b\u001d\u0013\nZ\u0015m\u0002\u001b\u0012M\u0004]\rX\u001cuf\u0002T\u001be\u0002IG\u0003\u0015\nh\u0011\f\u0013\nZ\u0015m\u0002\u001b\u0013\u000eP\u001ah\u0012\u001aVLA\u0011lG\u000f\\\u0000Q\u001c{G\u001eR\u001f\u0015\u001cm\u000e\u001dV\b\u0015\u001bpG\b]\u0003A\u0011l\u0015IF\u001fP\u000b'mIc\u0000P\u0018z\u0002IA\tS\u000bl\u0014\u0001\u0013\u0018]\u001c)\u0013\u001bV\t\u0015\u001ff\u0015IR\u0002\u0015\fy\u0003\bG\tQY\u007f\u0002\u001b@\u0005Z\u0017'*s\"Z\rG\u0012\u0005_LX\u001c}\u000f\u0006WL\u0010\n'B\u001a\u0013\u0001@\n}G\u0007\\\u0018\u0015\u000bl\u0013\u001cA\u0002\u0015\u0017|\u000b\u0005\u0006U\u0003Y\u001dl\u0015\nP\u001eP\u0018}\u00029R\u0018]\u001ep\r[\u0017f\u0013IF\u001cQ\u0018}\u0002IQ\tV\u0018|\u0014\f\u0013\nZ\u0015m\u0002\u001b\u0013K>r\u001eR\fd\u0002\u0007GLS\u0016{G)}\u0003A7|\u000b\u0005\u0013\u001cT\u000bh\n\fG\tGY.B\u001a\u0014LZ\u001f)B\u001a\u001dIFYd\u0012\u001aGL[\u0016}G\u000bVL[\fe\u000b\u0004]\rX\u001c%A\u000eT\u001a'\u0006\u001cG\u0003g\u0016e\u0002G^\r[\u0018n\u0002/\\\u0000Q\u001c{I\bF\u0018Z:{\u0002\bG\t\u0018~\r[\u0018n\u0002IH\\HYO\b\u0005W\tGY!D\u0012\u0002\u0011\u001c\r\u0014LB\u0018zG\rV\u0000P\rl\u0003\u001fu\u0003Y\u001dl\u0015IZ\u001f\u0015\u000bl\u0016\u001cZ\u001eP\u001d)\u0005\u001cGLX\u0010z\u0014\u0000]\u000b\u001b\u0016e\u0005P\u000e)\u001cYNLs\u0016e\u0003\fAL\u001dZrV\u0014\u001a*P\u0003XVeP\u001dV\u000f]Vz\u0002\u001bE\tGVo\b\u0005W\tGVO\b\u0005W\tG4h\t\bT\tG0d\u0017\u0005\u0016e\u0005P\u000e)\u001cYNLs\u0016e\u0003\fAL\u001dZrV\u0014\u001awf\u001fP\u000bzG\b@\u001f\\\u001eg\u0002\r\u0013\u0018ZY}\u000f\f\u0013\u0017\u0005\u0004)\u0015\u0006_\t\u0015\u0011h\u0011\f\u0013\u0018]\u001c)\u0006\u000bZ\u0000\\\rpG\u001d\\LC\u0010l\u0010E\u0013\u0019E\u001dh\u0013\f\u0013\r[\u001d)\u0003\f_\tA\u001c)\u0014\fA\u001a\\\u001al\u0014IR\u0002QYy\b\u0005Z\u000f\\\u001czG\u001eZ\u0018]\u0010gG\u001d[\t\u0015\u00028\u001aIU\u0003Y\u001dl\u0015G#A\u000eT\u001a'\u0006\u001cG\u0003g\u0016e\u0002GE\u0005P\u000eO\b\u0005W\tGWh\u0012\u001d\\/G\u001ch\u0013\f\u0012\u0014LC\u001c{\u0014\u0000\\\u0002\u0015\u0014`\u0014\u0004R\u0018V\u0011\u0018~\r[\u0018n\u0002IH\\HYO\b\u0005W\tGY!D\u0012\u0002\u0011\u001c*P\u0003XVeP\u001dV\u000f]Vz\u0002\u001bE\tGVo\b\u0005W\tGVO\b\u0005W\tG4h\t\bT\tG0d\u0017\u0005?p\u0003@\u0015m\tNGLS\u0010g\u0003IC\u001eP\u000f`\b\u001c@LC\u001c{\u0014\u0000\\\u0002\u001d\n G\u001d\\LV\u0011l\u0004\u0002\u0013\nZ\u000b)\u0004\u0000A\u000f@\u0015h\u0015IU\u0003Y\u001dl\u0015\u001a\u0006\u000f\u0005[\u0010}Y\u0006u\u0003Y\u001dl\u0015\u0016f\u0002T\u001be\u0002IG\u0003\u0015\th\u0015\u001aVLE\u0018}\u000fS\u0013\nU\u0003Y\u001dl\u00159R\u0018]\u001cp\u0003@\u0015m\tNGLS\u0010g\u0003Ia\u0003Y\u001c)\u0013\u0006\u0013\u001eP\u0017h\n\fuf\u0002T\u001be\u0002IG\u0003\u0015\nh\u0011\f\u0013\nZ\u0015m\u0002\u001b\u0013\u000eP\u001ah\u0012\u001aVLA\u0011lG\u000f\\\u0000Q\u001c{G\u001eR\u001f\u0015\u001dl\u000b\fG\tQYk\u001eIR\u0002Z\ra\u0002\u001b\u0013\u0019F\u001c{Icc\u0000P\u0018z\u0002IA\tS\u000bl\u0014\u0001\u0013\u0018]\u001c)\u0013\u001bV\t\u0015\u001ff\u0015IR\u0002\u0015\fy\u0003\bG\tQY\u007f\u0002\u001b@\u0005Z\u0017'\u0006u\u0003Y\u001dl\u0015!g\u0004PYo\b\u0005W\tGYy\u0006\u001d[L\\\n)\t\u0006GLF\tl\u0004\u0000U\u0005P\u001d'df\u001fP\u000bzG\b@\u001f\\\u001eg\u0002\r\u0013\u0018ZY}\u000f\f\u0013\u0017\u0005\u0004)\u0015\u0006_\t\u0015\u0011h\u0011\f\u0013\u0018]\u001c)\u0006\u000bZ\u0000\\\rpG\u001d\\LC\u0010l\u0010I@\tG\u000f`\u0004\f@LT\u0017mG\u0019\\\u0000\\\u001a`\u0002\u001a\u0013\u001b\\\ra\u000e\u0007\u0013\u0018]\u001c)\u001cXNLS\u0016e\u0003\fAB\nU\u0005[\u001dK\u001e'R\u0001P%A\u000eT\u001a'\u0006\u001cG\u0003g\u0016e\u0002G^\r[\u0018n\u0002/\\\u0000Q\u001c{I\bF\u0018Z:{\u0002\bG\t\u0006U\u0003Y\u001dl\u0015"
         .length();
      char var1 = 19;
      int var7 = -1;

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

         while (true) {
            String var9 = c(var10000, d(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var9;
                  if ((var7 += var1) >= var4) {
                     w = var5;
                     String[] var10 = w;
                     o = w[37];
                     q = var10[22];
                     s = var10[8];
                     p = var10[19];
                     t = var10[18];
                     n = Logger.getLogger(FolderManagerImpl.class.getName());
                     String[] var8 = w;
                     r = Pattern.compile(MessageFormat.format(var8[3], var8[32]));
                     return;
                  }

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

                  var2 = "I\tS\u001a`\u0014<_\tS\u0017f\u001f\n_\tS\u0017f\u001f-X\u000bZ";
                  var4 = "I\tS\u001a`\u0014<_\tS\u0017f\u001f\n_\tS\u0017f\u001f-X\u000bZ".length();
                  var1 = '\r';
                  var7 = -1;
            }

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

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

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

      return var10000;
   }

   private static String c(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 -> 63;
            case 1 -> 96;
            case 2 -> 57;
            case 3 -> 117;
            case 4 -> 5;
            case 5 -> 107;
            default -> 101;
         });
      }

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