public class org.apache.catalina.valves.ExtendedAccessLogValve extends org.apache.catalina.valves.AccessLogValve
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.catalina.valves.ExtendedAccessLogValve
  super_class: org.apache.catalina.valves.AccessLogValve
{
  private static final org.apache.juli.logging.Log log;
    descriptor: Lorg/apache/juli/logging/Log;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  protected static final java.lang.String extendedAccessLogInfo;
    descriptor: Ljava/lang/String;
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: "org.apache.catalina.valves.ExtendedAccessLogValve/2.1"

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 129
            ldc Lorg/apache/catalina/valves/ExtendedAccessLogValve;
            invokestatic org.apache.juli.logging.LogFactory.getLog:(Ljava/lang/Class;)Lorg/apache/juli/logging/Log;
            putstatic org.apache.catalina.valves.ExtendedAccessLogValve.log:Lorg/apache/juli/logging/Log;
         1: .line 138
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.valves.ExtendedAccessLogValve this
         0: .line 127
            aload 0 /* this */
            invokespecial org.apache.catalina.valves.AccessLogValve.<init>:()V
            return
        end local 0 // org.apache.catalina.valves.ExtendedAccessLogValve this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/valves/ExtendedAccessLogValve;

  static java.lang.String wrap(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=5, args_size=1
        start local 0 // java.lang.Object value
         0: .line 156
            aload 0 /* value */
            ifnull 1
            ldc "-"
            aload 0 /* value */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 157
      StackMap locals:
      StackMap stack:
            ldc "-"
            areturn
         2: .line 161
      StackMap locals:
      StackMap stack:
            aload 0 /* value */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            astore 1 /* svalue */
        start local 1 // java.lang.String svalue
         3: .line 162
            goto 7
        end local 1 // java.lang.String svalue
      StackMap locals:
      StackMap stack: java.lang.Throwable
         4: astore 2 /* e */
        start local 2 // java.lang.Throwable e
         5: .line 163
            aload 2 /* e */
            invokestatic org.apache.tomcat.util.ExceptionUtils.handleThrowable:(Ljava/lang/Throwable;)V
         6: .line 165
            ldc "-"
            areturn
        end local 2 // java.lang.Throwable e
        start local 1 // java.lang.String svalue
         7: .line 169
      StackMap locals: java.lang.String
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 1 /* svalue */
            invokevirtual java.lang.String.length:()I
            iconst_2
            iadd
            invokespecial java.lang.StringBuilder.<init>:(I)V
            astore 2 /* buffer */
        start local 2 // java.lang.StringBuilder buffer
         8: .line 170
            aload 2 /* buffer */
            bipush 34
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         9: .line 171
            iconst_0
            istore 3 /* i */
        start local 3 // int i
        10: .line 172
            goto 19
        11: .line 173
      StackMap locals: java.lang.StringBuilder int
      StackMap stack:
            aload 1 /* svalue */
            bipush 34
            iload 3 /* i */
            invokevirtual java.lang.String.indexOf:(II)I
            istore 4 /* j */
        start local 4 // int j
        12: .line 174
            iload 4 /* j */
            iconst_m1
            if_icmpne 16
        13: .line 175
            aload 2 /* buffer */
            aload 1 /* svalue */
            iload 3 /* i */
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        14: .line 176
            aload 1 /* svalue */
            invokevirtual java.lang.String.length:()I
            istore 3 /* i */
        15: .line 177
            goto 19
        16: .line 178
      StackMap locals: int
      StackMap stack:
            aload 2 /* buffer */
            aload 1 /* svalue */
            iload 3 /* i */
            iload 4 /* j */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        17: .line 179
            aload 2 /* buffer */
            bipush 34
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        18: .line 180
            iload 4 /* j */
            iconst_1
            iadd
            istore 3 /* i */
        end local 4 // int j
        19: .line 172
      StackMap locals:
      StackMap stack:
            iload 3 /* i */
            aload 1 /* svalue */
            invokevirtual java.lang.String.length:()I
            if_icmplt 11
        20: .line 184
            aload 2 /* buffer */
            bipush 34
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        21: .line 185
            aload 2 /* buffer */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 3 // int i
        end local 2 // java.lang.StringBuilder buffer
        end local 1 // java.lang.String svalue
        end local 0 // java.lang.Object value
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   22     0   value  Ljava/lang/Object;
            3    4     1  svalue  Ljava/lang/String;
            7   22     1  svalue  Ljava/lang/String;
            5    7     2       e  Ljava/lang/Throwable;
            8   22     2  buffer  Ljava/lang/StringBuilder;
           10   22     3       i  I
           12   19     4       j  I
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.Throwable
    MethodParameters:
       Name  Flags
      value  

  protected synchronized void open();
    descriptor: ()V
    flags: (0x0024) ACC_PROTECTED, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.apache.catalina.valves.ExtendedAccessLogValve this
         0: .line 193
            aload 0 /* this */
            invokespecial org.apache.catalina.valves.AccessLogValve.open:()V
         1: .line 194
            aload 0 /* this */
            getfield org.apache.catalina.valves.ExtendedAccessLogValve.currentLogFile:Ljava/io/File;
            invokevirtual java.io.File.length:()J
            lconst_0
            lcmp
            ifne 5
         2: .line 195
            aload 0 /* this */
            getfield org.apache.catalina.valves.ExtendedAccessLogValve.writer:Ljava/io/PrintWriter;
            new java.lang.StringBuilder
            dup
            ldc "#Fields: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.apache.catalina.valves.ExtendedAccessLogValve.pattern:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
         3: .line 196
            aload 0 /* this */
            getfield org.apache.catalina.valves.ExtendedAccessLogValve.writer:Ljava/io/PrintWriter;
            ldc "#Version: 2.0"
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
         4: .line 197
            aload 0 /* this */
            getfield org.apache.catalina.valves.ExtendedAccessLogValve.writer:Ljava/io/PrintWriter;
            new java.lang.StringBuilder
            dup
            ldc "#Software: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            invokestatic org.apache.catalina.util.ServerInfo.getServerInfo:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
         5: .line 199
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.catalina.valves.ExtendedAccessLogValve this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/apache/catalina/valves/ExtendedAccessLogValve;

  protected org.apache.catalina.valves.AbstractAccessLogValve$AccessLogElement[] createLogElements();
    descriptor: ()[Lorg/apache/catalina/valves/AbstractAccessLogValve$AccessLogElement;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=6, args_size=1
        start local 0 // org.apache.catalina.valves.ExtendedAccessLogValve this
         0: .line 525
            getstatic org.apache.catalina.valves.ExtendedAccessLogValve.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 2
         1: .line 526
            getstatic org.apache.catalina.valves.ExtendedAccessLogValve.log:Lorg/apache/juli/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "decodePattern, pattern ="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.apache.catalina.valves.ExtendedAccessLogValve.pattern:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
         2: .line 528
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 1 /* list */
        start local 1 // java.util.List list
         3: .line 530
            new org.apache.catalina.valves.ExtendedAccessLogValve$PatternTokenizer
            dup
            aload 0 /* this */
            getfield org.apache.catalina.valves.ExtendedAccessLogValve.pattern:Ljava/lang/String;
            invokespecial org.apache.catalina.valves.ExtendedAccessLogValve$PatternTokenizer.<init>:(Ljava/lang/String;)V
            astore 2 /* tokenizer */
        start local 2 // org.apache.catalina.valves.ExtendedAccessLogValve$PatternTokenizer tokenizer
         4: .line 534
            aload 2 /* tokenizer */
            invokevirtual org.apache.catalina.valves.ExtendedAccessLogValve$PatternTokenizer.getWhiteSpaces:()Ljava/lang/String;
            pop
         5: .line 536
            aload 2 /* tokenizer */
            invokevirtual org.apache.catalina.valves.ExtendedAccessLogValve$PatternTokenizer.isEnded:()Z
            ifeq 8
         6: .line 537
            getstatic org.apache.catalina.valves.ExtendedAccessLogValve.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.valves.ExtendedAccessLogValve.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "extendedAccessLogValve.emptyPattern"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.info:(Ljava/lang/Object;)V
         7: .line 538
            aconst_null
            areturn
         8: .line 541
      StackMap locals: java.util.List org.apache.catalina.valves.ExtendedAccessLogValve$PatternTokenizer
      StackMap stack:
            aload 2 /* tokenizer */
            invokevirtual org.apache.catalina.valves.ExtendedAccessLogValve$PatternTokenizer.getToken:()Ljava/lang/String;
            astore 3 /* token */
        start local 3 // java.lang.String token
         9: .line 542
            goto 22
        10: .line 543
      StackMap locals: java.lang.String
      StackMap stack:
            getstatic org.apache.catalina.valves.ExtendedAccessLogValve.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 12
        11: .line 544
            getstatic org.apache.catalina.valves.ExtendedAccessLogValve.log:Lorg/apache/juli/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "token = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* token */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
        12: .line 546
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* token */
            aload 2 /* tokenizer */
            invokevirtual org.apache.catalina.valves.ExtendedAccessLogValve.getLogElement:(Ljava/lang/String;Lorg/apache/catalina/valves/ExtendedAccessLogValve$PatternTokenizer;)Lorg/apache/catalina/valves/AbstractAccessLogValve$AccessLogElement;
            astore 4 /* element */
        start local 4 // org.apache.catalina.valves.AbstractAccessLogValve$AccessLogElement element
        13: .line 547
            aload 4 /* element */
            ifnonnull 15
        14: .line 548
            goto 23
        15: .line 550
      StackMap locals: org.apache.catalina.valves.AbstractAccessLogValve$AccessLogElement
      StackMap stack:
            aload 1 /* list */
            aload 4 /* element */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        16: .line 551
            aload 2 /* tokenizer */
            invokevirtual org.apache.catalina.valves.ExtendedAccessLogValve$PatternTokenizer.getWhiteSpaces:()Ljava/lang/String;
            astore 5 /* whiteSpaces */
        start local 5 // java.lang.String whiteSpaces
        17: .line 552
            aload 5 /* whiteSpaces */
            invokevirtual java.lang.String.length:()I
            ifle 19
        18: .line 553
            aload 1 /* list */
            new org.apache.catalina.valves.AbstractAccessLogValve$StringElement
            dup
            aload 5 /* whiteSpaces */
            invokespecial org.apache.catalina.valves.AbstractAccessLogValve$StringElement.<init>:(Ljava/lang/String;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        19: .line 555
      StackMap locals: java.lang.String
      StackMap stack:
            aload 2 /* tokenizer */
            invokevirtual org.apache.catalina.valves.ExtendedAccessLogValve$PatternTokenizer.isEnded:()Z
            ifeq 21
        20: .line 556
            goto 23
        21: .line 558
      StackMap locals:
      StackMap stack:
            aload 2 /* tokenizer */
            invokevirtual org.apache.catalina.valves.ExtendedAccessLogValve$PatternTokenizer.getToken:()Ljava/lang/String;
            astore 3 /* token */
        end local 5 // java.lang.String whiteSpaces
        end local 4 // org.apache.catalina.valves.AbstractAccessLogValve$AccessLogElement element
        22: .line 542
      StackMap locals:
      StackMap stack:
            aload 3 /* token */
            ifnonnull 10
        23: .line 560
      StackMap locals:
      StackMap stack:
            getstatic org.apache.catalina.valves.ExtendedAccessLogValve.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 25
        24: .line 561
            getstatic org.apache.catalina.valves.ExtendedAccessLogValve.log:Lorg/apache/juli/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "finished decoding with element size of: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* list */
            invokeinterface java.util.List.size:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
        25: .line 563
      StackMap locals:
      StackMap stack:
            aload 1 /* list */
            iconst_0
            anewarray org.apache.catalina.valves.AbstractAccessLogValve$AccessLogElement
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast org.apache.catalina.valves.AbstractAccessLogValve$AccessLogElement[]
        26: areturn
        end local 3 // java.lang.String token
        27: .line 564
      StackMap locals: org.apache.catalina.valves.ExtendedAccessLogValve java.util.List org.apache.catalina.valves.ExtendedAccessLogValve$PatternTokenizer
      StackMap stack: java.io.IOException
            astore 3 /* e */
        start local 3 // java.io.IOException e
        28: .line 565
            getstatic org.apache.catalina.valves.ExtendedAccessLogValve.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.valves.ExtendedAccessLogValve.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "extendedAccessLogValve.patternParseError"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield org.apache.catalina.valves.ExtendedAccessLogValve.pattern:Ljava/lang/String;
            aastore
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            aload 3 /* e */
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        29: .line 566
            aconst_null
            areturn
        end local 3 // java.io.IOException e
        end local 2 // org.apache.catalina.valves.ExtendedAccessLogValve$PatternTokenizer tokenizer
        end local 1 // java.util.List list
        end local 0 // org.apache.catalina.valves.ExtendedAccessLogValve this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   30     0         this  Lorg/apache/catalina/valves/ExtendedAccessLogValve;
            3   30     1         list  Ljava/util/List<Lorg/apache/catalina/valves/AbstractAccessLogValve$AccessLogElement;>;
            4   30     2    tokenizer  Lorg/apache/catalina/valves/ExtendedAccessLogValve$PatternTokenizer;
            9   27     3        token  Ljava/lang/String;
           13   22     4      element  Lorg/apache/catalina/valves/AbstractAccessLogValve$AccessLogElement;
           17   22     5  whiteSpaces  Ljava/lang/String;
           28   30     3            e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           4     7      27  Class java.io.IOException
           8    26      27  Class java.io.IOException

  protected org.apache.catalina.valves.AbstractAccessLogValve$AccessLogElement getLogElement(java.lang.String, org.apache.catalina.valves.ExtendedAccessLogValve$PatternTokenizer);
    descriptor: (Ljava/lang/String;Lorg/apache/catalina/valves/ExtendedAccessLogValve$PatternTokenizer;)Lorg/apache/catalina/valves/AbstractAccessLogValve$AccessLogElement;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=4, args_size=3
        start local 0 // org.apache.catalina.valves.ExtendedAccessLogValve this
        start local 1 // java.lang.String token
        start local 2 // org.apache.catalina.valves.ExtendedAccessLogValve$PatternTokenizer tokenizer
         0: .line 571
            ldc "date"
            aload 1 /* token */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 572
            new org.apache.catalina.valves.ExtendedAccessLogValve$DateElement
            dup
            invokespecial org.apache.catalina.valves.ExtendedAccessLogValve$DateElement.<init>:()V
            areturn
         2: .line 573
      StackMap locals:
      StackMap stack:
            ldc "time"
            aload 1 /* token */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 8
         3: .line 574
            aload 2 /* tokenizer */
            invokevirtual org.apache.catalina.valves.ExtendedAccessLogValve$PatternTokenizer.hasSubToken:()Z
            ifeq 7
         4: .line 575
            aload 2 /* tokenizer */
            invokevirtual org.apache.catalina.valves.ExtendedAccessLogValve$PatternTokenizer.getToken:()Ljava/lang/String;
            astore 3 /* nextToken */
        start local 3 // java.lang.String nextToken
         5: .line 576
            ldc "taken"
            aload 3 /* nextToken */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 32
         6: .line 577
            new org.apache.catalina.valves.AbstractAccessLogValve$ElapsedTimeElement
            dup
            iconst_0
            iconst_0
            invokespecial org.apache.catalina.valves.AbstractAccessLogValve$ElapsedTimeElement.<init>:(ZZ)V
            areturn
        end local 3 // java.lang.String nextToken
         7: .line 580
      StackMap locals:
      StackMap stack:
            new org.apache.catalina.valves.ExtendedAccessLogValve$TimeElement
            dup
            invokespecial org.apache.catalina.valves.ExtendedAccessLogValve$TimeElement.<init>:()V
            areturn
         8: .line 582
      StackMap locals:
      StackMap stack:
            ldc "bytes"
            aload 1 /* token */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 10
         9: .line 583
            new org.apache.catalina.valves.AbstractAccessLogValve$ByteSentElement
            dup
            iconst_1
            invokespecial org.apache.catalina.valves.AbstractAccessLogValve$ByteSentElement.<init>:(Z)V
            areturn
        10: .line 584
      StackMap locals:
      StackMap stack:
            ldc "cached"
            aload 1 /* token */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 12
        11: .line 586
            new org.apache.catalina.valves.AbstractAccessLogValve$StringElement
            dup
            ldc "-"
            invokespecial org.apache.catalina.valves.AbstractAccessLogValve$StringElement.<init>:(Ljava/lang/String;)V
            areturn
        12: .line 587
      StackMap locals:
      StackMap stack:
            ldc "c"
            aload 1 /* token */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 18
        13: .line 588
            aload 2 /* tokenizer */
            invokevirtual org.apache.catalina.valves.ExtendedAccessLogValve$PatternTokenizer.getToken:()Ljava/lang/String;
            astore 3 /* nextToken */
        start local 3 // java.lang.String nextToken
        14: .line 589
            ldc "ip"
            aload 3 /* nextToken */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 16
        15: .line 590
            new org.apache.catalina.valves.AbstractAccessLogValve$RemoteAddrElement
            dup
            aload 0 /* this */
            invokespecial org.apache.catalina.valves.AbstractAccessLogValve$RemoteAddrElement.<init>:(Lorg/apache/catalina/valves/AbstractAccessLogValve;)V
            areturn
        16: .line 591
      StackMap locals: java.lang.String
      StackMap stack:
            ldc "dns"
            aload 3 /* nextToken */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 32
        17: .line 592
            new org.apache.catalina.valves.AbstractAccessLogValve$HostElement
            dup
            aload 0 /* this */
            invokespecial org.apache.catalina.valves.AbstractAccessLogValve$HostElement.<init>:(Lorg/apache/catalina/valves/AbstractAccessLogValve;)V
            areturn
        end local 3 // java.lang.String nextToken
        18: .line 594
      StackMap locals:
      StackMap stack:
            ldc "s"
            aload 1 /* token */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 24
        19: .line 595
            aload 2 /* tokenizer */
            invokevirtual org.apache.catalina.valves.ExtendedAccessLogValve$PatternTokenizer.getToken:()Ljava/lang/String;
            astore 3 /* nextToken */
        start local 3 // java.lang.String nextToken
        20: .line 596
            ldc "ip"
            aload 3 /* nextToken */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 22
        21: .line 597
            new org.apache.catalina.valves.AbstractAccessLogValve$LocalAddrElement
            dup
            aload 0 /* this */
            invokevirtual org.apache.catalina.valves.ExtendedAccessLogValve.getIpv6Canonical:()Z
            invokespecial org.apache.catalina.valves.AbstractAccessLogValve$LocalAddrElement.<init>:(Z)V
            areturn
        22: .line 598
      StackMap locals: java.lang.String
      StackMap stack:
            ldc "dns"
            aload 3 /* nextToken */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 32
        23: .line 599
            new org.apache.catalina.valves.ExtendedAccessLogValve$1
            dup
            aload 0 /* this */
            invokespecial org.apache.catalina.valves.ExtendedAccessLogValve$1.<init>:(Lorg/apache/catalina/valves/ExtendedAccessLogValve;)V
            areturn
        end local 3 // java.lang.String nextToken
        24: .line 614
      StackMap locals:
      StackMap stack:
            ldc "cs"
            aload 1 /* token */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 26
        25: .line 615
            aload 0 /* this */
            aload 2 /* tokenizer */
            invokevirtual org.apache.catalina.valves.ExtendedAccessLogValve.getClientToServerElement:(Lorg/apache/catalina/valves/ExtendedAccessLogValve$PatternTokenizer;)Lorg/apache/catalina/valves/AbstractAccessLogValve$AccessLogElement;
            areturn
        26: .line 616
      StackMap locals:
      StackMap stack:
            ldc "sc"
            aload 1 /* token */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 28
        27: .line 617
            aload 0 /* this */
            aload 2 /* tokenizer */
            invokevirtual org.apache.catalina.valves.ExtendedAccessLogValve.getServerToClientElement:(Lorg/apache/catalina/valves/ExtendedAccessLogValve$PatternTokenizer;)Lorg/apache/catalina/valves/AbstractAccessLogValve$AccessLogElement;
            areturn
        28: .line 618
      StackMap locals:
      StackMap stack:
            ldc "sr"
            aload 1 /* token */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 29
            ldc "rs"
            aload 1 /* token */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 30
        29: .line 619
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* tokenizer */
            invokevirtual org.apache.catalina.valves.ExtendedAccessLogValve.getProxyElement:(Lorg/apache/catalina/valves/ExtendedAccessLogValve$PatternTokenizer;)Lorg/apache/catalina/valves/AbstractAccessLogValve$AccessLogElement;
            areturn
        30: .line 620
      StackMap locals:
      StackMap stack:
            ldc "x"
            aload 1 /* token */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 32
        31: .line 621
            aload 0 /* this */
            aload 2 /* tokenizer */
            invokevirtual org.apache.catalina.valves.ExtendedAccessLogValve.getXParameterElement:(Lorg/apache/catalina/valves/ExtendedAccessLogValve$PatternTokenizer;)Lorg/apache/catalina/valves/AbstractAccessLogValve$AccessLogElement;
            areturn
        32: .line 623
      StackMap locals:
      StackMap stack:
            getstatic org.apache.catalina.valves.ExtendedAccessLogValve.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.valves.ExtendedAccessLogValve.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "extendedAccessLogValve.decodeError"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* token */
            aastore
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;)V
        33: .line 624
            aconst_null
            areturn
        end local 2 // org.apache.catalina.valves.ExtendedAccessLogValve$PatternTokenizer tokenizer
        end local 1 // java.lang.String token
        end local 0 // org.apache.catalina.valves.ExtendedAccessLogValve this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   34     0       this  Lorg/apache/catalina/valves/ExtendedAccessLogValve;
            0   34     1      token  Ljava/lang/String;
            0   34     2  tokenizer  Lorg/apache/catalina/valves/ExtendedAccessLogValve$PatternTokenizer;
            5    7     3  nextToken  Ljava/lang/String;
           14   18     3  nextToken  Ljava/lang/String;
           20   24     3  nextToken  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      token      
      tokenizer  

  protected org.apache.catalina.valves.AbstractAccessLogValve$AccessLogElement getClientToServerElement(org.apache.catalina.valves.ExtendedAccessLogValve$PatternTokenizer);
    descriptor: (Lorg/apache/catalina/valves/ExtendedAccessLogValve$PatternTokenizer;)Lorg/apache/catalina/valves/AbstractAccessLogValve$AccessLogElement;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=3, args_size=2
        start local 0 // org.apache.catalina.valves.ExtendedAccessLogValve this
        start local 1 // org.apache.catalina.valves.ExtendedAccessLogValve$PatternTokenizer tokenizer
         0: .line 629
            aload 1 /* tokenizer */
            invokevirtual org.apache.catalina.valves.ExtendedAccessLogValve$PatternTokenizer.hasSubToken:()Z
            ifeq 12
         1: .line 630
            aload 1 /* tokenizer */
            invokevirtual org.apache.catalina.valves.ExtendedAccessLogValve$PatternTokenizer.getToken:()Ljava/lang/String;
            astore 2 /* token */
        start local 2 // java.lang.String token
         2: .line 631
            ldc "method"
            aload 2 /* token */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 632
            new org.apache.catalina.valves.AbstractAccessLogValve$MethodElement
            dup
            invokespecial org.apache.catalina.valves.AbstractAccessLogValve$MethodElement.<init>:()V
            areturn
         4: .line 633
      StackMap locals: java.lang.String
      StackMap stack:
            ldc "uri"
            aload 2 /* token */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 18
         5: .line 634
            aload 1 /* tokenizer */
            invokevirtual org.apache.catalina.valves.ExtendedAccessLogValve$PatternTokenizer.hasSubToken:()Z
            ifeq 11
         6: .line 635
            aload 1 /* tokenizer */
            invokevirtual org.apache.catalina.valves.ExtendedAccessLogValve$PatternTokenizer.getToken:()Ljava/lang/String;
            astore 2 /* token */
         7: .line 636
            ldc "stem"
            aload 2 /* token */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 9
         8: .line 637
            new org.apache.catalina.valves.AbstractAccessLogValve$RequestURIElement
            dup
            invokespecial org.apache.catalina.valves.AbstractAccessLogValve$RequestURIElement.<init>:()V
            areturn
         9: .line 638
      StackMap locals:
      StackMap stack:
            ldc "query"
            aload 2 /* token */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 18
        10: .line 639
            new org.apache.catalina.valves.ExtendedAccessLogValve$2
            dup
            aload 0 /* this */
            invokespecial org.apache.catalina.valves.ExtendedAccessLogValve$2.<init>:(Lorg/apache/catalina/valves/ExtendedAccessLogValve;)V
            areturn
        11: .line 654
      StackMap locals:
      StackMap stack:
            new org.apache.catalina.valves.ExtendedAccessLogValve$3
            dup
            aload 0 /* this */
            invokespecial org.apache.catalina.valves.ExtendedAccessLogValve$3.<init>:(Lorg/apache/catalina/valves/ExtendedAccessLogValve;)V
            areturn
        end local 2 // java.lang.String token
        12: .line 670
      StackMap locals:
      StackMap stack:
            aload 1 /* tokenizer */
            invokevirtual org.apache.catalina.valves.ExtendedAccessLogValve$PatternTokenizer.hasParameter:()Z
            ifeq 18
        13: .line 671
            aload 1 /* tokenizer */
            invokevirtual org.apache.catalina.valves.ExtendedAccessLogValve$PatternTokenizer.getParameter:()Ljava/lang/String;
            astore 2 /* parameter */
        start local 2 // java.lang.String parameter
        14: .line 672
            aload 2 /* parameter */
            ifnonnull 17
        15: .line 673
            getstatic org.apache.catalina.valves.ExtendedAccessLogValve.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.valves.ExtendedAccessLogValve.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "extendedAccessLogValve.noClosing"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;)V
        16: .line 674
            aconst_null
            areturn
        17: .line 676
      StackMap locals: java.lang.String
      StackMap stack:
            new org.apache.catalina.valves.ExtendedAccessLogValve$RequestHeaderElement
            dup
            aload 2 /* parameter */
            invokespecial org.apache.catalina.valves.ExtendedAccessLogValve$RequestHeaderElement.<init>:(Ljava/lang/String;)V
            areturn
        end local 2 // java.lang.String parameter
        18: .line 678
      StackMap locals:
      StackMap stack:
            getstatic org.apache.catalina.valves.ExtendedAccessLogValve.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.valves.ExtendedAccessLogValve.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "extendedAccessLogValve.decodeError"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* tokenizer */
            invokevirtual org.apache.catalina.valves.ExtendedAccessLogValve$PatternTokenizer.getRemains:()Ljava/lang/String;
            aastore
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;)V
        19: .line 679
            aconst_null
            areturn
        end local 1 // org.apache.catalina.valves.ExtendedAccessLogValve$PatternTokenizer tokenizer
        end local 0 // org.apache.catalina.valves.ExtendedAccessLogValve this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   20     0       this  Lorg/apache/catalina/valves/ExtendedAccessLogValve;
            0   20     1  tokenizer  Lorg/apache/catalina/valves/ExtendedAccessLogValve$PatternTokenizer;
            2   12     2      token  Ljava/lang/String;
           14   18     2  parameter  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      tokenizer  

  protected org.apache.catalina.valves.AbstractAccessLogValve$AccessLogElement getServerToClientElement(org.apache.catalina.valves.ExtendedAccessLogValve$PatternTokenizer);
    descriptor: (Lorg/apache/catalina/valves/ExtendedAccessLogValve$PatternTokenizer;)Lorg/apache/catalina/valves/AbstractAccessLogValve$AccessLogElement;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=3, args_size=2
        start local 0 // org.apache.catalina.valves.ExtendedAccessLogValve this
        start local 1 // org.apache.catalina.valves.ExtendedAccessLogValve$PatternTokenizer tokenizer
         0: .line 684
            aload 1 /* tokenizer */
            invokevirtual org.apache.catalina.valves.ExtendedAccessLogValve$PatternTokenizer.hasSubToken:()Z
            ifeq 6
         1: .line 685
            aload 1 /* tokenizer */
            invokevirtual org.apache.catalina.valves.ExtendedAccessLogValve$PatternTokenizer.getToken:()Ljava/lang/String;
            astore 2 /* token */
        start local 2 // java.lang.String token
         2: .line 686
            ldc "status"
            aload 2 /* token */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 687
            new org.apache.catalina.valves.AbstractAccessLogValve$HttpStatusCodeElement
            dup
            invokespecial org.apache.catalina.valves.AbstractAccessLogValve$HttpStatusCodeElement.<init>:()V
            areturn
         4: .line 688
      StackMap locals: java.lang.String
      StackMap stack:
            ldc "comment"
            aload 2 /* token */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 12
         5: .line 689
            new org.apache.catalina.valves.AbstractAccessLogValve$StringElement
            dup
            ldc "?"
            invokespecial org.apache.catalina.valves.AbstractAccessLogValve$StringElement.<init>:(Ljava/lang/String;)V
            areturn
        end local 2 // java.lang.String token
         6: .line 691
      StackMap locals:
      StackMap stack:
            aload 1 /* tokenizer */
            invokevirtual org.apache.catalina.valves.ExtendedAccessLogValve$PatternTokenizer.hasParameter:()Z
            ifeq 12
         7: .line 692
            aload 1 /* tokenizer */
            invokevirtual org.apache.catalina.valves.ExtendedAccessLogValve$PatternTokenizer.getParameter:()Ljava/lang/String;
            astore 2 /* parameter */
        start local 2 // java.lang.String parameter
         8: .line 693
            aload 2 /* parameter */
            ifnonnull 11
         9: .line 694
            getstatic org.apache.catalina.valves.ExtendedAccessLogValve.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.valves.ExtendedAccessLogValve.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "extendedAccessLogValve.noClosing"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;)V
        10: .line 695
            aconst_null
            areturn
        11: .line 697
      StackMap locals: java.lang.String
      StackMap stack:
            new org.apache.catalina.valves.ExtendedAccessLogValve$ResponseHeaderElement
            dup
            aload 2 /* parameter */
            invokespecial org.apache.catalina.valves.ExtendedAccessLogValve$ResponseHeaderElement.<init>:(Ljava/lang/String;)V
            areturn
        end local 2 // java.lang.String parameter
        12: .line 699
      StackMap locals:
      StackMap stack:
            getstatic org.apache.catalina.valves.ExtendedAccessLogValve.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.valves.ExtendedAccessLogValve.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "extendedAccessLogValve.decodeError"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* tokenizer */
            invokevirtual org.apache.catalina.valves.ExtendedAccessLogValve$PatternTokenizer.getRemains:()Ljava/lang/String;
            aastore
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;)V
        13: .line 700
            aconst_null
            areturn
        end local 1 // org.apache.catalina.valves.ExtendedAccessLogValve$PatternTokenizer tokenizer
        end local 0 // org.apache.catalina.valves.ExtendedAccessLogValve this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   14     0       this  Lorg/apache/catalina/valves/ExtendedAccessLogValve;
            0   14     1  tokenizer  Lorg/apache/catalina/valves/ExtendedAccessLogValve$PatternTokenizer;
            2    6     2      token  Ljava/lang/String;
            8   12     2  parameter  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      tokenizer  

  protected org.apache.catalina.valves.AbstractAccessLogValve$AccessLogElement getProxyElement(org.apache.catalina.valves.ExtendedAccessLogValve$PatternTokenizer);
    descriptor: (Lorg/apache/catalina/valves/ExtendedAccessLogValve$PatternTokenizer;)Lorg/apache/catalina/valves/AbstractAccessLogValve$AccessLogElement;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=3, args_size=2
        start local 0 // org.apache.catalina.valves.ExtendedAccessLogValve this
        start local 1 // org.apache.catalina.valves.ExtendedAccessLogValve$PatternTokenizer tokenizer
         0: .line 705
            aconst_null
            astore 2 /* token */
        start local 2 // java.lang.String token
         1: .line 706
            aload 1 /* tokenizer */
            invokevirtual org.apache.catalina.valves.ExtendedAccessLogValve$PatternTokenizer.hasSubToken:()Z
            ifeq 4
         2: .line 707
            aload 1 /* tokenizer */
            invokevirtual org.apache.catalina.valves.ExtendedAccessLogValve$PatternTokenizer.getToken:()Ljava/lang/String;
            pop
         3: .line 708
            new org.apache.catalina.valves.AbstractAccessLogValve$StringElement
            dup
            ldc "-"
            invokespecial org.apache.catalina.valves.AbstractAccessLogValve$StringElement.<init>:(Ljava/lang/String;)V
            areturn
         4: .line 709
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* tokenizer */
            invokevirtual org.apache.catalina.valves.ExtendedAccessLogValve$PatternTokenizer.hasParameter:()Z
            ifeq 7
         5: .line 710
            aload 1 /* tokenizer */
            invokevirtual org.apache.catalina.valves.ExtendedAccessLogValve$PatternTokenizer.getParameter:()Ljava/lang/String;
            pop
         6: .line 711
            new org.apache.catalina.valves.AbstractAccessLogValve$StringElement
            dup
            ldc "-"
            invokespecial org.apache.catalina.valves.AbstractAccessLogValve$StringElement.<init>:(Ljava/lang/String;)V
            areturn
         7: .line 713
      StackMap locals:
      StackMap stack:
            getstatic org.apache.catalina.valves.ExtendedAccessLogValve.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.valves.ExtendedAccessLogValve.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "extendedAccessLogValve.decodeError"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* token */
            aastore
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;)V
         8: .line 714
            aconst_null
            areturn
        end local 2 // java.lang.String token
        end local 1 // org.apache.catalina.valves.ExtendedAccessLogValve$PatternTokenizer tokenizer
        end local 0 // org.apache.catalina.valves.ExtendedAccessLogValve this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    9     0       this  Lorg/apache/catalina/valves/ExtendedAccessLogValve;
            0    9     1  tokenizer  Lorg/apache/catalina/valves/ExtendedAccessLogValve$PatternTokenizer;
            1    9     2      token  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      tokenizer  

  protected org.apache.catalina.valves.AbstractAccessLogValve$AccessLogElement getXParameterElement(org.apache.catalina.valves.ExtendedAccessLogValve$PatternTokenizer);
    descriptor: (Lorg/apache/catalina/valves/ExtendedAccessLogValve$PatternTokenizer;)Lorg/apache/catalina/valves/AbstractAccessLogValve$AccessLogElement;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=4, args_size=2
        start local 0 // org.apache.catalina.valves.ExtendedAccessLogValve this
        start local 1 // org.apache.catalina.valves.ExtendedAccessLogValve$PatternTokenizer tokenizer
         0: .line 719
            aload 1 /* tokenizer */
            invokevirtual org.apache.catalina.valves.ExtendedAccessLogValve$PatternTokenizer.hasSubToken:()Z
            ifne 3
         1: .line 720
            getstatic org.apache.catalina.valves.ExtendedAccessLogValve.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.valves.ExtendedAccessLogValve.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "extendedAccessLogValve.badXParam"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;)V
         2: .line 721
            aconst_null
            areturn
         3: .line 723
      StackMap locals:
      StackMap stack:
            aload 1 /* tokenizer */
            invokevirtual org.apache.catalina.valves.ExtendedAccessLogValve$PatternTokenizer.getToken:()Ljava/lang/String;
            astore 2 /* token */
        start local 2 // java.lang.String token
         4: .line 724
            ldc "threadname"
            aload 2 /* token */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 6
         5: .line 725
            new org.apache.catalina.valves.AbstractAccessLogValve$ThreadNameElement
            dup
            invokespecial org.apache.catalina.valves.AbstractAccessLogValve$ThreadNameElement.<init>:()V
            areturn
         6: .line 728
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* tokenizer */
            invokevirtual org.apache.catalina.valves.ExtendedAccessLogValve$PatternTokenizer.hasParameter:()Z
            ifne 9
         7: .line 729
            getstatic org.apache.catalina.valves.ExtendedAccessLogValve.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.valves.ExtendedAccessLogValve.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "extendedAccessLogValve.badXParam"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;)V
         8: .line 730
            aconst_null
            areturn
         9: .line 732
      StackMap locals:
      StackMap stack:
            aload 1 /* tokenizer */
            invokevirtual org.apache.catalina.valves.ExtendedAccessLogValve$PatternTokenizer.getParameter:()Ljava/lang/String;
            astore 3 /* parameter */
        start local 3 // java.lang.String parameter
        10: .line 733
            aload 3 /* parameter */
            ifnonnull 13
        11: .line 734
            getstatic org.apache.catalina.valves.ExtendedAccessLogValve.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.valves.ExtendedAccessLogValve.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "extendedAccessLogValve.noClosing"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;)V
        12: .line 735
            aconst_null
            areturn
        13: .line 737
      StackMap locals: java.lang.String
      StackMap stack:
            ldc "A"
            aload 2 /* token */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 15
        14: .line 738
            new org.apache.catalina.valves.ExtendedAccessLogValve$ServletContextElement
            dup
            aload 3 /* parameter */
            invokespecial org.apache.catalina.valves.ExtendedAccessLogValve$ServletContextElement.<init>:(Ljava/lang/String;)V
            areturn
        15: .line 739
      StackMap locals:
      StackMap stack:
            ldc "C"
            aload 2 /* token */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 17
        16: .line 740
            new org.apache.catalina.valves.ExtendedAccessLogValve$CookieElement
            dup
            aload 3 /* parameter */
            invokespecial org.apache.catalina.valves.ExtendedAccessLogValve$CookieElement.<init>:(Ljava/lang/String;)V
            areturn
        17: .line 741
      StackMap locals:
      StackMap stack:
            ldc "R"
            aload 2 /* token */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 19
        18: .line 742
            new org.apache.catalina.valves.ExtendedAccessLogValve$RequestAttributeElement
            dup
            aload 3 /* parameter */
            invokespecial org.apache.catalina.valves.ExtendedAccessLogValve$RequestAttributeElement.<init>:(Ljava/lang/String;)V
            areturn
        19: .line 743
      StackMap locals:
      StackMap stack:
            ldc "S"
            aload 2 /* token */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 21
        20: .line 744
            new org.apache.catalina.valves.ExtendedAccessLogValve$SessionAttributeElement
            dup
            aload 3 /* parameter */
            invokespecial org.apache.catalina.valves.ExtendedAccessLogValve$SessionAttributeElement.<init>:(Ljava/lang/String;)V
            areturn
        21: .line 745
      StackMap locals:
      StackMap stack:
            ldc "H"
            aload 2 /* token */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 23
        22: .line 746
            aload 0 /* this */
            aload 3 /* parameter */
            invokevirtual org.apache.catalina.valves.ExtendedAccessLogValve.getServletRequestElement:(Ljava/lang/String;)Lorg/apache/catalina/valves/AbstractAccessLogValve$AccessLogElement;
            areturn
        23: .line 747
      StackMap locals:
      StackMap stack:
            ldc "P"
            aload 2 /* token */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 25
        24: .line 748
            new org.apache.catalina.valves.ExtendedAccessLogValve$RequestParameterElement
            dup
            aload 3 /* parameter */
            invokespecial org.apache.catalina.valves.ExtendedAccessLogValve$RequestParameterElement.<init>:(Ljava/lang/String;)V
            areturn
        25: .line 749
      StackMap locals:
      StackMap stack:
            ldc "O"
            aload 2 /* token */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 27
        26: .line 750
            new org.apache.catalina.valves.ExtendedAccessLogValve$ResponseAllHeaderElement
            dup
            aload 3 /* parameter */
            invokespecial org.apache.catalina.valves.ExtendedAccessLogValve$ResponseAllHeaderElement.<init>:(Ljava/lang/String;)V
            areturn
        27: .line 752
      StackMap locals:
      StackMap stack:
            getstatic org.apache.catalina.valves.ExtendedAccessLogValve.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.valves.ExtendedAccessLogValve.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "extendedAccessLogValve.badXParamValue"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* token */
            aastore
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;)V
        28: .line 753
            aconst_null
            areturn
        end local 3 // java.lang.String parameter
        end local 2 // java.lang.String token
        end local 1 // org.apache.catalina.valves.ExtendedAccessLogValve$PatternTokenizer tokenizer
        end local 0 // org.apache.catalina.valves.ExtendedAccessLogValve this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   29     0       this  Lorg/apache/catalina/valves/ExtendedAccessLogValve;
            0   29     1  tokenizer  Lorg/apache/catalina/valves/ExtendedAccessLogValve$PatternTokenizer;
            4   29     2      token  Ljava/lang/String;
           10   29     3  parameter  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      tokenizer  

  protected org.apache.catalina.valves.AbstractAccessLogValve$AccessLogElement getServletRequestElement(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/apache/catalina/valves/AbstractAccessLogValve$AccessLogElement;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // org.apache.catalina.valves.ExtendedAccessLogValve this
        start local 1 // java.lang.String parameter
         0: .line 757
            ldc "authType"
            aload 1 /* parameter */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 758
            new org.apache.catalina.valves.ExtendedAccessLogValve$4
            dup
            aload 0 /* this */
            invokespecial org.apache.catalina.valves.ExtendedAccessLogValve$4.<init>:(Lorg/apache/catalina/valves/ExtendedAccessLogValve;)V
            areturn
         2: .line 765
      StackMap locals:
      StackMap stack:
            ldc "remoteUser"
            aload 1 /* parameter */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 766
            new org.apache.catalina.valves.ExtendedAccessLogValve$5
            dup
            aload 0 /* this */
            invokespecial org.apache.catalina.valves.ExtendedAccessLogValve$5.<init>:(Lorg/apache/catalina/valves/ExtendedAccessLogValve;)V
            areturn
         4: .line 773
      StackMap locals:
      StackMap stack:
            ldc "requestedSessionId"
            aload 1 /* parameter */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 6
         5: .line 774
            new org.apache.catalina.valves.ExtendedAccessLogValve$6
            dup
            aload 0 /* this */
            invokespecial org.apache.catalina.valves.ExtendedAccessLogValve$6.<init>:(Lorg/apache/catalina/valves/ExtendedAccessLogValve;)V
            areturn
         6: .line 781
      StackMap locals:
      StackMap stack:
            ldc "requestedSessionIdFromCookie"
            aload 1 /* parameter */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 8
         7: .line 782
            new org.apache.catalina.valves.ExtendedAccessLogValve$7
            dup
            aload 0 /* this */
            invokespecial org.apache.catalina.valves.ExtendedAccessLogValve$7.<init>:(Lorg/apache/catalina/valves/ExtendedAccessLogValve;)V
            areturn
         8: .line 790
      StackMap locals:
      StackMap stack:
            ldc "requestedSessionIdValid"
            aload 1 /* parameter */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 10
         9: .line 791
            new org.apache.catalina.valves.ExtendedAccessLogValve$8
            dup
            aload 0 /* this */
            invokespecial org.apache.catalina.valves.ExtendedAccessLogValve$8.<init>:(Lorg/apache/catalina/valves/ExtendedAccessLogValve;)V
            areturn
        10: .line 798
      StackMap locals:
      StackMap stack:
            ldc "contentLength"
            aload 1 /* parameter */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 12
        11: .line 799
            new org.apache.catalina.valves.ExtendedAccessLogValve$9
            dup
            aload 0 /* this */
            invokespecial org.apache.catalina.valves.ExtendedAccessLogValve$9.<init>:(Lorg/apache/catalina/valves/ExtendedAccessLogValve;)V
            areturn
        12: .line 806
      StackMap locals:
      StackMap stack:
            ldc "characterEncoding"
            aload 1 /* parameter */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 14
        13: .line 807
            new org.apache.catalina.valves.ExtendedAccessLogValve$10
            dup
            aload 0 /* this */
            invokespecial org.apache.catalina.valves.ExtendedAccessLogValve$10.<init>:(Lorg/apache/catalina/valves/ExtendedAccessLogValve;)V
            areturn
        14: .line 814
      StackMap locals:
      StackMap stack:
            ldc "locale"
            aload 1 /* parameter */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 16
        15: .line 815
            new org.apache.catalina.valves.ExtendedAccessLogValve$11
            dup
            aload 0 /* this */
            invokespecial org.apache.catalina.valves.ExtendedAccessLogValve$11.<init>:(Lorg/apache/catalina/valves/ExtendedAccessLogValve;)V
            areturn
        16: .line 822
      StackMap locals:
      StackMap stack:
            ldc "protocol"
            aload 1 /* parameter */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 18
        17: .line 823
            new org.apache.catalina.valves.ExtendedAccessLogValve$12
            dup
            aload 0 /* this */
            invokespecial org.apache.catalina.valves.ExtendedAccessLogValve$12.<init>:(Lorg/apache/catalina/valves/ExtendedAccessLogValve;)V
            areturn
        18: .line 830
      StackMap locals:
      StackMap stack:
            ldc "scheme"
            aload 1 /* parameter */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 20
        19: .line 831
            new org.apache.catalina.valves.ExtendedAccessLogValve$13
            dup
            aload 0 /* this */
            invokespecial org.apache.catalina.valves.ExtendedAccessLogValve$13.<init>:(Lorg/apache/catalina/valves/ExtendedAccessLogValve;)V
            areturn
        20: .line 838
      StackMap locals:
      StackMap stack:
            ldc "secure"
            aload 1 /* parameter */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 22
        21: .line 839
            new org.apache.catalina.valves.ExtendedAccessLogValve$14
            dup
            aload 0 /* this */
            invokespecial org.apache.catalina.valves.ExtendedAccessLogValve$14.<init>:(Lorg/apache/catalina/valves/ExtendedAccessLogValve;)V
            areturn
        22: .line 847
      StackMap locals:
      StackMap stack:
            getstatic org.apache.catalina.valves.ExtendedAccessLogValve.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.valves.ExtendedAccessLogValve.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "extendedAccessLogValve.badXParamValue"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* parameter */
            aastore
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;)V
        23: .line 848
            aconst_null
            areturn
        end local 1 // java.lang.String parameter
        end local 0 // org.apache.catalina.valves.ExtendedAccessLogValve this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   24     0       this  Lorg/apache/catalina/valves/ExtendedAccessLogValve;
            0   24     1  parameter  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      parameter  
}
SourceFile: "ExtendedAccessLogValve.java"
NestMembers:
  org.apache.catalina.valves.ExtendedAccessLogValve$1  org.apache.catalina.valves.ExtendedAccessLogValve$10  org.apache.catalina.valves.ExtendedAccessLogValve$11  org.apache.catalina.valves.ExtendedAccessLogValve$12  org.apache.catalina.valves.ExtendedAccessLogValve$13  org.apache.catalina.valves.ExtendedAccessLogValve$14  org.apache.catalina.valves.ExtendedAccessLogValve$2  org.apache.catalina.valves.ExtendedAccessLogValve$3  org.apache.catalina.valves.ExtendedAccessLogValve$4  org.apache.catalina.valves.ExtendedAccessLogValve$5  org.apache.catalina.valves.ExtendedAccessLogValve$6  org.apache.catalina.valves.ExtendedAccessLogValve$7  org.apache.catalina.valves.ExtendedAccessLogValve$8  org.apache.catalina.valves.ExtendedAccessLogValve$9  org.apache.catalina.valves.ExtendedAccessLogValve$CookieElement  org.apache.catalina.valves.ExtendedAccessLogValve$DateElement  org.apache.catalina.valves.ExtendedAccessLogValve$ElementTimestampStruct  org.apache.catalina.valves.ExtendedAccessLogValve$PatternTokenizer  org.apache.catalina.valves.ExtendedAccessLogValve$RequestAttributeElement  org.apache.catalina.valves.ExtendedAccessLogValve$RequestHeaderElement  org.apache.catalina.valves.ExtendedAccessLogValve$RequestParameterElement  org.apache.catalina.valves.ExtendedAccessLogValve$ResponseAllHeaderElement  org.apache.catalina.valves.ExtendedAccessLogValve$ResponseHeaderElement  org.apache.catalina.valves.ExtendedAccessLogValve$ServletContextElement  org.apache.catalina.valves.ExtendedAccessLogValve$SessionAttributeElement  org.apache.catalina.valves.ExtendedAccessLogValve$TimeElement
InnerClasses:
  protected abstract AccessLogElement = org.apache.catalina.valves.AbstractAccessLogValve$AccessLogElement of org.apache.catalina.valves.AbstractAccessLogValve
  protected ByteSentElement = org.apache.catalina.valves.AbstractAccessLogValve$ByteSentElement of org.apache.catalina.valves.AbstractAccessLogValve
  protected ElapsedTimeElement = org.apache.catalina.valves.AbstractAccessLogValve$ElapsedTimeElement of org.apache.catalina.valves.AbstractAccessLogValve
  protected HostElement = org.apache.catalina.valves.AbstractAccessLogValve$HostElement of org.apache.catalina.valves.AbstractAccessLogValve
  protected HttpStatusCodeElement = org.apache.catalina.valves.AbstractAccessLogValve$HttpStatusCodeElement of org.apache.catalina.valves.AbstractAccessLogValve
  protected LocalAddrElement = org.apache.catalina.valves.AbstractAccessLogValve$LocalAddrElement of org.apache.catalina.valves.AbstractAccessLogValve
  protected MethodElement = org.apache.catalina.valves.AbstractAccessLogValve$MethodElement of org.apache.catalina.valves.AbstractAccessLogValve
  protected RemoteAddrElement = org.apache.catalina.valves.AbstractAccessLogValve$RemoteAddrElement of org.apache.catalina.valves.AbstractAccessLogValve
  protected RequestURIElement = org.apache.catalina.valves.AbstractAccessLogValve$RequestURIElement of org.apache.catalina.valves.AbstractAccessLogValve
  protected StringElement = org.apache.catalina.valves.AbstractAccessLogValve$StringElement of org.apache.catalina.valves.AbstractAccessLogValve
  protected ThreadNameElement = org.apache.catalina.valves.AbstractAccessLogValve$ThreadNameElement of org.apache.catalina.valves.AbstractAccessLogValve
  org.apache.catalina.valves.ExtendedAccessLogValve$1
  org.apache.catalina.valves.ExtendedAccessLogValve$10
  org.apache.catalina.valves.ExtendedAccessLogValve$11
  org.apache.catalina.valves.ExtendedAccessLogValve$12
  org.apache.catalina.valves.ExtendedAccessLogValve$13
  org.apache.catalina.valves.ExtendedAccessLogValve$14
  org.apache.catalina.valves.ExtendedAccessLogValve$2
  org.apache.catalina.valves.ExtendedAccessLogValve$3
  org.apache.catalina.valves.ExtendedAccessLogValve$4
  org.apache.catalina.valves.ExtendedAccessLogValve$5
  org.apache.catalina.valves.ExtendedAccessLogValve$6
  org.apache.catalina.valves.ExtendedAccessLogValve$7
  org.apache.catalina.valves.ExtendedAccessLogValve$8
  org.apache.catalina.valves.ExtendedAccessLogValve$9
  protected CookieElement = org.apache.catalina.valves.ExtendedAccessLogValve$CookieElement of org.apache.catalina.valves.ExtendedAccessLogValve
  protected DateElement = org.apache.catalina.valves.ExtendedAccessLogValve$DateElement of org.apache.catalina.valves.ExtendedAccessLogValve
  private ElementTimestampStruct = org.apache.catalina.valves.ExtendedAccessLogValve$ElementTimestampStruct of org.apache.catalina.valves.ExtendedAccessLogValve
  protected PatternTokenizer = org.apache.catalina.valves.ExtendedAccessLogValve$PatternTokenizer of org.apache.catalina.valves.ExtendedAccessLogValve
  protected RequestAttributeElement = org.apache.catalina.valves.ExtendedAccessLogValve$RequestAttributeElement of org.apache.catalina.valves.ExtendedAccessLogValve
  protected RequestHeaderElement = org.apache.catalina.valves.ExtendedAccessLogValve$RequestHeaderElement of org.apache.catalina.valves.ExtendedAccessLogValve
  protected RequestParameterElement = org.apache.catalina.valves.ExtendedAccessLogValve$RequestParameterElement of org.apache.catalina.valves.ExtendedAccessLogValve
  protected ResponseAllHeaderElement = org.apache.catalina.valves.ExtendedAccessLogValve$ResponseAllHeaderElement of org.apache.catalina.valves.ExtendedAccessLogValve
  protected ResponseHeaderElement = org.apache.catalina.valves.ExtendedAccessLogValve$ResponseHeaderElement of org.apache.catalina.valves.ExtendedAccessLogValve
  protected ServletContextElement = org.apache.catalina.valves.ExtendedAccessLogValve$ServletContextElement of org.apache.catalina.valves.ExtendedAccessLogValve
  protected SessionAttributeElement = org.apache.catalina.valves.ExtendedAccessLogValve$SessionAttributeElement of org.apache.catalina.valves.ExtendedAccessLogValve
  protected TimeElement = org.apache.catalina.valves.ExtendedAccessLogValve$TimeElement of org.apache.catalina.valves.ExtendedAccessLogValve