package com.l7tech.server.message;

import com.l7tech.common.mime.ContentTypeHeader;
import com.l7tech.message.Message;
import com.l7tech.policy.variable.NoSuchVariableException;
import com.l7tech.util.ClassUtils;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.text.MessageFormat;
import java.util.Collection;
import org.jetbrains.annotations.NotNull;

public class ContextVariableBackedMessageUtils {
   private static final String[] a;

   public static Message getTargetMessage(@NotNull PolicyEnforcementContext var0, @NotNull String var1, boolean var2) throws NoSuchVariableException {
      try {
         if (var0 == null) {
            a(0);
         }
      } catch (NoSuchVariableException var5) {
         throw a(var5);
      }

      try {
         if (var1 == null) {
            a(1);
         }
      } catch (NoSuchVariableException var8) {
         throw a(var8);
      }

      Object var3 = var0.getVariable(var1);

      try {
         if (var3 == null) {
            throw new NoSuchVariableException(var1, a[1]);
         }
      } catch (NoSuchVariableException var7) {
         throw a(var7);
      }

      try {
         if (var3 instanceof Message) {
            return (Message)var3;
         }
      } catch (NoSuchVariableException var4) {
         throw a(var4);
      }

      try {
         if (!var2) {
            throw new NoSuchVariableException(var1, MessageFormat.format(a[3], var1, ClassUtils.getClassName(var3.getClass())));
         }
      } catch (NoSuchVariableException var6) {
         throw a(var6);
      }

      return createContextVariableBackedMessage(var0, var1, ContentTypeHeader.TEXT_DEFAULT, asMessageValueString(var1, var3));
   }

   public static Message createContextVariableBackedMessage(
      @NotNull PolicyEnforcementContext var0, @NotNull String var1, @NotNull ContentTypeHeader var2, @NotNull String var3
   ) {
      try {
         if (var0 == null) {
            a(2);
         }
      } catch (IOException var9) {
         throw a(var9);
      }

      try {
         if (var1 == null) {
            a(3);
         }
      } catch (IOException var11) {
         throw a(var11);
      }

      try {
         if (var2 == null) {
            a(4);
         }
      } catch (IOException var8) {
         throw a(var8);
      }

      try {
         if (var3 == null) {
            a(5);
         }
      } catch (IOException var10) {
         throw a(var10);
      }

      Message var4 = new Message();
      var0.runOnClose(new d(var4));

      try {
         ContextVariableKnob var5 = new ContextVariableKnob(var1);
         a var6 = new a(var2, var5, var0, var1);
         var4.initialize(var6, var2, new ByteArrayInputStream(var3.getBytes(var2.getEncoding())));
         var4.attachKnob(ContextVariableKnob.class, var5);
         return var4;
      } catch (IOException var7) {
         throw new RuntimeException(var7);
      }
   }

   public static String asMessageValueString(String var0, Object var1) throws NoSuchVariableException {
      try {
         if (var1 == null) {
            throw new NoSuchVariableException(var0, a[10]);
         }
      } catch (NoSuchVariableException var7) {
         throw a(var7);
      }

      try {
         if (var1 instanceof CharSequence) {
            return var1.toString();
         }
      } catch (NoSuchVariableException var4) {
         throw a(var4);
      }

      if (var1 instanceof Collection var8) {
         try {
            switch (var8.size()) {
               case 0:
                  throw new NoSuchVariableException(var0, a[15]);
               case 1:
                  return asMessageValueString(var0, var8.iterator().next());
            }
         } catch (NoSuchVariableException var5) {
            throw a(var5);
         }

         String[] var9 = a;
         throw new NoSuchVariableException(var0, var9[9]);
      } else if (var1 instanceof Object[] var2) {
         try {
            switch (var2.length) {
               case 0:
                  throw new NoSuchVariableException(var0, a[14]);
               case 1:
                  return asMessageValueString(var0, var2[0]);
            }
         } catch (NoSuchVariableException var6) {
            throw a(var6);
         }

         String[] var3 = a;
         throw new NoSuchVariableException(var0, var3[4]);
      } else {
         throw new NoSuchVariableException(var0, a[7] + ClassUtils.getClassName(var1.getClass()));
      }
   }

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

   static {
      String[] var5 = new String[16];
      int var3 = 0;
      String var2 = "?v\u001ck\"489z\u0019k=f>*|\u0003k#f?/x\u0016!a@#2m\u0014<:U-.p\u0010&\"f\u000e=z\u001a!*N)/j\u0010#+V85u\u0002*\bx\u0003#+wl5jQ\u000b\u001aK\t\u000e9\u00131:#:=k\u0018%,o)|o\u0010(;fl5jQ*;o \u0010;|\u0005\u0010/q+9m<!=p-;|f\u000e|\u00001+p8|t\u00147=b+99\u0002+;q/99Yf531~0Q-=#-|z\u001e*:f4(9\u0007%<j->u\u0014d!el(q\u0014d9q#2~Q07s)|1\u0014<>f/(|\u0015y\u0003f?/x\u0016!b#-?m\u0004%\">7mdXjD\bx\u0003#+wl5jQ\u000b\u001aK\t\u000e9\u00131:#:=k\u0018%,o)|o\u0010(;fl5jQ%<q-%9\u0006-:kl1v\u0003!nw$=wQ+ fl*x\u001d1+\f*x\u0003-/a 9W\u0010)+>\u001dk\u00161#f\"(9\u0017+<#\f\u0012v\u0005\n;o |i\u00106/n)(|\u0003di&?{9\u001e\"n&?r<\u0002d#v?(9\u001f+:#.99\u001f1\"o7\bx\u0003#+wl5jQ\u000b\u001aK\t\u000e9\u00131:#:=k\u0018%,o)|o\u0010(;fl5jQ1 p9,i\u001e6:f(|m\b4+#\u000b?v\u001f0+m8\b`\u0001!I\bx\u0003#+wl5jQ\u000b\u001aK\t\u000e9\u00131:#:=k\u0018%,o)|o\u0010(;fl5jQ'!o 9z\u0005-!ml+p\u0005,nn#.|Q0&b\"|v\u001f!nu-0l\u0014*\bx\u0003#+wl5jQ\u000b\u001aK\t\u000e9\u00131:#:=k\u0018%,o)|o\u0010(;fl5jQ*;o \f5w\u00180'b \nx\u001d1+\"?k\u0014%:f\u000f3w\u0005!6w\u001a=k\u0018%,o)\u001ex\u0012/+g\u00019j\u0002%)f\u0007?v\u001f0+{8";
      int var4 = "?v\u001ck\"489z\u0019k=f>*|\u0003k#f?/x\u0016!a@#2m\u0014<:U-.p\u0010&\"f\u000e=z\u001a!*N)/j\u0010#+V85u\u0002*\bx\u0003#+wl5jQ\u000b\u001aK\t\u000e9\u00131:#:=k\u0018%,o)|o\u0010(;fl5jQ*;o \u0010;|\u0005\u0010/q+9m<!=p-;|f\u000e|\u00001+p8|t\u00147=b+99\u0002+;q/99Yf531~0Q-=#-|z\u001e*:f4(9\u0007%<j->u\u0014d!el(q\u0014d9q#2~Q07s)|1\u0014<>f/(|\u0015y\u0003f?/x\u0016!b#-?m\u0004%\">7mdXjD\bx\u0003#+wl5jQ\u000b\u001aK\t\u000e9\u00131:#:=k\u0018%,o)|o\u0010(;fl5jQ%<q-%9\u0006-:kl1v\u0003!nw$=wQ+ fl*x\u001d1+\f*x\u0003-/a 9W\u0010)+>\u001dk\u00161#f\"(9\u0017+<#\f\u0012v\u0005\n;o |i\u00106/n)(|\u0003di&?{9\u001e\"n&?r<\u0002d#v?(9\u001f+:#.99\u001f1\"o7\bx\u0003#+wl5jQ\u000b\u001aK\t\u000e9\u00131:#:=k\u0018%,o)|o\u0010(;fl5jQ1 p9,i\u001e6:f(|m\b4+#\u000b?v\u001f0+m8\b`\u0001!I\bx\u0003#+wl5jQ\u000b\u001aK\t\u000e9\u00131:#:=k\u0018%,o)|o\u0010(;fl5jQ'!o 9z\u0005-!ml+p\u0005,nn#.|Q0&b\"|v\u001f!nu-0l\u0014*\bx\u0003#+wl5jQ\u000b\u001aK\t\u000e9\u00131:#:=k\u0018%,o)|o\u0010(;fl5jQ*;o \f5w\u00180'b \nx\u001d1+\"?k\u0014%:f\u000f3w\u0005!6w\u001a=k\u0018%,o)\u001ex\u0012/+g\u00019j\u0002%)f\u0007?v\u001f0+{8"
         .length();
      char var1 = ';';
      int var7 = -1;

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

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

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

                  var2 = ";K0\u0010\u0018D_\u0006Yb8)x:=\n \u0002\t\u0010\t\u000eX+\u0016\u001f\\\u001aO\\#\u001b\bU_\u0006Yb\u0012\u0010@\u000b\u0016\n#\u0005\u000fQ\u00066;K0\u0010\u0018D_\u0006Yb8)x:=\n \u0002\t\u0010\t\u000eX+\u0016\u001f\\\u001aO\\#\u001b\bU_\u0006Yb\u0012\u0010@\u000b\u0016\n!\u0018\u0011\\\u001a\f^+\u0018\u0013";
                  var4 = ";K0\u0010\u0018D_\u0006Yb8)x:=\n \u0002\t\u0010\t\u000eX+\u0016\u001f\\\u001aO\\#\u001b\bU_\u0006Yb\u0012\u0010@\u000b\u0016\n#\u0005\u000fQ\u00066;K0\u0010\u0018D_\u0006Yb8)x:=\n \u0002\t\u0010\t\u000eX+\u0016\u001f\\\u001aO\\#\u001b\bU_\u0006Yb\u0012\u0010@\u000b\u0016\n!\u0018\u0011\\\u001a\f^+\u0018\u0013"
                     .length();
                  var1 = '1';
                  var7 = -1;
            }

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

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

      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 -> 5;
            case 1 -> 64;
            case 2 -> 40;
            case 3 -> 29;
            case 4 -> 23;
            case 5 -> 90;
            default -> 21;
         });
      }

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