package com.l7tech.message;

import com.l7tech.common.http.CookieUtils;
import com.l7tech.common.http.HttpConstants;
import com.l7tech.common.http.HttpCookie;
import com.l7tech.common.http.HttpMethod;
import com.l7tech.common.http.ParameterizedString;
import com.l7tech.util.ConfigFactory;
import com.l7tech.util.ExceptionUtils;
import com.l7tech.util.IteratorEnumeration;
import com.l7tech.xml.soap.SoapUtil;
import jakarta.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.security.cert.X509Certificate;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Enumeration;
import java.util.Map;
import java.util.TreeMap;
import java.util.logging.Logger;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.commons.lang3.StringUtils;

public class HttpServletRequestKnob implements HttpRequestKnob {
   private static final Logger a;
   private Map<String, String[]> b;
   private Map<String, String[]> c;
   private Map<String, String[]> d;
   private final HttpServletRequest e;
   private final HttpMethod f;
   private static final Map<String, HttpMethod> g;
   private URL h;
   private static final String i;
   private static final String j;
   private static final String k;
   private static final boolean l;
   private static Pattern m;
   private static final String[] n;

   public HttpServletRequestKnob(HttpServletRequest var1) {
      this.e = var1;
      HttpMethod var2 = g.get(var1.getMethod());
      if (var2 == null) {
         var2 = HttpMethod.OTHER;
      }

      this.f = var2;
   }

   @Override
   public HttpCookie[] getCookies() {
      return CookieUtils.fromServletCookies(this.e.getCookies(), false);
   }

   @Override
   public HttpMethod getMethod() {
      return this.f;
   }

   @Override
   public String getMethodAsString() {
      return this.e.getMethod();
   }

   @Override
   public String getRequestUri() {
      return this.e.getRequestURI();
   }

   @Override
   public String getParameter(String param1) throws IOException {
      // $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/message/HttpServletRequestKnob.b Ljava/util/Map;
      // 04: ifnull 15
      // 07: aload 0
      // 08: getfield com/l7tech/message/HttpServletRequestKnob.c Ljava/util/Map;
      // 0b: ifnonnull 20
      // 0e: goto 15
      // 11: invokestatic com/l7tech/message/HttpServletRequestKnob.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 14: athrow
      // 15: aload 0
      // 16: invokevirtual com/l7tech/message/HttpServletRequestKnob.a ()V
      // 19: goto 20
      // 1c: invokestatic com/l7tech/message/HttpServletRequestKnob.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1f: athrow
      // 20: aload 0
      // 21: getfield com/l7tech/message/HttpServletRequestKnob.d Ljava/util/Map;
      // 24: aload 1
      // 25: invokeinterface java/util/Map.get (Ljava/lang/Object;)Ljava/lang/Object; 2
      // 2a: checkcast [Ljava/lang/String;
      // 2d: astore 2
      // 2e: aload 2
      // 2f: ifnull 47
      // 32: aload 2
      // 33: arraylength
      // 34: bipush 1
      // 35: if_icmplt 47
      // 38: goto 3f
      // 3b: invokestatic com/l7tech/message/HttpServletRequestKnob.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 3e: athrow
      // 3f: aload 2
      // 40: bipush 0
      // 41: aaload
      // 42: areturn
      // 43: invokestatic com/l7tech/message/HttpServletRequestKnob.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 46: athrow
      // 47: aconst_null
      // 48: areturn
      // try (0 -> 6): 7 java/io/IOException
      // try (3 -> 11): 12 java/io/IOException
      // try (20 -> 26): 27 java/io/IOException
      // try (22 -> 33): 33 java/io/IOException
   }

   private void a() throws IOException {
      // $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: invokevirtual com/l7tech/message/HttpServletRequestKnob.getQueryString ()Ljava/lang/String;
      // 004: astore 1
      // 005: aload 1
      // 006: ifnull 017
      // 009: aload 1
      // 00a: invokevirtual java/lang/String.length ()I
      // 00d: ifne 025
      // 010: goto 017
      // 013: invokestatic com/l7tech/message/HttpServletRequestKnob.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 016: athrow
      // 017: aload 0
      // 018: invokestatic java/util/Collections.emptyMap ()Ljava/util/Map;
      // 01b: putfield com/l7tech/message/HttpServletRequestKnob.b Ljava/util/Map;
      // 01e: goto 061
      // 021: invokestatic com/l7tech/message/HttpServletRequestKnob.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 024: athrow
      // 025: new java/util/TreeMap
      // 028: dup
      // 029: getstatic java/lang/String.CASE_INSENSITIVE_ORDER Ljava/util/Comparator;
      // 02c: invokespecial java/util/TreeMap.<init> (Ljava/util/Comparator;)V
      // 02f: astore 2
      // 030: aload 2
      // 031: aload 1
      // 032: getstatic com/l7tech/message/HttpServletRequestKnob.l Z
      // 035: invokestatic com/l7tech/common/http/ParameterizedString.parseQueryString (Ljava/lang/String;Z)Ljava/util/Map;
      // 038: invokevirtual java/util/TreeMap.putAll (Ljava/util/Map;)V
      // 03b: goto 059
      // 03e: astore 3
      // 03f: getstatic com/l7tech/message/HttpServletRequestKnob.a Ljava/util/logging/Logger;
      // 042: aload 3
      // 043: invokestatic com/l7tech/util/ExceptionUtils.getMessage (Ljava/lang/Throwable;)Ljava/lang/String;
      // 046: getstatic com/l7tech/message/HttpServletRequestKnob.n [Ljava/lang/String;
      // 049: astore 14
      // 04b: aload 14
      // 04d: bipush 7
      // 04f: aaload
      // 050: swap
      // 051: 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" ]
      // 056: invokevirtual java/util/logging/Logger.warning (Ljava/lang/String;)V
      // 059: aload 0
      // 05a: aload 2
      // 05b: invokestatic java/util/Collections.unmodifiableMap (Ljava/util/Map;)Ljava/util/Map;
      // 05e: putfield com/l7tech/message/HttpServletRequestKnob.b Ljava/util/Map;
      // 061: getstatic com/l7tech/message/HttpServletRequestKnob.n [Ljava/lang/String;
      // 064: bipush 5
      // 065: aaload
      // 066: aload 0
      // 067: getfield com/l7tech/message/HttpServletRequestKnob.e Ljakarta/servlet/http/HttpServletRequest;
      // 06a: invokeinterface jakarta/servlet/http/HttpServletRequest.getMethod ()Ljava/lang/String; 1
      // 06f: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 072: ifne 099
      // 075: getstatic com/l7tech/message/HttpServletRequestKnob.n [Ljava/lang/String;
      // 078: bipush 4
      // 079: aaload
      // 07a: aload 0
      // 07b: getfield com/l7tech/message/HttpServletRequestKnob.e Ljakarta/servlet/http/HttpServletRequest;
      // 07e: invokeinterface jakarta/servlet/http/HttpServletRequest.getMethod ()Ljava/lang/String; 1
      // 083: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 086: ifne 099
      // 089: goto 090
      // 08c: invokestatic com/l7tech/message/HttpServletRequestKnob.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 08f: athrow
      // 090: aload 0
      // 091: invokevirtual com/l7tech/message/HttpServletRequestKnob.b ()V
      // 094: return
      // 095: invokestatic com/l7tech/message/HttpServletRequestKnob.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 098: athrow
      // 099: aconst_null
      // 09a: astore 2
      // 09b: aload 0
      // 09c: getfield com/l7tech/message/HttpServletRequestKnob.e Ljakarta/servlet/http/HttpServletRequest;
      // 09f: getstatic com/l7tech/common/mime/MimeUtil.CONTENT_TYPE Ljava/lang/String;
      // 0a2: invokeinterface jakarta/servlet/http/HttpServletRequest.getHeader (Ljava/lang/String;)Ljava/lang/String; 2
      // 0a7: invokestatic org/apache/commons/lang3/StringUtils.isNotBlank (Ljava/lang/CharSequence;)Z
      // 0aa: ifeq 0bd
      // 0ad: aload 0
      // 0ae: getfield com/l7tech/message/HttpServletRequestKnob.e Ljakarta/servlet/http/HttpServletRequest;
      // 0b1: getstatic com/l7tech/common/mime/MimeUtil.CONTENT_TYPE Ljava/lang/String;
      // 0b4: invokeinterface jakarta/servlet/http/HttpServletRequest.getHeader (Ljava/lang/String;)Ljava/lang/String; 2
      // 0b9: invokestatic com/l7tech/common/mime/ContentTypeHeader.parseValue (Ljava/lang/String;)Lcom/l7tech/common/mime/ContentTypeHeader;
      // 0bc: astore 2
      // 0bd: aload 2
      // 0be: ifnull 0db
      // 0c1: aload 2
      // 0c2: getstatic com/l7tech/common/mime/ContentTypeHeader.APPLICATION_X_WWW_FORM_URLENCODED Lcom/l7tech/common/mime/ContentTypeHeader;
      // 0c5: invokevirtual com/l7tech/common/mime/ContentTypeHeader.matches (Lcom/l7tech/common/mime/ContentTypeHeader;)Z
      // 0c8: ifne 0db
      // 0cb: goto 0d2
      // 0ce: invokestatic com/l7tech/message/HttpServletRequestKnob.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0d1: athrow
      // 0d2: aload 0
      // 0d3: invokevirtual com/l7tech/message/HttpServletRequestKnob.b ()V
      // 0d6: return
      // 0d7: invokestatic com/l7tech/message/HttpServletRequestKnob.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0da: athrow
      // 0db: aload 0
      // 0dc: getfield com/l7tech/message/HttpServletRequestKnob.e Ljakarta/servlet/http/HttpServletRequest;
      // 0df: invokeinterface jakarta/servlet/http/HttpServletRequest.getContentLength ()I 1
      // 0e4: istore 3
      // 0e5: getstatic com/l7tech/message/HttpServletRequestKnob.n [Ljava/lang/String;
      // 0e8: astore 14
      // 0ea: aload 14
      // 0ec: bipush 16
      // 0ee: aaload
      // 0ef: ldc 524288
      // 0f1: invokestatic com/l7tech/util/ConfigFactory.getIntProperty (Ljava/lang/String;I)I
      // 0f4: istore 4
      // 0f6: iload 3
      // 0f7: iload 4
      // 0f9: if_icmple 11b
      // 0fc: new java/io/IOException
      // 0ff: dup
      // 100: aload 14
      // 102: bipush 8
      // 104: aaload
      // 105: bipush 1
      // 106: anewarray 450
      // 109: dup
      // 10a: bipush 0
      // 10b: iload 3
      // 10c: invokestatic java/lang/Integer.valueOf (I)Ljava/lang/Integer;
      // 10f: aastore
      // 110: invokestatic java/text/MessageFormat.format (Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
      // 113: invokespecial java/io/IOException.<init> (Ljava/lang/String;)V
      // 116: athrow
      // 117: invokestatic com/l7tech/message/HttpServletRequestKnob.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 11a: athrow
      // 11b: iload 3
      // 11c: bipush -1
      // 11d: if_icmpne 129
      // 120: aload 0
      // 121: invokevirtual com/l7tech/message/HttpServletRequestKnob.b ()V
      // 124: return
      // 125: invokestatic com/l7tech/message/HttpServletRequestKnob.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 128: athrow
      // 129: aload 2
      // 12a: ifnull 138
      // 12d: aload 2
      // 12e: invokevirtual com/l7tech/common/mime/ContentTypeHeader.getEncoding ()Ljava/nio/charset/Charset;
      // 131: goto 13e
      // 134: invokestatic com/l7tech/message/HttpServletRequestKnob.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 137: athrow
      // 138: getstatic com/l7tech/common/mime/ContentTypeHeader.OCTET_STREAM_DEFAULT Lcom/l7tech/common/mime/ContentTypeHeader;
      // 13b: invokevirtual com/l7tech/common/mime/ContentTypeHeader.getEncoding ()Ljava/nio/charset/Charset;
      // 13e: astore 5
      // 140: aload 0
      // 141: getfield com/l7tech/message/HttpServletRequestKnob.e Ljakarta/servlet/http/HttpServletRequest;
      // 144: invokeinterface jakarta/servlet/http/HttpServletRequest.getInputStream ()Ljakarta/servlet/ServletInputStream; 1
      // 149: invokestatic com/l7tech/util/IOUtils.slurpStream (Ljava/io/InputStream;)[B
      // 14c: astore 6
      // 14e: new java/lang/String
      // 151: dup
      // 152: aload 6
      // 154: aload 5
      // 156: invokespecial java/lang/String.<init> ([BLjava/nio/charset/Charset;)V
      // 159: astore 7
      // 15b: aload 0
      // 15c: new java/util/TreeMap
      // 15f: dup
      // 160: getstatic java/lang/String.CASE_INSENSITIVE_ORDER Ljava/util/Comparator;
      // 163: invokespecial java/util/TreeMap.<init> (Ljava/util/Comparator;)V
      // 166: putfield com/l7tech/message/HttpServletRequestKnob.c Ljava/util/Map;
      // 169: aload 0
      // 16a: getfield com/l7tech/message/HttpServletRequestKnob.c Ljava/util/Map;
      // 16d: aload 7
      // 16f: getstatic com/l7tech/message/HttpServletRequestKnob.l Z
      // 172: invokestatic com/l7tech/common/http/ParameterizedString.parseParameterString (Ljava/util/Map;Ljava/lang/String;Z)V
      // 175: goto 190
      // 178: astore 8
      // 17a: getstatic com/l7tech/message/HttpServletRequestKnob.a Ljava/util/logging/Logger;
      // 17d: aload 8
      // 17f: invokestatic com/l7tech/util/ExceptionUtils.getMessage (Ljava/lang/Throwable;)Ljava/lang/String;
      // 182: getstatic com/l7tech/message/HttpServletRequestKnob.n [Ljava/lang/String;
      // 185: bipush 2
      // 186: aaload
      // 187: swap
      // 188: 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" ]
      // 18d: invokevirtual java/util/logging/Logger.warning (Ljava/lang/String;)V
      // 190: aload 0
      // 191: getfield com/l7tech/message/HttpServletRequestKnob.b Ljava/util/Map;
      // 194: invokeinterface java/util/Map.isEmpty ()Z 1
      // 199: ifeq 1bb
      // 19c: aload 0
      // 19d: getfield com/l7tech/message/HttpServletRequestKnob.c Ljava/util/Map;
      // 1a0: invokeinterface java/util/Map.isEmpty ()Z 1
      // 1a5: ifeq 1bb
      // 1a8: goto 1af
      // 1ab: invokestatic com/l7tech/message/HttpServletRequestKnob.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1ae: athrow
      // 1af: aload 0
      // 1b0: invokestatic java/util/Collections.emptyMap ()Ljava/util/Map;
      // 1b3: putfield com/l7tech/message/HttpServletRequestKnob.d Ljava/util/Map;
      // 1b6: return
      // 1b7: invokestatic com/l7tech/message/HttpServletRequestKnob.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1ba: athrow
      // 1bb: new java/util/TreeMap
      // 1be: dup
      // 1bf: getstatic java/lang/String.CASE_INSENSITIVE_ORDER Ljava/util/Comparator;
      // 1c2: invokespecial java/util/TreeMap.<init> (Ljava/util/Comparator;)V
      // 1c5: astore 8
      // 1c7: aload 8
      // 1c9: aload 0
      // 1ca: getfield com/l7tech/message/HttpServletRequestKnob.b Ljava/util/Map;
      // 1cd: invokeinterface java/util/Map.putAll (Ljava/util/Map;)V 2
      // 1d2: aload 0
      // 1d3: getfield com/l7tech/message/HttpServletRequestKnob.c Ljava/util/Map;
      // 1d6: invokeinterface java/util/Map.keySet ()Ljava/util/Set; 1
      // 1db: invokeinterface java/util/Set.iterator ()Ljava/util/Iterator; 1
      // 1e0: astore 9
      // 1e2: aload 9
      // 1e4: invokeinterface java/util/Iterator.hasNext ()Z 1
      // 1e9: ifeq 265
      // 1ec: aload 9
      // 1ee: invokeinterface java/util/Iterator.next ()Ljava/lang/Object; 1
      // 1f3: checkcast java/lang/String
      // 1f6: astore 10
      // 1f8: aload 0
      // 1f9: getfield com/l7tech/message/HttpServletRequestKnob.c Ljava/util/Map;
      // 1fc: aload 10
      // 1fe: invokeinterface java/util/Map.get (Ljava/lang/Object;)Ljava/lang/Object; 2
      // 203: checkcast [Ljava/lang/String;
      // 206: astore 11
      // 208: aload 0
      // 209: getfield com/l7tech/message/HttpServletRequestKnob.b Ljava/util/Map;
      // 20c: aload 10
      // 20e: invokeinterface java/util/Map.get (Ljava/lang/Object;)Ljava/lang/Object; 2
      // 213: checkcast [Ljava/lang/String;
      // 216: astore 12
      // 218: aload 12
      // 21a: ifnonnull 230
      // 21d: aload 8
      // 21f: aload 10
      // 221: aload 11
      // 223: invokeinterface java/util/Map.put (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; 3
      // 228: pop
      // 229: goto 262
      // 22c: invokestatic com/l7tech/message/HttpServletRequestKnob.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 22f: athrow
      // 230: aload 12
      // 232: arraylength
      // 233: aload 11
      // 235: arraylength
      // 236: iadd
      // 237: anewarray 395
      // 23a: astore 13
      // 23c: aload 12
      // 23e: bipush 0
      // 23f: aload 13
      // 241: bipush 0
      // 242: aload 12
      // 244: arraylength
      // 245: invokestatic java/lang/System.arraycopy (Ljava/lang/Object;ILjava/lang/Object;II)V
      // 248: aload 11
      // 24a: bipush 0
      // 24b: aload 13
      // 24d: aload 12
      // 24f: arraylength
      // 250: aload 11
      // 252: arraylength
      // 253: invokestatic java/lang/System.arraycopy (Ljava/lang/Object;ILjava/lang/Object;II)V
      // 256: aload 8
      // 258: aload 10
      // 25a: aload 13
      // 25c: invokeinterface java/util/Map.put (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; 3
      // 261: pop
      // 262: goto 1e2
      // 265: aload 0
      // 266: aload 8
      // 268: invokestatic java/util/Collections.unmodifiableMap (Ljava/util/Map;)Ljava/util/Map;
      // 26b: putfield com/l7tech/message/HttpServletRequestKnob.d Ljava/util/Map;
      // 26e: return
      // try (5 -> 15): 15 java/lang/IllegalArgumentException
      // try (3 -> 8): 9 java/lang/IllegalArgumentException
      // try (22 -> 27): 28 java/lang/IllegalArgumentException
      // try (136 -> 141): 141 java/lang/IllegalArgumentException
      // try (128 -> 134): 134 java/lang/IllegalArgumentException
      // try (108 -> 126): 126 java/lang/IllegalArgumentException
      // try (84 -> 94): 94 java/lang/IllegalArgumentException
      // try (82 -> 88): 89 java/lang/IllegalArgumentException
      // try (52 -> 66): 66 java/lang/IllegalArgumentException
      // try (44 -> 60): 61 java/lang/IllegalArgumentException
      // try (163 -> 168): 169 java/lang/IllegalArgumentException
      // try (179 -> 187): 188 java/lang/IllegalArgumentException
      // try (183 -> 194): 194 java/lang/IllegalArgumentException
      // try (229 -> 237): 237 java/lang/IllegalArgumentException
   }

   private void b() {
      this.c = Collections.emptyMap();
      this.d = this.b;
   }

   @Override
   public String getQueryString() {
      return this.e.getQueryString();
   }

   @Override
   public Map<String, String[]> getParameterMap() throws IOException {
      try {
         if (this.d == null) {
            this.a();
         }
      } catch (IOException var1) {
         throw a(var1);
      }

      return this.d;
   }

   @Override
   public String[] getParameterValues(String var1) throws IOException {
      try {
         if (this.d == null) {
            this.a();
         }
      } catch (IOException var2) {
         throw a(var2);
      }

      return this.d.get(var1);
   }

   @Override
   public Enumeration<String> getParameterNames() throws IOException {
      try {
         if (this.d == null) {
            this.a();
         }
      } catch (IOException var1) {
         throw a(var1);
      }

      return new IteratorEnumeration(this.d.keySet().iterator());
   }

   public Map<String, String[]> getQueryParameterMap() throws IOException {
      try {
         if (this.b == null) {
            this.a();
         }
      } catch (IOException var1) {
         throw a(var1);
      }

      return this.b;
   }

   public Map<String, String[]> getRawQueryParameterMap() {
      String var1 = this.getQueryString();

      try {
         if (StringUtils.isBlank(var1)) {
            return Collections.emptyMap();
         }
      } catch (IllegalArgumentException var3) {
         throw a(var3);
      }

      TreeMap var2 = new TreeMap<>(String.CASE_INSENSITIVE_ORDER);
      var2.putAll(ParameterizedString.parseQueryString(var1, true));
      return Collections.unmodifiableMap(var2);
   }

   public Map<String, String[]> getRequestBodyParameterMap() throws IOException {
      try {
         if (this.c == null) {
            this.a();
         }
      } catch (IOException var1) {
         throw a(var1);
      }

      return this.c;
   }

   public Map<String, String[]> getRawRequestBodyParameterMap() throws IOException {
      // $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/message/HttpServletRequestKnob.e Ljakarta/servlet/http/HttpServletRequest;
      // 04: invokeinterface jakarta/servlet/http/HttpServletRequest.getContentLength ()I 1
      // 09: istore 1
      // 0a: getstatic com/l7tech/message/HttpServletRequestKnob.n [Ljava/lang/String;
      // 0d: astore 8
      // 0f: aload 8
      // 11: bipush 6
      // 13: aaload
      // 14: ldc 524288
      // 16: invokestatic com/l7tech/util/ConfigFactory.getIntProperty (Ljava/lang/String;I)I
      // 19: istore 2
      // 1a: iload 1
      // 1b: iload 2
      // 1c: if_icmple 3d
      // 1f: new java/io/IOException
      // 22: dup
      // 23: aload 8
      // 25: bipush 1
      // 26: aaload
      // 27: bipush 1
      // 28: anewarray 450
      // 2b: dup
      // 2c: bipush 0
      // 2d: iload 1
      // 2e: invokestatic java/lang/Integer.valueOf (I)Ljava/lang/Integer;
      // 31: aastore
      // 32: invokestatic java/text/MessageFormat.format (Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
      // 35: invokespecial java/io/IOException.<init> (Ljava/lang/String;)V
      // 38: athrow
      // 39: invokestatic com/l7tech/message/HttpServletRequestKnob.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 3c: athrow
      // 3d: iload 1
      // 3e: bipush -1
      // 3f: if_icmpne 4a
      // 42: invokestatic java/util/Collections.emptyMap ()Ljava/util/Map;
      // 45: areturn
      // 46: invokestatic com/l7tech/message/HttpServletRequestKnob.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 49: athrow
      // 4a: aconst_null
      // 4b: astore 3
      // 4c: aload 0
      // 4d: getfield com/l7tech/message/HttpServletRequestKnob.e Ljakarta/servlet/http/HttpServletRequest;
      // 50: getstatic com/l7tech/common/mime/MimeUtil.CONTENT_TYPE Ljava/lang/String;
      // 53: invokeinterface jakarta/servlet/http/HttpServletRequest.getHeader (Ljava/lang/String;)Ljava/lang/String; 2
      // 58: invokestatic org/apache/commons/lang3/StringUtils.isNotBlank (Ljava/lang/CharSequence;)Z
      // 5b: ifeq 6e
      // 5e: aload 0
      // 5f: getfield com/l7tech/message/HttpServletRequestKnob.e Ljakarta/servlet/http/HttpServletRequest;
      // 62: getstatic com/l7tech/common/mime/MimeUtil.CONTENT_TYPE Ljava/lang/String;
      // 65: invokeinterface jakarta/servlet/http/HttpServletRequest.getHeader (Ljava/lang/String;)Ljava/lang/String; 2
      // 6a: invokestatic com/l7tech/common/mime/ContentTypeHeader.parseValue (Ljava/lang/String;)Lcom/l7tech/common/mime/ContentTypeHeader;
      // 6d: astore 3
      // 6e: aload 3
      // 6f: ifnull 8b
      // 72: aload 3
      // 73: getstatic com/l7tech/common/mime/ContentTypeHeader.APPLICATION_X_WWW_FORM_URLENCODED Lcom/l7tech/common/mime/ContentTypeHeader;
      // 76: invokevirtual com/l7tech/common/mime/ContentTypeHeader.matches (Lcom/l7tech/common/mime/ContentTypeHeader;)Z
      // 79: ifne 8b
      // 7c: goto 83
      // 7f: invokestatic com/l7tech/message/HttpServletRequestKnob.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 82: athrow
      // 83: invokestatic java/util/Collections.emptyMap ()Ljava/util/Map;
      // 86: areturn
      // 87: invokestatic com/l7tech/message/HttpServletRequestKnob.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 8a: athrow
      // 8b: aload 3
      // 8c: ifnull 9a
      // 8f: aload 3
      // 90: invokevirtual com/l7tech/common/mime/ContentTypeHeader.getEncoding ()Ljava/nio/charset/Charset;
      // 93: goto a0
      // 96: invokestatic com/l7tech/message/HttpServletRequestKnob.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 99: athrow
      // 9a: getstatic com/l7tech/common/mime/ContentTypeHeader.OCTET_STREAM_DEFAULT Lcom/l7tech/common/mime/ContentTypeHeader;
      // 9d: invokevirtual com/l7tech/common/mime/ContentTypeHeader.getEncoding ()Ljava/nio/charset/Charset;
      // a0: astore 4
      // a2: aload 0
      // a3: getfield com/l7tech/message/HttpServletRequestKnob.e Ljakarta/servlet/http/HttpServletRequest;
      // a6: invokeinterface jakarta/servlet/http/HttpServletRequest.getInputStream ()Ljakarta/servlet/ServletInputStream; 1
      // ab: invokestatic com/l7tech/util/IOUtils.slurpStream (Ljava/io/InputStream;)[B
      // ae: astore 5
      // b0: new java/lang/String
      // b3: dup
      // b4: aload 5
      // b6: aload 4
      // b8: invokespecial java/lang/String.<init> ([BLjava/nio/charset/Charset;)V
      // bb: astore 6
      // bd: new java/util/TreeMap
      // c0: dup
      // c1: getstatic java/lang/String.CASE_INSENSITIVE_ORDER Ljava/util/Comparator;
      // c4: invokespecial java/util/TreeMap.<init> (Ljava/util/Comparator;)V
      // c7: astore 7
      // c9: aload 7
      // cb: aload 6
      // cd: bipush 1
      // ce: invokestatic com/l7tech/common/http/ParameterizedString.parseParameterString (Ljava/util/Map;Ljava/lang/String;Z)V
      // d1: aload 7
      // d3: areturn
      // try (12 -> 30): 30 java/io/IOException
      // try (32 -> 37): 37 java/io/IOException
      // try (53 -> 59): 60 java/io/IOException
      // try (55 -> 64): 64 java/io/IOException
      // try (66 -> 71): 71 java/io/IOException
   }

   @Override
   public String getRequestUrl() {
      return this.e.getRequestURL().toString();
   }

   @Override
   public URL getRequestURL() {
      try {
         if (this.h != null) {
            return this.h;
         }
      } catch (MalformedURLException var3) {
         throw a(var3);
      }

      try {
         return this.h = new URL(this.e.getRequestURL().toString());
      } catch (MalformedURLException var2) {
         throw new RuntimeException(n[12] + ExceptionUtils.getMessage(var2), var2);
      }
   }

   @Override
   public long getDateHeader(String var1) throws ParseException {
      return this.e.getDateHeader(var1);
   }

   @Override
   public int getIntHeader(String var1) {
      try {
         return this.e.getIntHeader(var1);
      } catch (NumberFormatException var3) {
         return -1;
      }
   }

   @Override
   public String getHeaderFirstValue(String var1) {
      return this.e.getHeader(var1);
   }

   @Override
   public String getHeaderSingleValue(String var1) throws IOException {
      Enumeration var2 = this.e.getHeaders(var1);
      if (var2.hasMoreElements()) {
         String var3 = (String)var2.nextElement();

         try {
            if (var2.hasMoreElements()) {
               throw new IOException(n[11] + var1);
            } else {
               return var3;
            }
         } catch (IOException var4) {
            throw a(var4);
         }
      } else {
         return null;
      }
   }

   @Override
   public String[] getHeaderNames() {
      Enumeration var1 = this.e.getHeaderNames();
      ArrayList var2 = new ArrayList();

      while (var1.hasMoreElements()) {
         String var3 = (String)var1.nextElement();
         var2.add(var3);
      }

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

   @Override
   public String[] getHeaderValues(String var1) {
      Enumeration var2 = this.e.getHeaders(var1);
      ArrayList var3 = new ArrayList();

      while (var2.hasMoreElements()) {
         String var4 = (String)var2.nextElement();
         var3.add(var4);
      }

      return var3.toArray(new String[var3.size()]);
   }

   @Override
   public X509Certificate[] getClientCertificate() throws IOException {
      String[] var2 = n;
      Object var1 = this.e.getAttribute(var2[3]);

      try {
         if (var1 == null) {
            return null;
         }
      } catch (IOException var5) {
         throw a(var5);
      }

      try {
         if (var1 instanceof X509Certificate) {
            return new X509Certificate[]{(X509Certificate)var1};
         }
      } catch (IOException var3) {
         throw a(var3);
      }

      try {
         if (var1 instanceof X509Certificate[]) {
            return (X509Certificate[])var1;
         }
      } catch (IOException var4) {
         throw a(var4);
      }

      throw new IOException(n[10] + var1.getClass());
   }

   @Override
   public Object getConnectionIdentifier() {
      return this.e.getAttribute(n[0]);
   }

   @Override
   public boolean isSecure() {
      return this.e.isSecure();
   }

   @Override
   public String getRemoteAddress() {
      return this.e.getRemoteAddr();
   }

   @Override
   public String getRemoteHost() {
      return this.e.getRemoteHost();
   }

   @Override
   public int getRemotePort() {
      return this.e.getRemotePort();
   }

   @Override
   public String getLocalAddress() {
      return this.e.getLocalAddr();
   }

   @Override
   public String getLocalHost() {
      return this.e.getLocalName();
   }

   @Override
   public int getLocalPort() {
      return this.e.getServerPort();
   }

   @Override
   public int getLocalListenerPort() {
      return this.e.getLocalPort();
   }

   public HttpServletRequest getHttpServletRequest() {
      return this.e;
   }

   @Override
   public String getSoapAction() throws IOException {
      String var1 = this.getHeaderSingleValue(SoapUtil.SOAPACTION);

      try {
         if (var1 != null && var1.trim().length() != 0) {
            return var1;
         }
      } catch (IOException var4) {
         throw a(var4);
      }

      String var2 = this.getHeaderSingleValue(HttpConstants.HEADER_CONTENT_TYPE);
      if (var2 != null) {
         Matcher var3 = m.matcher(var2);
         if (var3.find()) {
            var1 = var3.group(1);
         }
      }

      return var1;
   }

   static {
      String[] var5 = new String[17];
      int var3 = 0;
      String var2 = "/}~B=Oy)q{B\"\u001d\u007f:waB2\u0017c\"wp\u00188\u0017c\u0005vv\u0002%\u0011k%wa#3\u0012h/f-\u001ewb\u00194\u000bylf|\u0003q\u0014b\"u3D\u0012\u0017c8w}\u0018|4h\"ug\u0004qE-7\"nL3\u0001y)a:0\u0005u}\u0003#\u0011c+2u\u0003#\u0015-<sa\r<\u001dy)``L5\rhlf|L8\u0016{-~z\bq\u001bb\"fv\u0002%X'&sx\r#\flbav\u001e'\u0014h8<a\t \rh?f=4dH4\u000fwa\u00188\u001ed/sg\t\u0003\u001cGG\u0004\u001c]@8\u001d%}=\u0004%\f}\u001csa\r<\u000b@-jU\u0003#\u0015]#ag.(\fh?8\u0005u}\u0003#\u0011c+2b\u00194\ntlag\u001e8\u0016jlbr\u001e0\u0015h8wa\u001fq\u001cx)2g\u0003q\u0011c:s\u007f\u00055Xn#|g\t?\f--\u001ewb\u00194\u000bylf|\u0003q\u0014b\"u3D\u0012\u0017c8w}\u0018|4h\"ug\u0004qE-7\"nL3\u0001y)a:'&sx\r#\flbav\u001e'\u0014h8<a\t \rh?f=4dH4\u000fwa\u00188\u001ed/sg\t-\u001ewb\u00194\u000bylJ&\\h;h>fz\n8\u001bl8w3\u001b0\u000b-9|`\u0019!\bb>fv\bq\ft<w32\u0001}a\tq\fe-|3\u0003?\u001d-:s\u007f\u00194Xk#g}\bq\u001eb>2[8\u0005(->wb\u00194\u000bylzv\r5\u001d\u007fl$\u0004fg\u001c\u0002\u001d\u007f:~v\u0018\u0003\u001d|9w`\u0018q\u0010l(2z\u0002'\u0019a%v39\u000347l,/}~B=Oy)q{B\"\u001d\u007f:waB2\u0017c\"wp\u00188\u0017c\u0005vv\u0002%\u0011k%wa#3\u0012h/f%/}~B=Oy)q{B<\u001d~?st\t\u007f\u0010y8bC\r#\u0019`?Dr\u00008\u001cl8w";
      int var4 = "/}~B=Oy)q{B\"\u001d\u007f:waB2\u0017c\"wp\u00188\u0017c\u0005vv\u0002%\u0011k%wa#3\u0012h/f-\u001ewb\u00194\u000bylf|\u0003q\u0014b\"u3D\u0012\u0017c8w}\u0018|4h\"ug\u0004qE-7\"nL3\u0001y)a:0\u0005u}\u0003#\u0011c+2u\u0003#\u0015-<sa\r<\u001dy)``L5\rhlf|L8\u0016{-~z\bq\u001bb\"fv\u0002%X'&sx\r#\flbav\u001e'\u0014h8<a\t \rh?f=4dH4\u000fwa\u00188\u001ed/sg\t\u0003\u001cGG\u0004\u001c]@8\u001d%}=\u0004%\f}\u001csa\r<\u000b@-jU\u0003#\u0015]#ag.(\fh?8\u0005u}\u0003#\u0011c+2b\u00194\ntlag\u001e8\u0016jlbr\u001e0\u0015h8wa\u001fq\u001cx)2g\u0003q\u0011c:s\u007f\u00055Xn#|g\t?\f--\u001ewb\u00194\u000bylf|\u0003q\u0014b\"u3D\u0012\u0017c8w}\u0018|4h\"ug\u0004qE-7\"nL3\u0001y)a:'&sx\r#\flbav\u001e'\u0014h8<a\t \rh?f=4dH4\u000fwa\u00188\u001ed/sg\t-\u001ewb\u00194\u000bylJ&\\h;h>fz\n8\u001bl8w3\u001b0\u000b-9|`\u0019!\bb>fv\bq\ft<w32\u0001}a\tq\fe-|3\u0003?\u001d-:s\u007f\u00194Xk#g}\bq\u001eb>2[8\u0005(->wb\u00194\u000bylzv\r5\u001d\u007fl$\u0004fg\u001c\u0002\u001d\u007f:~v\u0018\u0003\u001d|9w`\u0018q\u0010l(2z\u0002'\u0019a%v39\u000347l,/}~B=Oy)q{B\"\u001d\u007f:waB2\u0017c\"wp\u00188\u0017c\u0005vv\u0002%\u0011k%wa#3\u0012h/f%/}~B=Oy)q{B<\u001d~?st\t\u007f\u0010y8bC\r#\u0019`?Dr\u00008\u001cl8w"
         .length();
      char var1 = ',';
      int var7 = -1;

      label24:
      while (true) {
         byte var10000 = 28;
         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) {
                     n = var5;
                     String[] var10 = n;
                     j = n[13];
                     k = var10[6];
                     i = var10[9];
                     a = Logger.getLogger(HttpServletRequestKnob.class.getName());
                     g = Collections.unmodifiableMap(new TreeMap<String, HttpMethod>(String.CASE_INSENSITIVE_ORDER) {
                        static final long serialVersionUID = 7169688993963967268L;

                        {
                           for (HttpMethod var5x : HttpMethod.values()) {
                              this.put(var5x.name(), var5x);
                           }
                        }
                     });
                     String[] var8 = n;
                     l = ConfigFactory.getBooleanProperty(var8[14], true);
                     m = Pattern.compile(var8[15]);
                     return;
                  }

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

                  var2 = "8\u0001/\t\u007fT6j22\u001e6l\u001c8\u0000w\n6\bx8!x\n\u001dj2rKjC2S<.BsD\u000fb%\u001aLlZ\u0012l.(agC'p";
                  var4 = "8\u0001/\t\u007fT6j22\u001e6l\u001c8\u0000w\n6\bx8!x\n\u001dj2rKjC2S<.BsD\u000fb%\u001aLlZ\u0012l.(agC'p".length();
                  var1 = 25;
                  var7 = -1;
            }

            var10000 = 83;
            var10001 = var2.substring(++var7, var7 + 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] ^ 17);
      }

      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 -> 80;
            case 1 -> 14;
            case 2 -> 15;
            case 3 -> 112;
            case 4 -> 77;
            case 5 -> 100;
            default -> 17;
         });
      }

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