public final class org.apache.catalina.util.Extension
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.apache.catalina.util.Extension
  super_class: java.lang.Object
{
  private java.lang.String extensionName;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String implementationURL;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String implementationVendor;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String implementationVendorId;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String implementationVersion;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String specificationVendor;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String specificationVersion;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private boolean fulfilled;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.catalina.util.Extension this
         0: .line 45
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 54
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.util.Extension.extensionName:Ljava/lang/String;
         2: .line 69
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.util.Extension.implementationURL:Ljava/lang/String;
         3: .line 84
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.util.Extension.implementationVendor:Ljava/lang/String;
         4: .line 99
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.util.Extension.implementationVendorId:Ljava/lang/String;
         5: .line 114
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.util.Extension.implementationVersion:Ljava/lang/String;
         6: .line 129
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.util.Extension.specificationVendor:Ljava/lang/String;
         7: .line 144
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.util.Extension.specificationVersion:Ljava/lang/String;
         8: .line 159
            aload 0 /* this */
            iconst_0
            putfield org.apache.catalina.util.Extension.fulfilled:Z
         9: .line 45
            return
        end local 0 // org.apache.catalina.util.Extension this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lorg/apache/catalina/util/Extension;

  public java.lang.String getExtensionName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.util.Extension this
         0: .line 58
            aload 0 /* this */
            getfield org.apache.catalina.util.Extension.extensionName:Ljava/lang/String;
            areturn
        end local 0 // org.apache.catalina.util.Extension this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/util/Extension;

  public void setExtensionName(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.catalina.util.Extension this
        start local 1 // java.lang.String extensionName
         0: .line 62
            aload 0 /* this */
            aload 1 /* extensionName */
            putfield org.apache.catalina.util.Extension.extensionName:Ljava/lang/String;
         1: .line 63
            return
        end local 1 // java.lang.String extensionName
        end local 0 // org.apache.catalina.util.Extension this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lorg/apache/catalina/util/Extension;
            0    2     1  extensionName  Ljava/lang/String;
    MethodParameters:
               Name  Flags
      extensionName  

  public java.lang.String getImplementationURL();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.util.Extension this
         0: .line 72
            aload 0 /* this */
            getfield org.apache.catalina.util.Extension.implementationURL:Ljava/lang/String;
            areturn
        end local 0 // org.apache.catalina.util.Extension this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/util/Extension;

  public void setImplementationURL(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.catalina.util.Extension this
        start local 1 // java.lang.String implementationURL
         0: .line 76
            aload 0 /* this */
            aload 1 /* implementationURL */
            putfield org.apache.catalina.util.Extension.implementationURL:Ljava/lang/String;
         1: .line 77
            return
        end local 1 // java.lang.String implementationURL
        end local 0 // org.apache.catalina.util.Extension this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    2     0               this  Lorg/apache/catalina/util/Extension;
            0    2     1  implementationURL  Ljava/lang/String;
    MethodParameters:
                   Name  Flags
      implementationURL  

  public java.lang.String getImplementationVendor();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.util.Extension this
         0: .line 87
            aload 0 /* this */
            getfield org.apache.catalina.util.Extension.implementationVendor:Ljava/lang/String;
            areturn
        end local 0 // org.apache.catalina.util.Extension this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/util/Extension;

  public void setImplementationVendor(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.catalina.util.Extension this
        start local 1 // java.lang.String implementationVendor
         0: .line 91
            aload 0 /* this */
            aload 1 /* implementationVendor */
            putfield org.apache.catalina.util.Extension.implementationVendor:Ljava/lang/String;
         1: .line 92
            return
        end local 1 // java.lang.String implementationVendor
        end local 0 // org.apache.catalina.util.Extension this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    2     0                  this  Lorg/apache/catalina/util/Extension;
            0    2     1  implementationVendor  Ljava/lang/String;
    MethodParameters:
                      Name  Flags
      implementationVendor  

  public java.lang.String getImplementationVendorId();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.util.Extension this
         0: .line 102
            aload 0 /* this */
            getfield org.apache.catalina.util.Extension.implementationVendorId:Ljava/lang/String;
            areturn
        end local 0 // org.apache.catalina.util.Extension this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/util/Extension;

  public void setImplementationVendorId(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.catalina.util.Extension this
        start local 1 // java.lang.String implementationVendorId
         0: .line 106
            aload 0 /* this */
            aload 1 /* implementationVendorId */
            putfield org.apache.catalina.util.Extension.implementationVendorId:Ljava/lang/String;
         1: .line 107
            return
        end local 1 // java.lang.String implementationVendorId
        end local 0 // org.apache.catalina.util.Extension this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    2     0                    this  Lorg/apache/catalina/util/Extension;
            0    2     1  implementationVendorId  Ljava/lang/String;
    MethodParameters:
                        Name  Flags
      implementationVendorId  

  public java.lang.String getImplementationVersion();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.util.Extension this
         0: .line 117
            aload 0 /* this */
            getfield org.apache.catalina.util.Extension.implementationVersion:Ljava/lang/String;
            areturn
        end local 0 // org.apache.catalina.util.Extension this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/util/Extension;

  public void setImplementationVersion(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.catalina.util.Extension this
        start local 1 // java.lang.String implementationVersion
         0: .line 121
            aload 0 /* this */
            aload 1 /* implementationVersion */
            putfield org.apache.catalina.util.Extension.implementationVersion:Ljava/lang/String;
         1: .line 122
            return
        end local 1 // java.lang.String implementationVersion
        end local 0 // org.apache.catalina.util.Extension this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    2     0                   this  Lorg/apache/catalina/util/Extension;
            0    2     1  implementationVersion  Ljava/lang/String;
    MethodParameters:
                       Name  Flags
      implementationVersion  

  public java.lang.String getSpecificationVendor();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.util.Extension this
         0: .line 132
            aload 0 /* this */
            getfield org.apache.catalina.util.Extension.specificationVendor:Ljava/lang/String;
            areturn
        end local 0 // org.apache.catalina.util.Extension this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/util/Extension;

  public void setSpecificationVendor(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.catalina.util.Extension this
        start local 1 // java.lang.String specificationVendor
         0: .line 136
            aload 0 /* this */
            aload 1 /* specificationVendor */
            putfield org.apache.catalina.util.Extension.specificationVendor:Ljava/lang/String;
         1: .line 137
            return
        end local 1 // java.lang.String specificationVendor
        end local 0 // org.apache.catalina.util.Extension this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    2     0                 this  Lorg/apache/catalina/util/Extension;
            0    2     1  specificationVendor  Ljava/lang/String;
    MethodParameters:
                     Name  Flags
      specificationVendor  

  public java.lang.String getSpecificationVersion();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.util.Extension this
         0: .line 147
            aload 0 /* this */
            getfield org.apache.catalina.util.Extension.specificationVersion:Ljava/lang/String;
            areturn
        end local 0 // org.apache.catalina.util.Extension this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/util/Extension;

  public void setSpecificationVersion(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.catalina.util.Extension this
        start local 1 // java.lang.String specificationVersion
         0: .line 151
            aload 0 /* this */
            aload 1 /* specificationVersion */
            putfield org.apache.catalina.util.Extension.specificationVersion:Ljava/lang/String;
         1: .line 152
            return
        end local 1 // java.lang.String specificationVersion
        end local 0 // org.apache.catalina.util.Extension this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    2     0                  this  Lorg/apache/catalina/util/Extension;
            0    2     1  specificationVersion  Ljava/lang/String;
    MethodParameters:
                      Name  Flags
      specificationVersion  

  public void setFulfilled(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.catalina.util.Extension this
        start local 1 // boolean fulfilled
         0: .line 162
            aload 0 /* this */
            iload 1 /* fulfilled */
            putfield org.apache.catalina.util.Extension.fulfilled:Z
         1: .line 163
            return
        end local 1 // boolean fulfilled
        end local 0 // org.apache.catalina.util.Extension this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lorg/apache/catalina/util/Extension;
            0    2     1  fulfilled  Z
    MethodParameters:
           Name  Flags
      fulfilled  

  public boolean isFulfilled();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.util.Extension this
         0: .line 166
            aload 0 /* this */
            getfield org.apache.catalina.util.Extension.fulfilled:Z
            ireturn
        end local 0 // org.apache.catalina.util.Extension this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/util/Extension;

  public boolean isCompatibleWith(org.apache.catalina.util.Extension);
    descriptor: (Lorg/apache/catalina/util/Extension;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.catalina.util.Extension this
        start local 1 // org.apache.catalina.util.Extension required
         0: .line 184
            aload 0 /* this */
            getfield org.apache.catalina.util.Extension.extensionName:Ljava/lang/String;
            ifnonnull 2
         1: .line 185
            iconst_0
            ireturn
         2: .line 186
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.util.Extension.extensionName:Ljava/lang/String;
            aload 1 /* required */
            invokevirtual org.apache.catalina.util.Extension.getExtensionName:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 4
         3: .line 187
            iconst_0
            ireturn
         4: .line 190
      StackMap locals:
      StackMap stack:
            aload 1 /* required */
            invokevirtual org.apache.catalina.util.Extension.getSpecificationVersion:()Ljava/lang/String;
            ifnull 10
         5: .line 191
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.catalina.util.Extension.specificationVersion:Ljava/lang/String;
         6: .line 192
            aload 1 /* required */
            invokevirtual org.apache.catalina.util.Extension.getSpecificationVersion:()Ljava/lang/String;
         7: .line 191
            invokevirtual org.apache.catalina.util.Extension.isNewer:(Ljava/lang/String;Ljava/lang/String;)Z
         8: .line 192
            ifne 10
         9: .line 193
            iconst_0
            ireturn
        10: .line 197
      StackMap locals:
      StackMap stack:
            aload 1 /* required */
            invokevirtual org.apache.catalina.util.Extension.getImplementationVendorId:()Ljava/lang/String;
            ifnull 18
        11: .line 198
            aload 0 /* this */
            getfield org.apache.catalina.util.Extension.implementationVendorId:Ljava/lang/String;
            ifnonnull 13
        12: .line 199
            iconst_0
            ireturn
        13: .line 200
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.util.Extension.implementationVendorId:Ljava/lang/String;
            aload 1 /* required */
        14: .line 201
            invokevirtual org.apache.catalina.util.Extension.getImplementationVendorId:()Ljava/lang/String;
        15: .line 200
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
        16: .line 201
            ifne 18
        17: .line 202
            iconst_0
            ireturn
        18: .line 206
      StackMap locals:
      StackMap stack:
            aload 1 /* required */
            invokevirtual org.apache.catalina.util.Extension.getImplementationVersion:()Ljava/lang/String;
            ifnull 24
        19: .line 207
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.catalina.util.Extension.implementationVersion:Ljava/lang/String;
        20: .line 208
            aload 1 /* required */
            invokevirtual org.apache.catalina.util.Extension.getImplementationVersion:()Ljava/lang/String;
        21: .line 207
            invokevirtual org.apache.catalina.util.Extension.isNewer:(Ljava/lang/String;Ljava/lang/String;)Z
        22: .line 208
            ifne 24
        23: .line 209
            iconst_0
            ireturn
        24: .line 213
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 1 // org.apache.catalina.util.Extension required
        end local 0 // org.apache.catalina.util.Extension this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   25     0      this  Lorg/apache/catalina/util/Extension;
            0   25     1  required  Lorg/apache/catalina/util/Extension;
    MethodParameters:
          Name  Flags
      required  

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.apache.catalina.util.Extension this
         0: .line 219
            new java.lang.StringBuilder
            dup
            ldc "Extension["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 1 /* sb */
        start local 1 // java.lang.StringBuilder sb
         1: .line 220
            aload 1 /* sb */
            aload 0 /* this */
            getfield org.apache.catalina.util.Extension.extensionName:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 221
            aload 0 /* this */
            getfield org.apache.catalina.util.Extension.implementationURL:Ljava/lang/String;
            ifnull 5
         3: .line 222
            aload 1 /* sb */
            ldc ", implementationURL="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         4: .line 223
            aload 1 /* sb */
            aload 0 /* this */
            getfield org.apache.catalina.util.Extension.implementationURL:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         5: .line 225
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.util.Extension.implementationVendor:Ljava/lang/String;
            ifnull 8
         6: .line 226
            aload 1 /* sb */
            ldc ", implementationVendor="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         7: .line 227
            aload 1 /* sb */
            aload 0 /* this */
            getfield org.apache.catalina.util.Extension.implementationVendor:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         8: .line 229
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.util.Extension.implementationVendorId:Ljava/lang/String;
            ifnull 11
         9: .line 230
            aload 1 /* sb */
            ldc ", implementationVendorId="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        10: .line 231
            aload 1 /* sb */
            aload 0 /* this */
            getfield org.apache.catalina.util.Extension.implementationVendorId:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        11: .line 233
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.util.Extension.implementationVersion:Ljava/lang/String;
            ifnull 14
        12: .line 234
            aload 1 /* sb */
            ldc ", implementationVersion="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        13: .line 235
            aload 1 /* sb */
            aload 0 /* this */
            getfield org.apache.catalina.util.Extension.implementationVersion:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        14: .line 237
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.util.Extension.specificationVendor:Ljava/lang/String;
            ifnull 17
        15: .line 238
            aload 1 /* sb */
            ldc ", specificationVendor="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        16: .line 239
            aload 1 /* sb */
            aload 0 /* this */
            getfield org.apache.catalina.util.Extension.specificationVendor:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        17: .line 241
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.util.Extension.specificationVersion:Ljava/lang/String;
            ifnull 20
        18: .line 242
            aload 1 /* sb */
            ldc ", specificationVersion="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        19: .line 243
            aload 1 /* sb */
            aload 0 /* this */
            getfield org.apache.catalina.util.Extension.specificationVersion:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        20: .line 245
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            bipush 93
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        21: .line 246
            aload 1 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuilder sb
        end local 0 // org.apache.catalina.util.Extension this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   22     0  this  Lorg/apache/catalina/util/Extension;
            1   22     1    sb  Ljava/lang/StringBuilder;

  private boolean isNewer(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=7, args_size=3
        start local 0 // org.apache.catalina.util.Extension this
        start local 1 // java.lang.String first
        start local 2 // java.lang.String second
         0: .line 266
            aload 1 /* first */
            ifnull 1
            aload 2 /* second */
            ifnonnull 2
         1: .line 267
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         2: .line 268
      StackMap locals:
      StackMap stack:
            aload 1 /* first */
            aload 2 /* second */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 269
            iconst_1
            ireturn
         4: .line 271
      StackMap locals:
      StackMap stack:
            new java.util.StringTokenizer
            dup
            aload 1 /* first */
            ldc "."
            iconst_1
            invokespecial java.util.StringTokenizer.<init>:(Ljava/lang/String;Ljava/lang/String;Z)V
            astore 3 /* fTok */
        start local 3 // java.util.StringTokenizer fTok
         5: .line 272
            new java.util.StringTokenizer
            dup
            aload 2 /* second */
            ldc "."
            iconst_1
            invokespecial java.util.StringTokenizer.<init>:(Ljava/lang/String;Ljava/lang/String;Z)V
            astore 4 /* sTok */
        start local 4 // java.util.StringTokenizer sTok
         6: .line 273
            iconst_0
            istore 5 /* fVersion */
        start local 5 // int fVersion
         7: .line 274
            iconst_0
            istore 6 /* sVersion */
        start local 6 // int sVersion
         8: .line 275
            goto 23
         9: .line 276
      StackMap locals: org.apache.catalina.util.Extension java.lang.String java.lang.String java.util.StringTokenizer java.util.StringTokenizer int int
      StackMap stack:
            aload 3 /* fTok */
            invokevirtual java.util.StringTokenizer.hasMoreTokens:()Z
            ifeq 11
        10: .line 277
            aload 3 /* fTok */
            invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            istore 5 /* fVersion */
            goto 12
        11: .line 279
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 5 /* fVersion */
        12: .line 280
      StackMap locals:
      StackMap stack:
            aload 4 /* sTok */
            invokevirtual java.util.StringTokenizer.hasMoreTokens:()Z
            ifeq 14
        13: .line 281
            aload 4 /* sTok */
            invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            istore 6 /* sVersion */
            goto 15
        14: .line 283
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 6 /* sVersion */
        15: .line 284
      StackMap locals:
      StackMap stack:
            iload 5 /* fVersion */
            iload 6 /* sVersion */
            if_icmpge 17
        16: .line 285
            iconst_0
            ireturn
        17: .line 286
      StackMap locals:
      StackMap stack:
            iload 5 /* fVersion */
            iload 6 /* sVersion */
            if_icmple 19
        18: .line 287
            iconst_1
            ireturn
        19: .line 288
      StackMap locals:
      StackMap stack:
            aload 3 /* fTok */
            invokevirtual java.util.StringTokenizer.hasMoreTokens:()Z
            ifeq 21
        20: .line 289
            aload 3 /* fTok */
            invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
            pop
        21: .line 290
      StackMap locals:
      StackMap stack:
            aload 4 /* sTok */
            invokevirtual java.util.StringTokenizer.hasMoreTokens:()Z
            ifeq 23
        22: .line 291
            aload 4 /* sTok */
            invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
            pop
        23: .line 275
      StackMap locals:
      StackMap stack:
            aload 3 /* fTok */
            invokevirtual java.util.StringTokenizer.hasMoreTokens:()Z
            ifne 9
            aload 4 /* sTok */
            invokevirtual java.util.StringTokenizer.hasMoreTokens:()Z
            ifne 9
        24: .line 294
            iconst_1
            ireturn
        end local 6 // int sVersion
        end local 5 // int fVersion
        end local 4 // java.util.StringTokenizer sTok
        end local 3 // java.util.StringTokenizer fTok
        end local 2 // java.lang.String second
        end local 1 // java.lang.String first
        end local 0 // org.apache.catalina.util.Extension this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   25     0      this  Lorg/apache/catalina/util/Extension;
            0   25     1     first  Ljava/lang/String;
            0   25     2    second  Ljava/lang/String;
            5   25     3      fTok  Ljava/util/StringTokenizer;
            6   25     4      sTok  Ljava/util/StringTokenizer;
            7   25     5  fVersion  I
            8   25     6  sVersion  I
    Exceptions:
      throws java.lang.NumberFormatException
    MethodParameters:
        Name  Flags
      first   
      second  
}
SourceFile: "Extension.java"