package com.l7tech.external.assertions.gatewaygraphql.server.data;

import com.l7tech.external.assertions.gatewaygraphql.server.input.BundleEntityMappingInput;
import com.l7tech.external.assertions.gatewaygraphql.server.input.EntityInput;
import com.l7tech.external.assertions.gatewaygraphql.server.input.EntityRefInput;
import com.l7tech.external.assertions.gatewaygraphql.server.input.PolicyInput;
import com.l7tech.external.assertions.gatewaygraphql.server.util.Util;
import com.l7tech.policy.Policy;
import com.l7tech.policy.PolicyType;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.logging.Logger;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import lombok.Generated;

public class L7PolicyDTO extends PolicyDetailsDTO {
   @Generated
   private static final Logger b = Logger.getLogger(L7PolicyDTO.class.getName());
   public static final String INTERNAL_TAG_AUDIT_SINK;
   private static final Map<PolicyType, L7PolicyDTO.L7PolicyType> c = Stream.concat(
         Arrays.stream(L7PolicyDTO.L7PolicyType.values()), Stream.of(L7PolicyDTO.L7PolicyType.POLICY_BACKED_OPERATION)
      )
      .filter(var0 -> Objects.nonNull(var0.getInnerPolicyType()))
      .collect(Collectors.toMap(L7PolicyDTO.L7PolicyType::getInnerPolicyType, var0 -> (L7PolicyDTO.L7PolicyType)var0, (var0, var1) -> var1));
   private final L7PolicyDTO.L7PolicyType d = L7PolicyDTO.L7PolicyType.fromInnerPolicyType(this.getType(), this.getInternalTag(), this.getInternalSubTag());

   public L7PolicyDTO(Policy var1) {
      super(var1);
   }

   public L7PolicyDTO.L7PolicyType getPolicyType() {
      return this.d;
   }

   public String getTag() {
      return this.d.tag != null && this.d.tag.equals(this.getInternalTag()) ? null : this.getInternalTag();
   }

   public String getSubTag() {
      return this.d.subTag != null && this.d.subTag.equals(this.getInternalSubTag()) ? null : this.getInternalSubTag();
   }

   public boolean isEnabled() {
      return !this.entity().isDisabled();
   }

   static {
      String var10002 = b(83, a("\u0006\rW7TZ\u000f\u000e\u0016X"));
      byte var10001 = -1;
      INTERNAL_TAG_AUDIT_SINK = var10002;
   }

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

      return var10000;
   }

   private static String b(int var0, char[] var1) {
      int var10003 = var1.length;
      int var10002 = var0;
      char[] var10001 = var1;
      int var10000 = var10003;

      for (int var2 = 0; var10000 > var2; var2++) {
         var10001[var2] = (char)(var10001[var2] ^ var10002 ^ switch (var2 % 7) {
            case 0 -> 52;
            case 1 -> 43;
            case 2 -> 96;
            case 3 -> 13;
            case 4 -> 115;
            case 5 -> 36;
            default -> 47;
         });
      }

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

   public static class L7PoliciesPayload extends EntityMutationsPayload<L7PolicyDTO> {
      public List<L7PolicyDTO> getPolicies() {
         return super.getItems();
      }
   }

   public static class L7PolicyInput extends EntityInput {
      String g;
      String h;
      String i;
      L7PolicyDTO.L7PolicyType j;
      String k;
      String l;
      PolicyInput m;
      List<PolicyRevisionDTO.PolicyRevisionInput> n;
      PolicyRevisionDTO.PolicyRevisionInput o;
      Boolean p;
      Boolean q;
      String r;
      L7PolicyDTO.L7PolicySelector s;
      private static final String[] t;

      @Override
      public void resetGuid() {
         this.setGuid(null);
      }

      @Override
      public boolean matches(EntityMappingInstruction var1) {
         if (super.matches(var1)) {
            String var10000 = this.j.name();
            String[] var2 = t;
            if (var10000.equals(var1.getSource(var2[13]))
               && (this.k == null || this.k.equals(var1.getSource(var2[15])))
               && (this.l == null || this.l.equals(var1.getSource(t[4])))) {
               return true;
            }
         }

         return false;
      }

      public boolean migratePolicyRevisions() {
         return this.getExecutionContext() != null && Util.isNotEmpty(this.getPolicyRevisions())
            ? this.getExecutionContext().getQueryOptionsSupplier().isMigratePolicyRevisionsEnabled()
            : false;
      }

      public L7PolicyDTO.L7PolicySelector getSelector() {
         if (this.s == null) {
            this.s = new L7PolicyDTO.L7PolicySelector(this.j, this.k, this.l);
         }

         return this.s;
      }

      @Generated
      public String getFolderPath() {
         return this.g;
      }

      @Generated
      @Override
      public String getName() {
         return this.h;
      }

      @Generated
      @Override
      public String getGuid() {
         return this.i;
      }

      @Generated
      public L7PolicyDTO.L7PolicyType getPolicyType() {
         return this.j;
      }

      @Generated
      public String getTag() {
         return this.k;
      }

      @Generated
      public String getSubTag() {
         return this.l;
      }

      @Generated
      public PolicyInput getPolicy() {
         return this.m;
      }

      @Generated
      public List<PolicyRevisionDTO.PolicyRevisionInput> getPolicyRevisions() {
         return this.n;
      }

      @Generated
      public PolicyRevisionDTO.PolicyRevisionInput getPolicyRevision() {
         return this.o;
      }

      @Generated
      public Boolean getEnabled() {
         return this.p;
      }

      @Generated
      public Boolean getSoap() {
         return this.q;
      }

      @Generated
      public String getChecksum() {
         return this.r;
      }

      @Generated
      public void setFolderPath(String var1) {
         this.g = var1;
      }

      @Generated
      public void setName(String var1) {
         this.h = var1;
      }

      @Generated
      public void setGuid(String var1) {
         this.i = var1;
      }

      @Generated
      public void setPolicyType(L7PolicyDTO.L7PolicyType var1) {
         this.j = var1;
      }

      @Generated
      public void setTag(String var1) {
         this.k = var1;
      }

      @Generated
      public void setSubTag(String var1) {
         this.l = var1;
      }

      @Generated
      public void setPolicy(PolicyInput var1) {
         this.m = var1;
      }

      @Generated
      public void setPolicyRevisions(List<PolicyRevisionDTO.PolicyRevisionInput> var1) {
         this.n = var1;
      }

      @Generated
      public void setPolicyRevision(PolicyRevisionDTO.PolicyRevisionInput var1) {
         this.o = var1;
      }

      @Generated
      public void setEnabled(Boolean var1) {
         this.p = var1;
      }

      @Generated
      public void setSoap(Boolean var1) {
         this.q = var1;
      }

      @Generated
      public void setChecksum(String var1) {
         this.r = var1;
      }

      @Generated
      public void setSelector(L7PolicyDTO.L7PolicySelector var1) {
         this.s = var1;
      }

      @Generated
      @Override
      public String toString() {
         String var10000 = this.getFolderPath();
         String var10001 = this.getName();
         String var10002 = this.getGuid();
         String var10003 = String.valueOf(this.getPolicyType());
         String var10004 = this.getTag();
         String var10005 = this.getSubTag();
         String var10006 = String.valueOf(this.getPolicy());
         String var10007 = String.valueOf(this.getPolicyRevisions());
         String var10008 = String.valueOf(this.getPolicyRevision());
         Boolean var10009 = this.getEnabled();
         Boolean var10010 = this.getSoap();
         String var1 = String.valueOf(this.getSelector());
         String var2 = this.getChecksum();
         Boolean var3 = var10010;
         Boolean var4 = var10009;
         String var5 = var10008;
         String var6 = var10007;
         String var7 = var10006;
         String var8 = var10005;
         String var9 = var10004;
         String var10 = var10003;
         String var11 = var10002;
         String var12 = var10001;
         String var13 = var10000;
         String[] var14 = t;
         return var14[0]
            + var13
            + var14[11]
            + var12
            + var14[5]
            + var11
            + var14[9]
            + var10
            + var14[6]
            + var9
            + var14[2]
            + var8
            + var14[10]
            + var7
            + var14[3]
            + var6
            + var14[8]
            + var5
            + var14[1]
            + var4
            + var14[7]
            + var3
            + var14[12]
            + var2
            + var14[14]
            + var1
            + ")";
      }

      @Generated
      @Override
      public boolean equals(Object var1) {
         if (var1 == this) {
            return true;
         } else if (!(var1 instanceof L7PolicyDTO.L7PolicyInput var2)) {
            return false;
         } else {
            if (!var2.canEqual(this)) {
               return false;
            }

            if (!super.equals(var1)) {
               return false;
            }

            Boolean var3 = this.getEnabled();
            Boolean var4 = var2.getEnabled();
            if (var3 == null ? var4 == null : var3.equals(var4)) {
               Boolean var5 = this.getSoap();
               Boolean var6 = var2.getSoap();
               if (var5 == null ? var6 == null : var5.equals(var6)) {
                  String var7 = this.getFolderPath();
                  String var8 = var2.getFolderPath();
                  if (var7 == null ? var8 == null : var7.equals(var8)) {
                     String var9 = this.getName();
                     String var10 = var2.getName();
                     if (var9 == null ? var10 == null : var9.equals(var10)) {
                        String var11 = this.getGuid();
                        String var12 = var2.getGuid();
                        if (var11 == null ? var12 == null : var11.equals(var12)) {
                           L7PolicyDTO.L7PolicyType var13 = this.getPolicyType();
                           L7PolicyDTO.L7PolicyType var14 = var2.getPolicyType();
                           if (var13 == null ? var14 == null : var13.equals(var14)) {
                              String var15 = this.getTag();
                              String var16 = var2.getTag();
                              if (var15 == null ? var16 == null : var15.equals(var16)) {
                                 String var17 = this.getSubTag();
                                 String var18 = var2.getSubTag();
                                 if (var17 == null ? var18 == null : var17.equals(var18)) {
                                    PolicyInput var19 = this.getPolicy();
                                    PolicyInput var20 = var2.getPolicy();
                                    if (var19 == null ? var20 == null : var19.equals(var20)) {
                                       List var21 = this.getPolicyRevisions();
                                       List var22 = var2.getPolicyRevisions();
                                       if (var21 == null ? var22 == null : var21.equals(var22)) {
                                          PolicyRevisionDTO.PolicyRevisionInput var23 = this.getPolicyRevision();
                                          PolicyRevisionDTO.PolicyRevisionInput var24 = var2.getPolicyRevision();
                                          if (var23 == null ? var24 == null : var23.equals(var24)) {
                                             String var25 = this.getChecksum();
                                             String var26 = var2.getChecksum();
                                             if (var25 == null ? var26 == null : var25.equals(var26)) {
                                                L7PolicyDTO.L7PolicySelector var27 = this.getSelector();
                                                L7PolicyDTO.L7PolicySelector var28 = var2.getSelector();
                                                return var27 == null ? var28 == null : var27.equals(var28);
                                             } else {
                                                return false;
                                             }
                                          } else {
                                             return false;
                                          }
                                       } else {
                                          return false;
                                       }
                                    } else {
                                       return false;
                                    }
                                 } else {
                                    return false;
                                 }
                              } else {
                                 return false;
                              }
                           } else {
                              return false;
                           }
                        } else {
                           return false;
                        }
                     } else {
                        return false;
                     }
                  } else {
                     return false;
                  }
               } else {
                  return false;
               }
            } else {
               return false;
            }
         }
      }

      @Generated
      @Override
      protected boolean canEqual(Object var1) {
         return var1 instanceof L7PolicyDTO.L7PolicyInput;
      }

      @Generated
      @Override
      public int hashCode() {
         byte var1 = 59;
         int var2 = super.hashCode();
         Boolean var3 = this.getEnabled();
         var2 = var2 * 59 + (var3 == null ? 43 : var3.hashCode());
         Boolean var4 = this.getSoap();
         var2 = var2 * 59 + (var4 == null ? 43 : var4.hashCode());
         String var5 = this.getFolderPath();
         var2 = var2 * 59 + (var5 == null ? 43 : var5.hashCode());
         String var6 = this.getName();
         var2 = var2 * 59 + (var6 == null ? 43 : var6.hashCode());
         String var7 = this.getGuid();
         var2 = var2 * 59 + (var7 == null ? 43 : var7.hashCode());
         L7PolicyDTO.L7PolicyType var8 = this.getPolicyType();
         var2 = var2 * 59 + (var8 == null ? 43 : var8.hashCode());
         String var9 = this.getTag();
         var2 = var2 * 59 + (var9 == null ? 43 : var9.hashCode());
         String var10 = this.getSubTag();
         var2 = var2 * 59 + (var10 == null ? 43 : var10.hashCode());
         PolicyInput var11 = this.getPolicy();
         var2 = var2 * 59 + (var11 == null ? 43 : var11.hashCode());
         List var12 = this.getPolicyRevisions();
         var2 = var2 * 59 + (var12 == null ? 43 : var12.hashCode());
         PolicyRevisionDTO.PolicyRevisionInput var13 = this.getPolicyRevision();
         var2 = var2 * 59 + (var13 == null ? 43 : var13.hashCode());
         String var14 = this.getChecksum();
         var2 = var2 * 59 + (var14 == null ? 43 : var14.hashCode());
         L7PolicyDTO.L7PolicySelector var15 = this.getSelector();
         return var2 * 59 + (var15 == null ? 43 : var15.hashCode());
      }

      static {
         String[] var5 = new String[16];
         int var3 = 0;
         String var2 = "\u001fY\u0017zV)\u007f**\u0013Z\u0014\f+\u0003\u0001+|Y9U=\u001e2a\u0012&s?\n\"gj!h;S\n\u007fN\"{[\"p6\nz\t\u007fN4`X\u0014}4S\u0012\u007fN7zV)\u007f*<\"cS3u<\u00004(\u0006 \u001b%A['\u0007\u007fN `S$!\u0006\u007fN3t]}\u0007\u007fN4z[0!\u0011\u007fN7zV)\u007f*<\"cS3u<\u0000z\r\u007fN7zV)\u007f*:>e_}\t\u007fN7zV)\u007f*S\u0007\u007fN)tW%!\u000b\u007fN$}_#w \u001b*(\n#\u0001+|Y9H*\u001e\"";
         int var4 = "\u001fY\u0017zV)\u007f**\u0013Z\u0014\f+\u0003\u0001+|Y9U=\u001e2a\u0012&s?\n\"gj!h;S\n\u007fN\"{[\"p6\nz\t\u007fN4`X\u0014}4S\u0012\u007fN7zV)\u007f*<\"cS3u<\u00004(\u0006 \u001b%A['\u0007\u007fN `S$!\u0006\u007fN3t]}\u0007\u007fN4z[0!\u0011\u007fN7zV)\u007f*<\"cS3u<\u0000z\r\u007fN7zV)\u007f*:>e_}\t\u007fN7zV)\u007f*S\u0007\u007fN)tW%!\u000b\u007fN$}_#w \u001b*(\n#\u0001+|Y9H*\u001e\""
            .length();
         char var1 = '%';
         int var7 = -1;

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

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

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

                     var2 = "%\u0014n*\f\u007f%}[or\u0003}Uz";
                     var4 = "%\u0014n*\f\u007f%}[or\u0003}Uz".length();
                     var1 = 11;
                     var7 = -1;
               }

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

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

         return var10000;
      }

      private static String b(int var0, char[] var1) {
         int var10003 = var1.length;
         int var10002 = var0;
         char[] var10001 = var1;
         int var10000 = var10003;

         for (int var2 = 0; var10000 > var2; var2++) {
            var10001[var2] = (char)(var10001[var2] ^ var10002 ^ switch (var2 % 7) {
               case 0 -> 23;
               case 1 -> 42;
               case 2 -> 3;
               case 3 -> 81;
               case 4 -> 126;
               case 5 -> 4;
               default -> 88;
            });
         }

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

   public static class L7PolicyPayload extends EntityMutationPayload<L7PolicyDTO> {
      public L7PolicyDTO getPolicy() {
         return (L7PolicyDTO)super.getItem();
      }
   }

   public static class L7PolicySelector {
      private final L7PolicyDTO.L7PolicyType a;
      private final String b;
      private final String c;
      private static final String d;

      public L7PolicySelector(L7PolicyDTO.L7PolicyType var1, String var2, String var3) {
         if (var1 == null) {
            throw new IllegalStateException(d);
         }

         L7PolicyDTO.L7PolicySelector var10000;
         String var10001;
         label31: {
            try {
               this.a = var1;
               var10000 = this;
               if (var2 != null) {
                  var10001 = var2;
                  break label31;
               }
            } catch (IllegalStateException var5) {
               throw a(var5);
            }

            var10001 = var1.getTag();
         }

         label24: {
            try {
               var10000.b = var10001;
               var10000 = this;
               if (var3 != null) {
                  var10001 = var3;
                  break label24;
               }
            } catch (IllegalStateException var4) {
               throw a(var4);
            }

            var10001 = var1.getSubTag();
         }

         var10000.c = var10001;
      }

      public boolean matches(Policy param1) {
         // $VF: Couldn't be decompiled
         // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
         // java.lang.RuntimeException: parsing failure!
         //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
         //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
         //
         // Bytecode:
         // 00: aload 1
         // 01: invokevirtual com/l7tech/policy/Policy.getType ()Lcom/l7tech/policy/PolicyType;
         // 04: aload 0
         // 05: getfield com/l7tech/external/assertions/gatewaygraphql/server/data/L7PolicyDTO$L7PolicySelector.a Lcom/l7tech/external/assertions/gatewaygraphql/server/data/L7PolicyDTO$L7PolicyType;
         // 08: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/data/L7PolicyDTO$L7PolicyType.getInnerPolicyType ()Lcom/l7tech/policy/PolicyType;
         // 0b: invokevirtual com/l7tech/policy/PolicyType.equals (Ljava/lang/Object;)Z
         // 0e: ifeq 5f
         // 11: aload 0
         // 12: getfield com/l7tech/external/assertions/gatewaygraphql/server/data/L7PolicyDTO$L7PolicySelector.b Ljava/lang/String;
         // 15: ifnull 34
         // 18: goto 1f
         // 1b: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/data/L7PolicyDTO$L7PolicySelector.a (Ljava/lang/IllegalStateException;)Ljava/lang/IllegalStateException;
         // 1e: athrow
         // 1f: aload 0
         // 20: getfield com/l7tech/external/assertions/gatewaygraphql/server/data/L7PolicyDTO$L7PolicySelector.b Ljava/lang/String;
         // 23: aload 1
         // 24: invokevirtual com/l7tech/policy/Policy.getInternalTag ()Ljava/lang/String;
         // 27: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
         // 2a: ifeq 5f
         // 2d: goto 34
         // 30: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/data/L7PolicyDTO$L7PolicySelector.a (Ljava/lang/IllegalStateException;)Ljava/lang/IllegalStateException;
         // 33: athrow
         // 34: aload 0
         // 35: getfield com/l7tech/external/assertions/gatewaygraphql/server/data/L7PolicyDTO$L7PolicySelector.c Ljava/lang/String;
         // 38: ifnull 57
         // 3b: goto 42
         // 3e: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/data/L7PolicyDTO$L7PolicySelector.a (Ljava/lang/IllegalStateException;)Ljava/lang/IllegalStateException;
         // 41: athrow
         // 42: aload 0
         // 43: getfield com/l7tech/external/assertions/gatewaygraphql/server/data/L7PolicyDTO$L7PolicySelector.c Ljava/lang/String;
         // 46: aload 1
         // 47: invokevirtual com/l7tech/policy/Policy.getInternalSubTag ()Ljava/lang/String;
         // 4a: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
         // 4d: ifeq 5f
         // 50: goto 57
         // 53: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/data/L7PolicyDTO$L7PolicySelector.a (Ljava/lang/IllegalStateException;)Ljava/lang/IllegalStateException;
         // 56: athrow
         // 57: bipush 1
         // 58: goto 60
         // 5b: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/data/L7PolicyDTO$L7PolicySelector.a (Ljava/lang/IllegalStateException;)Ljava/lang/IllegalStateException;
         // 5e: athrow
         // 5f: bipush 0
         // 60: ireturn
         // try (0 -> 10): 11 java/lang/IllegalStateException
         // try (7 -> 19): 20 java/lang/IllegalStateException
         // try (13 -> 25): 26 java/lang/IllegalStateException
         // try (22 -> 34): 35 java/lang/IllegalStateException
         // try (28 -> 39): 39 java/lang/IllegalStateException
      }

      public PolicyType getInternalPolicyType() {
         return this.a.getInnerPolicyType();
      }

      public String getInternalTag() {
         return this.b;
      }

      public String getInternalSubTag() {
         return this.c;
      }

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

      static {
         String var10002 = a(93, a("7B96(\fM\u0013T%:k\u001c\u001eGC:+k\u0006\u001d\u0002N<9\"\u0010\t"));
         byte var10001 = -1;
         d = var10002;
      }

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

         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 -> 58;
               case 1 -> 112;
               case 2 -> 8;
               case 3 -> 2;
               case 4 -> 22;
               case 5 -> 40;
               default -> 48;
            });
         }

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

   public enum L7PolicyType {
      FRAGMENT,
      PRE_ROUTING_FRAGMENT,
      SUCCESSFUL_ROUTING_FRAGMENT,
      FAILED_ROUTING_FRAGMENT,
      AUTHENTICATION_SUCCESS_FRAGMENT,
      AUTHENTICATION_FAILURE_FRAGMENT,
      AUTHORIZATION_SUCCESS_FRAGMENT,
      AUTHORIZATION_FAILURE_FRAGMENT,
      GLOBAL,
      INTERNAL,
      POLICY_BACKED_IDP,
      POLICY_BACKED_OPERATION,
      POLICY_BACKED_BACKGROUND_TASK,
      POLICY_BACKED_SERVICE_METRICS;

      private final PolicyType innerValue;
      private final String tag;
      private final String subTag;
      private static final String[] a;

      L7PolicyType(PolicyType var3) {
         this(var3, null, null);
      }

      L7PolicyType(PolicyType var3, String var4, String var5) {
         this.innerValue = var3;
         this.tag = var4;
         this.subTag = var5;
      }

      public PolicyType getInnerPolicyType() {
         return this.innerValue;
      }

      public String getTag() {
         return this.tag;
      }

      public String getSubTag() {
         return this.subTag;
      }

      public static L7PolicyDTO.L7PolicyType fromInnerPolicyType(PolicyType param0, String param1, String param2) {
         // $VF: Couldn't be decompiled
         // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
         // java.lang.RuntimeException: parsing failure!
         //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
         //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
         //
         // Bytecode:
         // 00: getstatic com/l7tech/external/assertions/gatewaygraphql/server/data/L7PolicyDTO.c Ljava/util/Map;
         // 03: aload 0
         // 04: invokeinterface java/util/Map.get (Ljava/lang/Object;)Ljava/lang/Object; 2
         // 09: checkcast com/l7tech/external/assertions/gatewaygraphql/server/data/L7PolicyDTO$L7PolicyType
         // 0c: astore 3
         // 0d: aload 3
         // 0e: ifnonnull 2c
         // 11: new java/lang/IllegalStateException
         // 14: dup
         // 15: aload 0
         // 16: invokevirtual com/l7tech/policy/PolicyType.name ()Ljava/lang/String;
         // 19: getstatic com/l7tech/external/assertions/gatewaygraphql/server/data/L7PolicyDTO$L7PolicyType.a [Ljava/lang/String;
         // 1c: bipush 4
         // 1d: aaload
         // 1e: swap
         // 1f: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001" ]
         // 24: invokespecial java/lang/IllegalStateException.<init> (Ljava/lang/String;)V
         // 27: athrow
         // 28: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/data/L7PolicyDTO$L7PolicyType.a (Ljava/lang/IllegalStateException;)Ljava/lang/IllegalStateException;
         // 2b: athrow
         // 2c: aload 3
         // 2d: getstatic com/l7tech/external/assertions/gatewaygraphql/server/data/L7PolicyDTO$L7PolicyType.POLICY_BACKED_OPERATION Lcom/l7tech/external/assertions/gatewaygraphql/server/data/L7PolicyDTO$L7PolicyType;
         // 30: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/data/L7PolicyDTO$L7PolicyType.equals (Ljava/lang/Object;)Z
         // 33: ifeq 8f
         // 36: getstatic com/l7tech/external/assertions/gatewaygraphql/server/data/L7PolicyDTO$L7PolicyType.POLICY_BACKED_BACKGROUND_TASK Lcom/l7tech/external/assertions/gatewaygraphql/server/data/L7PolicyDTO$L7PolicyType;
         // 39: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/data/L7PolicyDTO$L7PolicyType.getTag ()Ljava/lang/String;
         // 3c: aload 1
         // 3d: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
         // 40: ifeq 66
         // 43: goto 4a
         // 46: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/data/L7PolicyDTO$L7PolicyType.a (Ljava/lang/IllegalStateException;)Ljava/lang/IllegalStateException;
         // 49: athrow
         // 4a: getstatic com/l7tech/external/assertions/gatewaygraphql/server/data/L7PolicyDTO$L7PolicyType.POLICY_BACKED_BACKGROUND_TASK Lcom/l7tech/external/assertions/gatewaygraphql/server/data/L7PolicyDTO$L7PolicyType;
         // 4d: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/data/L7PolicyDTO$L7PolicyType.getSubTag ()Ljava/lang/String;
         // 50: aload 2
         // 51: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
         // 54: ifeq 66
         // 57: goto 5e
         // 5a: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/data/L7PolicyDTO$L7PolicyType.a (Ljava/lang/IllegalStateException;)Ljava/lang/IllegalStateException;
         // 5d: athrow
         // 5e: getstatic com/l7tech/external/assertions/gatewaygraphql/server/data/L7PolicyDTO$L7PolicyType.POLICY_BACKED_BACKGROUND_TASK Lcom/l7tech/external/assertions/gatewaygraphql/server/data/L7PolicyDTO$L7PolicyType;
         // 61: areturn
         // 62: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/data/L7PolicyDTO$L7PolicyType.a (Ljava/lang/IllegalStateException;)Ljava/lang/IllegalStateException;
         // 65: athrow
         // 66: getstatic com/l7tech/external/assertions/gatewaygraphql/server/data/L7PolicyDTO$L7PolicyType.POLICY_BACKED_SERVICE_METRICS Lcom/l7tech/external/assertions/gatewaygraphql/server/data/L7PolicyDTO$L7PolicyType;
         // 69: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/data/L7PolicyDTO$L7PolicyType.getTag ()Ljava/lang/String;
         // 6c: aload 1
         // 6d: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
         // 70: ifeq 8f
         // 73: getstatic com/l7tech/external/assertions/gatewaygraphql/server/data/L7PolicyDTO$L7PolicyType.POLICY_BACKED_SERVICE_METRICS Lcom/l7tech/external/assertions/gatewaygraphql/server/data/L7PolicyDTO$L7PolicyType;
         // 76: invokevirtual com/l7tech/external/assertions/gatewaygraphql/server/data/L7PolicyDTO$L7PolicyType.getSubTag ()Ljava/lang/String;
         // 79: aload 2
         // 7a: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
         // 7d: ifeq 8f
         // 80: goto 87
         // 83: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/data/L7PolicyDTO$L7PolicyType.a (Ljava/lang/IllegalStateException;)Ljava/lang/IllegalStateException;
         // 86: athrow
         // 87: getstatic com/l7tech/external/assertions/gatewaygraphql/server/data/L7PolicyDTO$L7PolicyType.POLICY_BACKED_SERVICE_METRICS Lcom/l7tech/external/assertions/gatewaygraphql/server/data/L7PolicyDTO$L7PolicyType;
         // 8a: areturn
         // 8b: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/data/L7PolicyDTO$L7PolicyType.a (Ljava/lang/IllegalStateException;)Ljava/lang/IllegalStateException;
         // 8e: athrow
         // 8f: aload 3
         // 90: areturn
         // try (5 -> 18): 18 java/lang/IllegalStateException
         // try (20 -> 29): 30 java/lang/IllegalStateException
         // try (24 -> 37): 38 java/lang/IllegalStateException
         // try (32 -> 42): 42 java/lang/IllegalStateException
         // try (44 -> 54): 55 java/lang/IllegalStateException
         // try (49 -> 59): 59 java/lang/IllegalStateException
      }

      // $VF: Failed to inline enum fields
      // 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!)
      static {
         String[] var5 = new String[19];
         int var3 = 0;
         String var2 = "\u001fH\u0015ld\u007ff\u0017^\u0000ph~|\u0001[\u0000mmd`\u001bB\u0007v`v\u007f\u001bS\u0015D=r,\nM\u0006F;~)\nDIF;o/EM\u001fS-n$VUX]0noTCB_;qoWDCD;oowDCD7~$iDE@7~2tS^Q;n2KS\u0017\u0018\\\bhdum\fR\u0014ph\u007fu\u0001[\u0013ef|w\u0010I\u001f\u001fH\u0015ld\u007ff\u0017^\u0000ph~|\u0001N\u0014gbta\rB\u0007v`v\u007f\u001bS\u0015\u0017\u000bs$\\QTQ*x%\u0004Q^^7~8\u0004UHB;=\u001e\u001fH\u0015lnc{\u0004\\\u0015mn\u007fm\u0018\\\bhtcw\u0001[\u0013ef|w\u0010I\u0017\u000eR\rmbhm\u001c\\\u0002odum\u0011M\u0004v`e{\u0011S\u0006\u0019Q\u000ef`}\u0014\u000eO\u0004{s~g\nT\u000fc~w`\u001fZ\faoe\u001d\u000eR\rmbhm\u001c\\\u0002odum\u001c\\\u0002ofc}\u000bS\u0005{upa\u0015\b\u0018O\u0000clt|\n\u001b\rH\u0002gdba\u0018H\r{s~g\nT\u000fc~w`\u001fZ\faoe\u001d\u000eR\rmbhm\u001c\\\u0002odum\rX\u0013rhrw\u0001P\u0004psxq\r\b\u0017S\u0015as\u007fs\u0012-=r,\nM\u0006F;~)\nNSX;~5INUW231KMSS=vof@RY9o.QOUf?n*\u001e\u001fH\u0015lnc{\u0004\\\u0015mn\u007fm\rH\u0002gdba\u0001[\u0013ef|w\u0010I\u0011\u000eR\rmbhm\u001c\\\u0002odum\u0017Y\u0011";
         int var4 = "\u001fH\u0015ld\u007ff\u0017^\u0000ph~|\u0001[\u0000mmd`\u001bB\u0007v`v\u007f\u001bS\u0015D=r,\nM\u0006F;~)\nDIF;o/EM\u001fS-n$VUX]0noTCB_;qoWDCD;oowDCD7~$iDE@7~2tS^Q;n2KS\u0017\u0018\\\bhdum\fR\u0014ph\u007fu\u0001[\u0013ef|w\u0010I\u001f\u001fH\u0015ld\u007ff\u0017^\u0000ph~|\u0001N\u0014gbta\rB\u0007v`v\u007f\u001bS\u0015\u0017\u000bs$\\QTQ*x%\u0004Q^^7~8\u0004UHB;=\u001e\u001fH\u0015lnc{\u0004\\\u0015mn\u007fm\u0018\\\bhtcw\u0001[\u0013ef|w\u0010I\u0017\u000eR\rmbhm\u001c\\\u0002odum\u0011M\u0004v`e{\u0011S\u0006\u0019Q\u000ef`}\u0014\u000eO\u0004{s~g\nT\u000fc~w`\u001fZ\faoe\u001d\u000eR\rmbhm\u001c\\\u0002odum\u001c\\\u0002ofc}\u000bS\u0005{upa\u0015\b\u0018O\u0000clt|\n\u001b\rH\u0002gdba\u0018H\r{s~g\nT\u000fc~w`\u001fZ\faoe\u001d\u000eR\rmbhm\u001c\\\u0002odum\rX\u0013rhrw\u0001P\u0004psxq\r\b\u0017S\u0015as\u007fs\u0012-=r,\nM\u0006F;~)\nNSX;~5INUW231KMSS=vof@RY9o.QOUf?n*\u001e\u001fH\u0015lnc{\u0004\\\u0015mn\u007fm\rH\u0002gdba\u0001[\u0013ef|w\u0010I\u0011\u000eR\rmbhm\u001c\\\u0002odum\u0017Y\u0011"
            .length();
         char var1 = 31;
         int var7 = -1;

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

            while (true) {
               String var9 = a(var10000, a(var10001));
               switch (var10002) {
                  case 0:
                     var5[var3++] = var9;
                     if ((var7 += var1) >= var4) {
                        a = var5;
                        String[] var8 = a;
                        FRAGMENT = new L7PolicyDTO.L7PolicyType(PolicyType.INCLUDE_FRAGMENT);
                        PRE_ROUTING_FRAGMENT = new L7PolicyDTO.L7PolicyType(PolicyType.PRE_ROUTING_FRAGMENT);
                        SUCCESSFUL_ROUTING_FRAGMENT = new L7PolicyDTO.L7PolicyType(PolicyType.SUCCESSFUL_ROUTING_FRAGMENT);
                        FAILED_ROUTING_FRAGMENT = new L7PolicyDTO.L7PolicyType(PolicyType.FAILED_ROUTING_FRAGMENT);
                        AUTHENTICATION_SUCCESS_FRAGMENT = new L7PolicyDTO.L7PolicyType(PolicyType.AUTHENTICATION_SUCCESS_FRAGMENT);
                        AUTHENTICATION_FAILURE_FRAGMENT = new L7PolicyDTO.L7PolicyType(PolicyType.AUTHENTICATION_FAILURE_FRAGMENT);
                        AUTHORIZATION_SUCCESS_FRAGMENT = new L7PolicyDTO.L7PolicyType(PolicyType.AUTHORIZATION_SUCCESS_FRAGMENT);
                        AUTHORIZATION_FAILURE_FRAGMENT = new L7PolicyDTO.L7PolicyType(PolicyType.AUTHORIZATION_FAILURE_FRAGMENT);
                        GLOBAL = new L7PolicyDTO.L7PolicyType(PolicyType.GLOBAL_FRAGMENT);
                        INTERNAL = new L7PolicyDTO.L7PolicyType(PolicyType.INTERNAL);
                        POLICY_BACKED_IDP = new L7PolicyDTO.L7PolicyType(PolicyType.IDENTITY_PROVIDER_POLICY);
                        POLICY_BACKED_OPERATION = new L7PolicyDTO.L7PolicyType(PolicyType.POLICY_BACKED_OPERATION);
                        POLICY_BACKED_BACKGROUND_TASK = new L7PolicyDTO.L7PolicyType(PolicyType.POLICY_BACKED_OPERATION, var8[14], var8[17]);
                        POLICY_BACKED_SERVICE_METRICS = new L7PolicyDTO.L7PolicyType(PolicyType.POLICY_BACKED_OPERATION, var8[1], var8[18]);
                        return;
                     }

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

                     var2 = "A\u0005B\u0007C\u0002C*)/,";
                     var4 = "A\u0005B\u0007C\u0002C*)/,".length();
                     var1 = 3;
                     var7 = -1;
               }

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

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

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

         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 -> 124;
               case 1 -> 63;
               case 2 -> 99;
               case 3 -> 6;
               case 4 -> 3;
               case 5 -> 19;
               default -> 16;
            });
         }

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

   public static class PolicyMappingInstructionInput extends BundleEntityMappingInput {
      private L7PolicyDTO.PolicyRefInput f;
      private static final String h;

      @Generated
      public L7PolicyDTO.PolicyRefInput getSource() {
         return this.f;
      }

      @Generated
      public void setSource(L7PolicyDTO.PolicyRefInput var1) {
         this.f = var1;
      }

      @Generated
      @Override
      public String toString() {
         return h + this.getSource() + ")";
      }

      @Generated
      @Override
      public boolean equals(Object var1) {
         if (var1 == this) {
            return true;
         } else if (!(var1 instanceof L7PolicyDTO.PolicyMappingInstructionInput var2)) {
            return false;
         } else {
            if (!var2.canEqual(this)) {
               return false;
            }

            L7PolicyDTO.PolicyRefInput var3 = this.getSource();
            L7PolicyDTO.PolicyRefInput var4 = var2.getSource();
            return var3 == null ? var4 == null : var3.equals(var4);
         }
      }

      @Generated
      @Override
      protected boolean canEqual(Object var1) {
         return var1 instanceof L7PolicyDTO.PolicyMappingInstructionInput;
      }

      @Generated
      @Override
      public int hashCode() {
         byte var1 = 59;
         byte var2 = 1;
         L7PolicyDTO.PolicyRefInput var3 = this.getSource();
         return var2 * 59 + (var3 == null ? 43 : var3.hashCode());
      }

      static {
         String var10002 = b(65, b("0\u0012('m!m\u0005a,\u0007/\u0018a\u0010L\u001b1L)~\fL\u0016/H&}\bW\r+u!a\u0012l\u00168t<&\u000fJ\r:b-3"));
         byte var10001 = -1;
         h = var10002;
      }

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

         return var10000;
      }

      private static String b(int var0, char[] var1) {
         int var10003 = var1.length;
         int var10002 = var0;
         char[] var10001 = var1;
         int var10000 = var10003;

         for (int var2 = 0; var10000 > var2; var2++) {
            var10001[var2] = (char)(var10001[var2] ^ var10002 ^ switch (var2 % 7) {
               case 0 -> 61;
               case 1 -> 100;
               case 2 -> 57;
               case 3 -> 9;
               case 4 -> 64;
               case 5 -> 9;
               default -> 79;
            });
         }

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

   public static class PolicyRefInput extends EntityRefInput {
      private String c;
      private L7PolicyDTO.L7PolicyType d;
      private String e;
      private String f;
      private static final String[] h;

      @Generated
      public String getName() {
         return this.c;
      }

      @Generated
      public L7PolicyDTO.L7PolicyType getPolicyType() {
         return this.d;
      }

      @Generated
      public String getTag() {
         return this.e;
      }

      @Generated
      public String getSubTag() {
         return this.f;
      }

      @Generated
      public void setName(String var1) {
         this.c = var1;
      }

      @Generated
      public void setPolicyType(L7PolicyDTO.L7PolicyType var1) {
         this.d = var1;
      }

      @Generated
      public void setTag(String var1) {
         this.e = var1;
      }

      @Generated
      public void setSubTag(String var1) {
         this.f = var1;
      }

      @Generated
      @Override
      public String toString() {
         String var10000 = this.getName();
         String var10001 = String.valueOf(this.getPolicyType());
         String var1 = this.getSubTag();
         String var2 = this.getTag();
         String var3 = var10001;
         String var4 = var10000;
         String[] var5 = h;
         return var5[3] + var4 + var5[1] + var3 + var5[2] + var2 + var5[0] + var1 + ")";
      }

      @Generated
      @Override
      public boolean equals(Object var1) {
         if (var1 == this) {
            return true;
         } else if (!(var1 instanceof L7PolicyDTO.PolicyRefInput var2)) {
            return false;
         } else {
            if (!var2.canEqual(this)) {
               return false;
            }

            String var3 = this.getName();
            String var4 = var2.getName();
            if (var3 == null ? var4 == null : var3.equals(var4)) {
               L7PolicyDTO.L7PolicyType var5 = this.getPolicyType();
               L7PolicyDTO.L7PolicyType var6 = var2.getPolicyType();
               if (var5 == null ? var6 == null : var5.equals(var6)) {
                  String var7 = this.getTag();
                  String var8 = var2.getTag();
                  if (var7 == null ? var8 == null : var7.equals(var8)) {
                     String var9 = this.getSubTag();
                     String var10 = var2.getSubTag();
                     return var9 == null ? var10 == null : var9.equals(var10);
                  } else {
                     return false;
                  }
               } else {
                  return false;
               }
            } else {
               return false;
            }
         }
      }

      @Generated
      @Override
      protected boolean canEqual(Object var1) {
         return var1 instanceof L7PolicyDTO.PolicyRefInput;
      }

      @Generated
      @Override
      public int hashCode() {
         byte var1 = 59;
         int var2 = 1;
         String var3 = this.getName();
         var2 = var2 * 59 + (var3 == null ? 43 : var3.hashCode());
         L7PolicyDTO.L7PolicyType var4 = this.getPolicyType();
         var2 = var2 * 59 + (var4 == null ? 43 : var4.hashCode());
         String var5 = this.getTag();
         var2 = var2 * 59 + (var5 == null ? 43 : var5.hashCode());
         String var6 = this.getSubTag();
         return var2 * 59 + (var6 == null ? 43 : var6.hashCode());
      }

      static {
         String[] var5 = new String[4];
         int var3 = 0;
         String var2 = "_Na\u00124\t\u001a\u0014S\r_Nb\b:4\u0018\n:k\u00173`";
         int var4 = "_Na\u00124\t\u001a\u0014S\r_Nb\b:4\u0018\n:k\u00173`".length();
         char var1 = '\t';
         int var7 = -1;

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

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

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

                     var2 = "?.\u0006fQ\u0000 _9\"hZTxjJ&H\u0018mt\u007fg\u0011~dX}Z`\u0002rB\u0015urc\u0017:";
                     var4 = "?.\u0006fQ\u0000 _9\"hZTxjJ&H\u0018mt\u007fg\u0011~dX}Z`\u0002rB\u0015urc\u0017:".length();
                     var1 = 6;
                     var7 = -1;
               }

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

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

         return var10000;
      }

      private static String b(int var0, char[] var1) {
         int var10003 = var1.length;
         int var10002 = var0;
         char[] var10001 = var1;
         int var10000 = var10003;

         for (int var2 = 0; var10000 > var2; var2++) {
            var10001[var2] = (char)(var10001[var2] ^ var10002 ^ switch (var2 % 7) {
               case 0 -> 61;
               case 1 -> 32;
               case 2 -> 92;
               case 3 -> 41;
               case 4 -> 24;
               case 5 -> 19;
               default -> 53;
            });
         }

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