public class org.apache.catalina.startup.Catalina
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.catalina.startup.Catalina
  super_class: java.lang.Object
{
  protected static final org.apache.tomcat.util.res.StringManager sm;
    descriptor: Lorg/apache/tomcat/util/res/StringManager;
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL

  public static final java.lang.String SERVER_XML;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "conf/server.xml"

  protected boolean await;
    descriptor: Z
    flags: (0x0004) ACC_PROTECTED

  protected java.lang.String configFile;
    descriptor: Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED

  protected java.lang.ClassLoader parentClassLoader;
    descriptor: Ljava/lang/ClassLoader;
    flags: (0x0004) ACC_PROTECTED

  protected org.apache.catalina.Server server;
    descriptor: Lorg/apache/catalina/Server;
    flags: (0x0004) ACC_PROTECTED

  protected boolean useShutdownHook;
    descriptor: Z
    flags: (0x0004) ACC_PROTECTED

  protected java.lang.Thread shutdownHook;
    descriptor: Ljava/lang/Thread;
    flags: (0x0004) ACC_PROTECTED

  protected boolean useNaming;
    descriptor: Z
    flags: (0x0004) ACC_PROTECTED

  protected boolean loaded;
    descriptor: Z
    flags: (0x0004) ACC_PROTECTED

  private static final org.apache.juli.logging.Log log;
    descriptor: Lorg/apache/juli/logging/Log;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 81
            ldc "org.apache.catalina.startup"
            invokestatic org.apache.tomcat.util.res.StringManager.getManager:(Ljava/lang/String;)Lorg/apache/tomcat/util/res/StringManager;
         1: .line 80
            putstatic org.apache.catalina.startup.Catalina.sm:Lorg/apache/tomcat/util/res/StringManager;
         2: .line 820
            ldc Lorg/apache/catalina/startup/Catalina;
            invokestatic org.apache.juli.logging.LogFactory.getLog:(Ljava/lang/Class;)Lorg/apache/juli/logging/Log;
            putstatic org.apache.catalina.startup.Catalina.log:Lorg/apache/juli/logging/Log;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.catalina.startup.Catalina this
         0: .line 137
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 90
            aload 0 /* this */
            iconst_0
            putfield org.apache.catalina.startup.Catalina.await:Z
         2: .line 95
            aload 0 /* this */
            ldc "conf/server.xml"
            putfield org.apache.catalina.startup.Catalina.configFile:Ljava/lang/String;
         3: .line 101
            aload 0 /* this */
         4: .line 102
            ldc Lorg/apache/catalina/startup/Catalina;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            putfield org.apache.catalina.startup.Catalina.parentClassLoader:Ljava/lang/ClassLoader;
         5: .line 108
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.startup.Catalina.server:Lorg/apache/catalina/Server;
         6: .line 114
            aload 0 /* this */
            iconst_1
            putfield org.apache.catalina.startup.Catalina.useShutdownHook:Z
         7: .line 120
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.startup.Catalina.shutdownHook:Ljava/lang/Thread;
         8: .line 126
            aload 0 /* this */
            iconst_1
            putfield org.apache.catalina.startup.Catalina.useNaming:Z
         9: .line 132
            aload 0 /* this */
            iconst_0
            putfield org.apache.catalina.startup.Catalina.loaded:Z
        10: .line 138
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.Catalina.setSecurityProtection:()V
        11: .line 139
            invokestatic org.apache.tomcat.util.ExceptionUtils.preload:()V
        12: .line 140
            return
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Lorg/apache/catalina/startup/Catalina;

  public void setConfigFile(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.startup.Catalina this
        start local 1 // java.lang.String file
         0: .line 146
            aload 0 /* this */
            aload 1 /* file */
            putfield org.apache.catalina.startup.Catalina.configFile:Ljava/lang/String;
         1: .line 147
            return
        end local 1 // java.lang.String file
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/catalina/startup/Catalina;
            0    2     1  file  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      file  

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

  public void setUseShutdownHook(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.catalina.startup.Catalina this
        start local 1 // boolean useShutdownHook
         0: .line 156
            aload 0 /* this */
            iload 1 /* useShutdownHook */
            putfield org.apache.catalina.startup.Catalina.useShutdownHook:Z
         1: .line 157
            return
        end local 1 // boolean useShutdownHook
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lorg/apache/catalina/startup/Catalina;
            0    2     1  useShutdownHook  Z
    MethodParameters:
                 Name  Flags
      useShutdownHook  

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

  public void setParentClassLoader(java.lang.ClassLoader);
    descriptor: (Ljava/lang/ClassLoader;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.catalina.startup.Catalina this
        start local 1 // java.lang.ClassLoader parentClassLoader
         0: .line 171
            aload 0 /* this */
            aload 1 /* parentClassLoader */
            putfield org.apache.catalina.startup.Catalina.parentClassLoader:Ljava/lang/ClassLoader;
         1: .line 172
            return
        end local 1 // java.lang.ClassLoader parentClassLoader
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    2     0               this  Lorg/apache/catalina/startup/Catalina;
            0    2     1  parentClassLoader  Ljava/lang/ClassLoader;
    MethodParameters:
                   Name  Flags
      parentClassLoader  

  public java.lang.ClassLoader getParentClassLoader();
    descriptor: ()Ljava/lang/ClassLoader;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.startup.Catalina this
         0: .line 175
            aload 0 /* this */
            getfield org.apache.catalina.startup.Catalina.parentClassLoader:Ljava/lang/ClassLoader;
            ifnull 2
         1: .line 176
            aload 0 /* this */
            getfield org.apache.catalina.startup.Catalina.parentClassLoader:Ljava/lang/ClassLoader;
            areturn
         2: .line 178
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.ClassLoader.getSystemClassLoader:()Ljava/lang/ClassLoader;
            areturn
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/catalina/startup/Catalina;

  public void setServer(org.apache.catalina.Server);
    descriptor: (Lorg/apache/catalina/Server;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.catalina.startup.Catalina this
        start local 1 // org.apache.catalina.Server server
         0: .line 182
            aload 0 /* this */
            aload 1 /* server */
            putfield org.apache.catalina.startup.Catalina.server:Lorg/apache/catalina/Server;
         1: .line 183
            return
        end local 1 // org.apache.catalina.Server server
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/apache/catalina/startup/Catalina;
            0    2     1  server  Lorg/apache/catalina/Server;
    MethodParameters:
        Name  Flags
      server  

  public org.apache.catalina.Server getServer();
    descriptor: ()Lorg/apache/catalina/Server;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.startup.Catalina this
         0: .line 187
            aload 0 /* this */
            getfield org.apache.catalina.startup.Catalina.server:Lorg/apache/catalina/Server;
            areturn
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/startup/Catalina;

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

  public void setUseNaming(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.catalina.startup.Catalina this
        start local 1 // boolean useNaming
         0: .line 205
            aload 0 /* this */
            iload 1 /* useNaming */
            putfield org.apache.catalina.startup.Catalina.useNaming:Z
         1: .line 206
            return
        end local 1 // boolean useNaming
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lorg/apache/catalina/startup/Catalina;
            0    2     1  useNaming  Z
    MethodParameters:
           Name  Flags
      useNaming  

  public void setAwait(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.catalina.startup.Catalina this
        start local 1 // boolean b
         0: .line 209
            aload 0 /* this */
            iload 1 /* b */
            putfield org.apache.catalina.startup.Catalina.await:Z
         1: .line 210
            return
        end local 1 // boolean b
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/catalina/startup/Catalina;
            0    2     1     b  Z
    MethodParameters:
      Name  Flags
      b     

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

  protected boolean arguments(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.apache.catalina.startup.Catalina this
        start local 1 // java.lang.String[] args
         0: .line 227
            iconst_0
            istore 2 /* isConfig */
        start local 2 // boolean isConfig
         1: .line 229
            aload 1 /* args */
            arraylength
            iconst_1
            if_icmpge 4
         2: .line 230
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.Catalina.usage:()V
         3: .line 231
            iconst_0
            ireturn
         4: .line 234
      StackMap locals: int
      StackMap stack:
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         5: goto 25
         6: .line 235
      StackMap locals: int
      StackMap stack:
            iload 2 /* isConfig */
            ifeq 10
         7: .line 236
            aload 0 /* this */
            aload 1 /* args */
            iload 3 /* i */
            aaload
            putfield org.apache.catalina.startup.Catalina.configFile:Ljava/lang/String;
         8: .line 237
            iconst_0
            istore 2 /* isConfig */
         9: .line 238
            goto 24
      StackMap locals:
      StackMap stack:
        10: aload 1 /* args */
            iload 3 /* i */
            aaload
            ldc "-config"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 13
        11: .line 239
            iconst_1
            istore 2 /* isConfig */
        12: .line 240
            goto 24
      StackMap locals:
      StackMap stack:
        13: aload 1 /* args */
            iload 3 /* i */
            aaload
            ldc "-nonaming"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 16
        14: .line 241
            aload 0 /* this */
            iconst_0
            invokevirtual org.apache.catalina.startup.Catalina.setUseNaming:(Z)V
        15: .line 242
            goto 24
      StackMap locals:
      StackMap stack:
        16: aload 1 /* args */
            iload 3 /* i */
            aaload
            ldc "-help"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 19
        17: .line 243
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.Catalina.usage:()V
        18: .line 244
            iconst_0
            ireturn
        19: .line 245
      StackMap locals:
      StackMap stack:
            aload 1 /* args */
            iload 3 /* i */
            aaload
            ldc "start"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 24
        20: .line 247
            aload 1 /* args */
            iload 3 /* i */
            aaload
            ldc "configtest"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 24
        21: .line 249
            aload 1 /* args */
            iload 3 /* i */
            aaload
            ldc "stop"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 24
        22: .line 252
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.Catalina.usage:()V
        23: .line 253
            iconst_0
            ireturn
        24: .line 234
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        25: iload 3 /* i */
            aload 1 /* args */
            arraylength
            if_icmplt 6
        end local 3 // int i
        26: .line 257
            iconst_1
            ireturn
        end local 2 // boolean isConfig
        end local 1 // java.lang.String[] args
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   27     0      this  Lorg/apache/catalina/startup/Catalina;
            0   27     1      args  [Ljava/lang/String;
            1   27     2  isConfig  Z
            5   26     3         i  I
    MethodParameters:
      Name  Flags
      args  

  protected java.io.File configFile();
    descriptor: ()Ljava/io/File;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // org.apache.catalina.startup.Catalina this
         0: .line 267
            new java.io.File
            dup
            aload 0 /* this */
            getfield org.apache.catalina.startup.Catalina.configFile:Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 1 /* file */
        start local 1 // java.io.File file
         1: .line 268
            aload 1 /* file */
            invokevirtual java.io.File.isAbsolute:()Z
            ifne 3
         2: .line 269
            new java.io.File
            dup
            invokestatic org.apache.catalina.startup.Bootstrap.getCatalinaBase:()Ljava/lang/String;
            aload 0 /* this */
            getfield org.apache.catalina.startup.Catalina.configFile:Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            astore 1 /* file */
         3: .line 271
      StackMap locals: java.io.File
      StackMap stack:
            aload 1 /* file */
            areturn
        end local 1 // java.io.File file
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/apache/catalina/startup/Catalina;
            1    4     1  file  Ljava/io/File;

  protected org.apache.tomcat.util.digester.Digester createStartDigester();
    descriptor: ()Lorg/apache/tomcat/util/digester/Digester;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=8, locals=10, args_size=1
        start local 0 // org.apache.catalina.startup.Catalina this
         0: .line 281
            invokestatic java.lang.System.currentTimeMillis:()J
            lstore 1 /* t1 */
        start local 1 // long t1
         1: .line 283
            new org.apache.tomcat.util.digester.Digester
            dup
            invokespecial org.apache.tomcat.util.digester.Digester.<init>:()V
            astore 3 /* digester */
        start local 3 // org.apache.tomcat.util.digester.Digester digester
         2: .line 284
            aload 3 /* digester */
            iconst_0
            invokevirtual org.apache.tomcat.util.digester.Digester.setValidating:(Z)V
         3: .line 285
            aload 3 /* digester */
            iconst_1
            invokevirtual org.apache.tomcat.util.digester.Digester.setRulesValidation:(Z)V
         4: .line 286
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 4 /* fakeAttributes */
        start local 4 // java.util.Map fakeAttributes
         5: .line 288
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 5 /* objectAttrs */
        start local 5 // java.util.List objectAttrs
         6: .line 289
            aload 5 /* objectAttrs */
            ldc "className"
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         7: .line 290
            aload 4 /* fakeAttributes */
            ldc Ljava/lang/Object;
            aload 5 /* objectAttrs */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         8: .line 292
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 6 /* contextAttrs */
        start local 6 // java.util.List contextAttrs
         9: .line 293
            aload 6 /* contextAttrs */
            ldc "source"
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        10: .line 294
            aload 4 /* fakeAttributes */
            ldc Lorg/apache/catalina/core/StandardContext;
            aload 6 /* contextAttrs */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        11: .line 296
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 7 /* connectorAttrs */
        start local 7 // java.util.List connectorAttrs
        12: .line 297
            aload 7 /* connectorAttrs */
            ldc "portOffset"
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        13: .line 298
            aload 4 /* fakeAttributes */
            ldc Lorg/apache/catalina/connector/Connector;
            aload 7 /* connectorAttrs */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        14: .line 299
            aload 3 /* digester */
            aload 4 /* fakeAttributes */
            invokevirtual org.apache.tomcat.util.digester.Digester.setFakeAttributes:(Ljava/util/Map;)V
        15: .line 300
            aload 3 /* digester */
            iconst_1
            invokevirtual org.apache.tomcat.util.digester.Digester.setUseContextClassLoader:(Z)V
        16: .line 303
            aload 3 /* digester */
            ldc "Server"
        17: .line 304
            ldc "org.apache.catalina.core.StandardServer"
        18: .line 305
            ldc "className"
        19: .line 303
            invokevirtual org.apache.tomcat.util.digester.Digester.addObjectCreate:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
        20: .line 306
            aload 3 /* digester */
            ldc "Server"
            invokevirtual org.apache.tomcat.util.digester.Digester.addSetProperties:(Ljava/lang/String;)V
        21: .line 307
            aload 3 /* digester */
            ldc "Server"
        22: .line 308
            ldc "setServer"
        23: .line 309
            ldc "org.apache.catalina.Server"
        24: .line 307
            invokevirtual org.apache.tomcat.util.digester.Digester.addSetNext:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
        25: .line 311
            aload 3 /* digester */
            ldc "Server/GlobalNamingResources"
        26: .line 312
            ldc "org.apache.catalina.deploy.NamingResourcesImpl"
        27: .line 311
            invokevirtual org.apache.tomcat.util.digester.Digester.addObjectCreate:(Ljava/lang/String;Ljava/lang/String;)V
        28: .line 313
            aload 3 /* digester */
            ldc "Server/GlobalNamingResources"
            invokevirtual org.apache.tomcat.util.digester.Digester.addSetProperties:(Ljava/lang/String;)V
        29: .line 314
            aload 3 /* digester */
            ldc "Server/GlobalNamingResources"
        30: .line 315
            ldc "setGlobalNamingResources"
        31: .line 316
            ldc "org.apache.catalina.deploy.NamingResourcesImpl"
        32: .line 314
            invokevirtual org.apache.tomcat.util.digester.Digester.addSetNext:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
        33: .line 318
            aload 3 /* digester */
            ldc "Server/Listener"
        34: .line 319
            new org.apache.catalina.startup.ListenerCreateRule
            dup
            aconst_null
            ldc "className"
            invokespecial org.apache.catalina.startup.ListenerCreateRule.<init>:(Ljava/lang/String;Ljava/lang/String;)V
        35: .line 318
            invokevirtual org.apache.tomcat.util.digester.Digester.addRule:(Ljava/lang/String;Lorg/apache/tomcat/util/digester/Rule;)V
        36: .line 320
            aload 3 /* digester */
            ldc "Server/Listener"
            invokevirtual org.apache.tomcat.util.digester.Digester.addSetProperties:(Ljava/lang/String;)V
        37: .line 321
            aload 3 /* digester */
            ldc "Server/Listener"
        38: .line 322
            ldc "addLifecycleListener"
        39: .line 323
            ldc "org.apache.catalina.LifecycleListener"
        40: .line 321
            invokevirtual org.apache.tomcat.util.digester.Digester.addSetNext:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
        41: .line 325
            aload 3 /* digester */
            ldc "Server/Service"
        42: .line 326
            ldc "org.apache.catalina.core.StandardService"
        43: .line 327
            ldc "className"
        44: .line 325
            invokevirtual org.apache.tomcat.util.digester.Digester.addObjectCreate:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
        45: .line 328
            aload 3 /* digester */
            ldc "Server/Service"
            invokevirtual org.apache.tomcat.util.digester.Digester.addSetProperties:(Ljava/lang/String;)V
        46: .line 329
            aload 3 /* digester */
            ldc "Server/Service"
        47: .line 330
            ldc "addService"
        48: .line 331
            ldc "org.apache.catalina.Service"
        49: .line 329
            invokevirtual org.apache.tomcat.util.digester.Digester.addSetNext:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
        50: .line 333
            aload 3 /* digester */
            ldc "Server/Service/Listener"
        51: .line 334
            aconst_null
        52: .line 335
            ldc "className"
        53: .line 333
            invokevirtual org.apache.tomcat.util.digester.Digester.addObjectCreate:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
        54: .line 336
            aload 3 /* digester */
            ldc "Server/Service/Listener"
            invokevirtual org.apache.tomcat.util.digester.Digester.addSetProperties:(Ljava/lang/String;)V
        55: .line 337
            aload 3 /* digester */
            ldc "Server/Service/Listener"
        56: .line 338
            ldc "addLifecycleListener"
        57: .line 339
            ldc "org.apache.catalina.LifecycleListener"
        58: .line 337
            invokevirtual org.apache.tomcat.util.digester.Digester.addSetNext:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
        59: .line 342
            aload 3 /* digester */
            ldc "Server/Service/Executor"
        60: .line 343
            ldc "org.apache.catalina.core.StandardThreadExecutor"
        61: .line 344
            ldc "className"
        62: .line 342
            invokevirtual org.apache.tomcat.util.digester.Digester.addObjectCreate:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
        63: .line 345
            aload 3 /* digester */
            ldc "Server/Service/Executor"
            invokevirtual org.apache.tomcat.util.digester.Digester.addSetProperties:(Ljava/lang/String;)V
        64: .line 347
            aload 3 /* digester */
            ldc "Server/Service/Executor"
        65: .line 348
            ldc "addExecutor"
        66: .line 349
            ldc "org.apache.catalina.Executor"
        67: .line 347
            invokevirtual org.apache.tomcat.util.digester.Digester.addSetNext:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
        68: .line 352
            aload 3 /* digester */
            ldc "Server/Service/Connector"
        69: .line 353
            new org.apache.catalina.startup.ConnectorCreateRule
            dup
            invokespecial org.apache.catalina.startup.ConnectorCreateRule.<init>:()V
        70: .line 352
            invokevirtual org.apache.tomcat.util.digester.Digester.addRule:(Ljava/lang/String;Lorg/apache/tomcat/util/digester/Rule;)V
        71: .line 354
            aload 3 /* digester */
            ldc "Server/Service/Connector"
            new org.apache.catalina.startup.SetAllPropertiesRule
            dup
        72: .line 355
            iconst_3
            anewarray java.lang.String
            dup
            iconst_0
            ldc "executor"
            aastore
            dup
            iconst_1
            ldc "sslImplementationName"
            aastore
            dup
            iconst_2
            ldc "protocol"
            aastore
            invokespecial org.apache.catalina.startup.SetAllPropertiesRule.<init>:([Ljava/lang/String;)V
        73: .line 354
            invokevirtual org.apache.tomcat.util.digester.Digester.addRule:(Ljava/lang/String;Lorg/apache/tomcat/util/digester/Rule;)V
        74: .line 356
            aload 3 /* digester */
            ldc "Server/Service/Connector"
        75: .line 357
            ldc "addConnector"
        76: .line 358
            ldc "org.apache.catalina.connector.Connector"
        77: .line 356
            invokevirtual org.apache.tomcat.util.digester.Digester.addSetNext:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
        78: .line 360
            aload 3 /* digester */
            ldc "Server/Service/Connector"
            new org.apache.catalina.startup.AddPortOffsetRule
            dup
            invokespecial org.apache.catalina.startup.AddPortOffsetRule.<init>:()V
            invokevirtual org.apache.tomcat.util.digester.Digester.addRule:(Ljava/lang/String;Lorg/apache/tomcat/util/digester/Rule;)V
        79: .line 362
            aload 3 /* digester */
            ldc "Server/Service/Connector/SSLHostConfig"
        80: .line 363
            ldc "org.apache.tomcat.util.net.SSLHostConfig"
        81: .line 362
            invokevirtual org.apache.tomcat.util.digester.Digester.addObjectCreate:(Ljava/lang/String;Ljava/lang/String;)V
        82: .line 364
            aload 3 /* digester */
            ldc "Server/Service/Connector/SSLHostConfig"
            invokevirtual org.apache.tomcat.util.digester.Digester.addSetProperties:(Ljava/lang/String;)V
        83: .line 365
            aload 3 /* digester */
            ldc "Server/Service/Connector/SSLHostConfig"
        84: .line 366
            ldc "addSslHostConfig"
        85: .line 367
            ldc "org.apache.tomcat.util.net.SSLHostConfig"
        86: .line 365
            invokevirtual org.apache.tomcat.util.digester.Digester.addSetNext:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
        87: .line 369
            aload 3 /* digester */
            ldc "Server/Service/Connector/SSLHostConfig/Certificate"
        88: .line 370
            new org.apache.catalina.startup.CertificateCreateRule
            dup
            invokespecial org.apache.catalina.startup.CertificateCreateRule.<init>:()V
        89: .line 369
            invokevirtual org.apache.tomcat.util.digester.Digester.addRule:(Ljava/lang/String;Lorg/apache/tomcat/util/digester/Rule;)V
        90: .line 371
            aload 3 /* digester */
            ldc "Server/Service/Connector/SSLHostConfig/Certificate"
        91: .line 372
            new org.apache.catalina.startup.SetAllPropertiesRule
            dup
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "type"
            aastore
            invokespecial org.apache.catalina.startup.SetAllPropertiesRule.<init>:([Ljava/lang/String;)V
        92: .line 371
            invokevirtual org.apache.tomcat.util.digester.Digester.addRule:(Ljava/lang/String;Lorg/apache/tomcat/util/digester/Rule;)V
        93: .line 373
            aload 3 /* digester */
            ldc "Server/Service/Connector/SSLHostConfig/Certificate"
        94: .line 374
            ldc "addCertificate"
        95: .line 375
            ldc "org.apache.tomcat.util.net.SSLHostConfigCertificate"
        96: .line 373
            invokevirtual org.apache.tomcat.util.digester.Digester.addSetNext:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
        97: .line 377
            aload 3 /* digester */
            ldc "Server/Service/Connector/SSLHostConfig/OpenSSLConf"
        98: .line 378
            ldc "org.apache.tomcat.util.net.openssl.OpenSSLConf"
        99: .line 377
            invokevirtual org.apache.tomcat.util.digester.Digester.addObjectCreate:(Ljava/lang/String;Ljava/lang/String;)V
       100: .line 379
            aload 3 /* digester */
            ldc "Server/Service/Connector/SSLHostConfig/OpenSSLConf"
            invokevirtual org.apache.tomcat.util.digester.Digester.addSetProperties:(Ljava/lang/String;)V
       101: .line 380
            aload 3 /* digester */
            ldc "Server/Service/Connector/SSLHostConfig/OpenSSLConf"
       102: .line 381
            ldc "setOpenSslConf"
       103: .line 382
            ldc "org.apache.tomcat.util.net.openssl.OpenSSLConf"
       104: .line 380
            invokevirtual org.apache.tomcat.util.digester.Digester.addSetNext:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
       105: .line 384
            aload 3 /* digester */
            ldc "Server/Service/Connector/SSLHostConfig/OpenSSLConf/OpenSSLConfCmd"
       106: .line 385
            ldc "org.apache.tomcat.util.net.openssl.OpenSSLConfCmd"
       107: .line 384
            invokevirtual org.apache.tomcat.util.digester.Digester.addObjectCreate:(Ljava/lang/String;Ljava/lang/String;)V
       108: .line 386
            aload 3 /* digester */
            ldc "Server/Service/Connector/SSLHostConfig/OpenSSLConf/OpenSSLConfCmd"
            invokevirtual org.apache.tomcat.util.digester.Digester.addSetProperties:(Ljava/lang/String;)V
       109: .line 387
            aload 3 /* digester */
            ldc "Server/Service/Connector/SSLHostConfig/OpenSSLConf/OpenSSLConfCmd"
       110: .line 388
            ldc "addCmd"
       111: .line 389
            ldc "org.apache.tomcat.util.net.openssl.OpenSSLConfCmd"
       112: .line 387
            invokevirtual org.apache.tomcat.util.digester.Digester.addSetNext:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
       113: .line 391
            aload 3 /* digester */
            ldc "Server/Service/Connector/Listener"
       114: .line 392
            aconst_null
       115: .line 393
            ldc "className"
       116: .line 391
            invokevirtual org.apache.tomcat.util.digester.Digester.addObjectCreate:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
       117: .line 394
            aload 3 /* digester */
            ldc "Server/Service/Connector/Listener"
            invokevirtual org.apache.tomcat.util.digester.Digester.addSetProperties:(Ljava/lang/String;)V
       118: .line 395
            aload 3 /* digester */
            ldc "Server/Service/Connector/Listener"
       119: .line 396
            ldc "addLifecycleListener"
       120: .line 397
            ldc "org.apache.catalina.LifecycleListener"
       121: .line 395
            invokevirtual org.apache.tomcat.util.digester.Digester.addSetNext:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
       122: .line 399
            aload 3 /* digester */
            ldc "Server/Service/Connector/UpgradeProtocol"
       123: .line 400
            aconst_null
       124: .line 401
            ldc "className"
       125: .line 399
            invokevirtual org.apache.tomcat.util.digester.Digester.addObjectCreate:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
       126: .line 402
            aload 3 /* digester */
            ldc "Server/Service/Connector/UpgradeProtocol"
            invokevirtual org.apache.tomcat.util.digester.Digester.addSetProperties:(Ljava/lang/String;)V
       127: .line 403
            aload 3 /* digester */
            ldc "Server/Service/Connector/UpgradeProtocol"
       128: .line 404
            ldc "addUpgradeProtocol"
       129: .line 405
            ldc "org.apache.coyote.UpgradeProtocol"
       130: .line 403
            invokevirtual org.apache.tomcat.util.digester.Digester.addSetNext:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
       131: .line 408
            aload 3 /* digester */
            new org.apache.catalina.startup.NamingRuleSet
            dup
            ldc "Server/GlobalNamingResources/"
            invokespecial org.apache.catalina.startup.NamingRuleSet.<init>:(Ljava/lang/String;)V
            invokevirtual org.apache.tomcat.util.digester.Digester.addRuleSet:(Lorg/apache/tomcat/util/digester/RuleSet;)V
       132: .line 409
            aload 3 /* digester */
            new org.apache.catalina.startup.EngineRuleSet
            dup
            ldc "Server/Service/"
            invokespecial org.apache.catalina.startup.EngineRuleSet.<init>:(Ljava/lang/String;)V
            invokevirtual org.apache.tomcat.util.digester.Digester.addRuleSet:(Lorg/apache/tomcat/util/digester/RuleSet;)V
       133: .line 410
            aload 3 /* digester */
            new org.apache.catalina.startup.HostRuleSet
            dup
            ldc "Server/Service/Engine/"
            invokespecial org.apache.catalina.startup.HostRuleSet.<init>:(Ljava/lang/String;)V
            invokevirtual org.apache.tomcat.util.digester.Digester.addRuleSet:(Lorg/apache/tomcat/util/digester/RuleSet;)V
       134: .line 411
            aload 3 /* digester */
            new org.apache.catalina.startup.ContextRuleSet
            dup
            ldc "Server/Service/Engine/Host/"
            invokespecial org.apache.catalina.startup.ContextRuleSet.<init>:(Ljava/lang/String;)V
            invokevirtual org.apache.tomcat.util.digester.Digester.addRuleSet:(Lorg/apache/tomcat/util/digester/RuleSet;)V
       135: .line 412
            aload 0 /* this */
            aload 3 /* digester */
            ldc "Server/Service/Engine/Host/Cluster/"
            invokevirtual org.apache.catalina.startup.Catalina.addClusterRuleSet:(Lorg/apache/tomcat/util/digester/Digester;Ljava/lang/String;)V
       136: .line 413
            aload 3 /* digester */
            new org.apache.catalina.startup.NamingRuleSet
            dup
            ldc "Server/Service/Engine/Host/Context/"
            invokespecial org.apache.catalina.startup.NamingRuleSet.<init>:(Ljava/lang/String;)V
            invokevirtual org.apache.tomcat.util.digester.Digester.addRuleSet:(Lorg/apache/tomcat/util/digester/RuleSet;)V
       137: .line 416
            aload 3 /* digester */
            ldc "Server/Service/Engine"
       138: .line 417
            new org.apache.catalina.startup.SetParentClassLoaderRule
            dup
            aload 0 /* this */
            getfield org.apache.catalina.startup.Catalina.parentClassLoader:Ljava/lang/ClassLoader;
            invokespecial org.apache.catalina.startup.SetParentClassLoaderRule.<init>:(Ljava/lang/ClassLoader;)V
       139: .line 416
            invokevirtual org.apache.tomcat.util.digester.Digester.addRule:(Ljava/lang/String;Lorg/apache/tomcat/util/digester/Rule;)V
       140: .line 418
            aload 0 /* this */
            aload 3 /* digester */
            ldc "Server/Service/Engine/Cluster/"
            invokevirtual org.apache.catalina.startup.Catalina.addClusterRuleSet:(Lorg/apache/tomcat/util/digester/Digester;Ljava/lang/String;)V
       141: .line 420
            invokestatic java.lang.System.currentTimeMillis:()J
            lstore 8 /* t2 */
        start local 8 // long t2
       142: .line 421
            getstatic org.apache.catalina.startup.Catalina.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 144
       143: .line 422
            getstatic org.apache.catalina.startup.Catalina.log:Lorg/apache/juli/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Digester for server.xml created "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 8 /* t2 */
            lload 1 /* t1 */
            lsub
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
       144: .line 424
      StackMap locals: org.apache.catalina.startup.Catalina long org.apache.tomcat.util.digester.Digester java.util.Map java.util.List java.util.List java.util.List long
      StackMap stack:
            aload 3 /* digester */
            areturn
        end local 8 // long t2
        end local 7 // java.util.List connectorAttrs
        end local 6 // java.util.List contextAttrs
        end local 5 // java.util.List objectAttrs
        end local 4 // java.util.Map fakeAttributes
        end local 3 // org.apache.tomcat.util.digester.Digester digester
        end local 1 // long t1
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0  145     0            this  Lorg/apache/catalina/startup/Catalina;
            1  145     1              t1  J
            2  145     3        digester  Lorg/apache/tomcat/util/digester/Digester;
            5  145     4  fakeAttributes  Ljava/util/Map<Ljava/lang/Class<*>;Ljava/util/List<Ljava/lang/String;>;>;
            6  145     5     objectAttrs  Ljava/util/List<Ljava/lang/String;>;
            9  145     6    contextAttrs  Ljava/util/List<Ljava/lang/String;>;
           12  145     7  connectorAttrs  Ljava/util/List<Ljava/lang/String;>;
          142  145     8              t2  J

  private void addClusterRuleSet(org.apache.tomcat.util.digester.Digester, java.lang.String);
    descriptor: (Lorg/apache/tomcat/util/digester/Digester;Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=6, args_size=3
        start local 0 // org.apache.catalina.startup.Catalina this
        start local 1 // org.apache.tomcat.util.digester.Digester digester
        start local 2 // java.lang.String prefix
         0: .line 432
            aconst_null
            astore 3 /* clazz */
        start local 3 // java.lang.Class clazz
         1: .line 433
            aconst_null
            astore 4 /* constructor */
        start local 4 // java.lang.reflect.Constructor constructor
         2: .line 435
            ldc "org.apache.catalina.ha.ClusterRuleSet"
            invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
            astore 3 /* clazz */
         3: .line 436
            aload 3 /* clazz */
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/String;
            aastore
            invokevirtual java.lang.Class.getConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
            astore 4 /* constructor */
         4: .line 437
            aload 4 /* constructor */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* prefix */
            aastore
            invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.tomcat.util.digester.RuleSet
            astore 5 /* ruleSet */
        start local 5 // org.apache.tomcat.util.digester.RuleSet ruleSet
         5: .line 438
            aload 1 /* digester */
            aload 5 /* ruleSet */
            invokevirtual org.apache.tomcat.util.digester.Digester.addRuleSet:(Lorg/apache/tomcat/util/digester/RuleSet;)V
        end local 5 // org.apache.tomcat.util.digester.RuleSet ruleSet
         6: .line 439
            goto 19
      StackMap locals: org.apache.catalina.startup.Catalina org.apache.tomcat.util.digester.Digester java.lang.String java.lang.Class java.lang.reflect.Constructor
      StackMap stack: java.lang.Exception
         7: astore 5 /* e */
        start local 5 // java.lang.Exception e
         8: .line 440
            getstatic org.apache.catalina.startup.Catalina.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 15
         9: .line 441
            getstatic org.apache.catalina.startup.Catalina.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.Catalina.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "catalina.noCluster"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        10: .line 442
            new java.lang.StringBuilder
            dup
            aload 5 /* e */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ": "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* e */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aastore
        11: .line 441
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        12: .line 442
            aload 5 /* e */
        13: .line 441
            invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        14: .line 443
            goto 19
      StackMap locals: java.lang.Exception
      StackMap stack:
        15: getstatic org.apache.catalina.startup.Catalina.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isInfoEnabled:()Z
            ifeq 19
        16: .line 444
            getstatic org.apache.catalina.startup.Catalina.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.Catalina.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "catalina.noCluster"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        17: .line 445
            new java.lang.StringBuilder
            dup
            aload 5 /* e */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ": "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* e */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aastore
        18: .line 444
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.info:(Ljava/lang/Object;)V
        end local 5 // java.lang.Exception e
        19: .line 448
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.lang.reflect.Constructor constructor
        end local 3 // java.lang.Class clazz
        end local 2 // java.lang.String prefix
        end local 1 // org.apache.tomcat.util.digester.Digester digester
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   20     0         this  Lorg/apache/catalina/startup/Catalina;
            0   20     1     digester  Lorg/apache/tomcat/util/digester/Digester;
            0   20     2       prefix  Ljava/lang/String;
            1   20     3        clazz  Ljava/lang/Class<*>;
            2   20     4  constructor  Ljava/lang/reflect/Constructor<*>;
            5    6     5      ruleSet  Lorg/apache/tomcat/util/digester/RuleSet;
            8   19     5            e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           2     6       7  Class java.lang.Exception
    MethodParameters:
          Name  Flags
      digester  
      prefix    

  protected org.apache.tomcat.util.digester.Digester createStopDigester();
    descriptor: ()Lorg/apache/tomcat/util/digester/Digester;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // org.apache.catalina.startup.Catalina this
         0: .line 457
            new org.apache.tomcat.util.digester.Digester
            dup
            invokespecial org.apache.tomcat.util.digester.Digester.<init>:()V
            astore 1 /* digester */
        start local 1 // org.apache.tomcat.util.digester.Digester digester
         1: .line 458
            aload 1 /* digester */
            iconst_1
            invokevirtual org.apache.tomcat.util.digester.Digester.setUseContextClassLoader:(Z)V
         2: .line 461
            aload 1 /* digester */
            ldc "Server"
         3: .line 462
            ldc "org.apache.catalina.core.StandardServer"
         4: .line 463
            ldc "className"
         5: .line 461
            invokevirtual org.apache.tomcat.util.digester.Digester.addObjectCreate:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
         6: .line 464
            aload 1 /* digester */
            ldc "Server"
            invokevirtual org.apache.tomcat.util.digester.Digester.addSetProperties:(Ljava/lang/String;)V
         7: .line 465
            aload 1 /* digester */
            ldc "Server"
         8: .line 466
            ldc "setServer"
         9: .line 467
            ldc "org.apache.catalina.Server"
        10: .line 465
            invokevirtual org.apache.tomcat.util.digester.Digester.addSetNext:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
        11: .line 469
            aload 1 /* digester */
            areturn
        end local 1 // org.apache.tomcat.util.digester.Digester digester
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   12     0      this  Lorg/apache/catalina/startup/Catalina;
            1   12     1  digester  Lorg/apache/tomcat/util/digester/Digester;

  public void stopServer();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.catalina.startup.Catalina this
         0: .line 475
            aload 0 /* this */
            aconst_null
            invokevirtual org.apache.catalina.startup.Catalina.stopServer:([Ljava/lang/String;)V
         1: .line 476
            return
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/catalina/startup/Catalina;

  public void stopServer(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=9, args_size=2
        start local 0 // org.apache.catalina.startup.Catalina this
        start local 1 // java.lang.String[] arguments
         0: .line 480
            aload 1 /* arguments */
            ifnull 2
         1: .line 481
            aload 0 /* this */
            aload 1 /* arguments */
            invokevirtual org.apache.catalina.startup.Catalina.arguments:([Ljava/lang/String;)Z
            pop
         2: .line 484
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.Catalina.getServer:()Lorg/apache/catalina/Server;
            astore 2 /* s */
        start local 2 // org.apache.catalina.Server s
         3: .line 485
            aload 2 /* s */
            ifnonnull 23
         4: .line 487
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.Catalina.createStopDigester:()Lorg/apache/tomcat/util/digester/Digester;
            astore 3 /* digester */
        start local 3 // org.apache.tomcat.util.digester.Digester digester
         5: .line 488
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.Catalina.configFile:()Ljava/io/File;
            astore 4 /* file */
        start local 4 // java.io.File file
         6: .line 489
            aconst_null
            astore 5
            aconst_null
            astore 6
         7: new java.io.FileInputStream
            dup
            aload 4 /* file */
            invokespecial java.io.FileInputStream.<init>:(Ljava/io/File;)V
            astore 7 /* fis */
        start local 7 // java.io.FileInputStream fis
         8: .line 491
            new org.xml.sax.InputSource
            dup
            aload 4 /* file */
            invokevirtual java.io.File.toURI:()Ljava/net/URI;
            invokevirtual java.net.URI.toURL:()Ljava/net/URL;
            invokevirtual java.net.URL.toString:()Ljava/lang/String;
            invokespecial org.xml.sax.InputSource.<init>:(Ljava/lang/String;)V
         9: .line 490
            astore 8 /* is */
        start local 8 // org.xml.sax.InputSource is
        10: .line 492
            aload 8 /* is */
            aload 7 /* fis */
            invokevirtual org.xml.sax.InputSource.setByteStream:(Ljava/io/InputStream;)V
        11: .line 493
            aload 3 /* digester */
            aload 0 /* this */
            invokevirtual org.apache.tomcat.util.digester.Digester.push:(Ljava/lang/Object;)V
        12: .line 494
            aload 3 /* digester */
            aload 8 /* is */
            invokevirtual org.apache.tomcat.util.digester.Digester.parse:(Lorg/xml/sax/InputSource;)Ljava/lang/Object;
            pop
        end local 8 // org.xml.sax.InputSource is
        13: .line 495
            aload 7 /* fis */
            ifnull 29
            aload 7 /* fis */
            invokevirtual java.io.FileInputStream.close:()V
            goto 29
      StackMap locals: org.apache.catalina.startup.Catalina java.lang.String[] org.apache.catalina.Server org.apache.tomcat.util.digester.Digester java.io.File java.lang.Throwable java.lang.Throwable java.io.FileInputStream
      StackMap stack: java.lang.Throwable
        14: astore 5
            aload 7 /* fis */
            ifnull 15
            aload 7 /* fis */
            invokevirtual java.io.FileInputStream.close:()V
        end local 7 // java.io.FileInputStream fis
      StackMap locals:
      StackMap stack:
        15: aload 5
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        16: astore 6
            aload 5
            ifnonnull 17
            aload 6
            astore 5
            goto 18
      StackMap locals:
      StackMap stack:
        17: aload 5
            aload 6
            if_acmpeq 18
            aload 5
            aload 6
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        18: aload 5
            athrow
      StackMap locals: org.apache.catalina.startup.Catalina java.lang.String[] org.apache.catalina.Server org.apache.tomcat.util.digester.Digester java.io.File
      StackMap stack: java.lang.Exception
        19: astore 5 /* e */
        start local 5 // java.lang.Exception e
        20: .line 496
            getstatic org.apache.catalina.startup.Catalina.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.Catalina.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "catalina.stopError"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            aload 5 /* e */
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        21: .line 497
            iconst_1
            invokestatic java.lang.System.exit:(I)V
        end local 5 // java.lang.Exception e
        end local 4 // java.io.File file
        end local 3 // org.apache.tomcat.util.digester.Digester digester
        22: .line 499
            goto 29
        23: .line 502
      StackMap locals:
      StackMap stack:
            aload 2 /* s */
            invokeinterface org.apache.catalina.Server.stop:()V
        24: .line 503
            aload 2 /* s */
            invokeinterface org.apache.catalina.Server.destroy:()V
        25: .line 504
            goto 28
      StackMap locals:
      StackMap stack: org.apache.catalina.LifecycleException
        26: astore 3 /* e */
        start local 3 // org.apache.catalina.LifecycleException e
        27: .line 505
            getstatic org.apache.catalina.startup.Catalina.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.Catalina.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "catalina.stopError"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            aload 3 /* e */
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 3 // org.apache.catalina.LifecycleException e
        28: .line 507
      StackMap locals:
      StackMap stack:
            return
        29: .line 511
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.Catalina.getServer:()Lorg/apache/catalina/Server;
            astore 2 /* s */
        30: .line 512
            aload 2 /* s */
            invokeinterface org.apache.catalina.Server.getPortWithOffset:()I
            ifle 64
        31: .line 513
            aconst_null
            astore 3
            aconst_null
            astore 4
        32: new java.net.Socket
            dup
            aload 2 /* s */
            invokeinterface org.apache.catalina.Server.getAddress:()Ljava/lang/String;
            aload 2 /* s */
            invokeinterface org.apache.catalina.Server.getPortWithOffset:()I
            invokespecial java.net.Socket.<init>:(Ljava/lang/String;I)V
            astore 5 /* socket */
        start local 5 // java.net.Socket socket
        33: .line 514
            aload 5 /* socket */
            invokevirtual java.net.Socket.getOutputStream:()Ljava/io/OutputStream;
            astore 6 /* stream */
        start local 6 // java.io.OutputStream stream
        34: .line 515
            aload 2 /* s */
            invokeinterface org.apache.catalina.Server.getShutdown:()Ljava/lang/String;
            astore 7 /* shutdown */
        start local 7 // java.lang.String shutdown
        35: .line 516
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        36: goto 39
        37: .line 517
      StackMap locals: org.apache.catalina.startup.Catalina java.lang.String[] org.apache.catalina.Server java.lang.Throwable java.lang.Throwable java.net.Socket java.io.OutputStream java.lang.String int
      StackMap stack:
            aload 6 /* stream */
            aload 7 /* shutdown */
            iload 8 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            invokevirtual java.io.OutputStream.write:(I)V
        38: .line 516
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        39: iload 8 /* i */
            aload 7 /* shutdown */
            invokevirtual java.lang.String.length:()I
            if_icmplt 37
        end local 8 // int i
        40: .line 519
            aload 6 /* stream */
            invokevirtual java.io.OutputStream.flush:()V
        end local 7 // java.lang.String shutdown
        41: .line 520
            aload 6 /* stream */
            ifnull 44
            aload 6 /* stream */
            invokevirtual java.io.OutputStream.close:()V
            goto 44
      StackMap locals: org.apache.catalina.startup.Catalina java.lang.String[] org.apache.catalina.Server java.lang.Throwable java.lang.Throwable java.net.Socket java.io.OutputStream
      StackMap stack: java.lang.Throwable
        42: astore 3
            aload 6 /* stream */
            ifnull 43
            aload 6 /* stream */
            invokevirtual java.io.OutputStream.close:()V
        end local 6 // java.io.OutputStream stream
      StackMap locals:
      StackMap stack:
        43: aload 3
            athrow
      StackMap locals:
      StackMap stack:
        44: aload 5 /* socket */
            ifnull 66
            aload 5 /* socket */
            invokevirtual java.net.Socket.close:()V
            goto 66
      StackMap locals:
      StackMap stack: java.lang.Throwable
        45: astore 4
            aload 3
            ifnonnull 46
            aload 4
            astore 3
            goto 47
      StackMap locals:
      StackMap stack:
        46: aload 3
            aload 4
            if_acmpeq 47
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        47: aload 5 /* socket */
            ifnull 48
            aload 5 /* socket */
            invokevirtual java.net.Socket.close:()V
        end local 5 // java.net.Socket socket
      StackMap locals:
      StackMap stack:
        48: aload 3
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        49: astore 4
            aload 3
            ifnonnull 50
            aload 4
            astore 3
            goto 51
      StackMap locals:
      StackMap stack:
        50: aload 3
            aload 4
            if_acmpeq 51
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        51: aload 3
            athrow
      StackMap locals: org.apache.catalina.startup.Catalina java.lang.String[] org.apache.catalina.Server
      StackMap stack: java.net.ConnectException
        52: astore 3 /* ce */
        start local 3 // java.net.ConnectException ce
        53: .line 521
            getstatic org.apache.catalina.startup.Catalina.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.Catalina.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "catalina.stopServer.connectException"
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* s */
            invokeinterface org.apache.catalina.Server.getAddress:()Ljava/lang/String;
            aastore
            dup
            iconst_1
        54: .line 522
            aload 2 /* s */
            invokeinterface org.apache.catalina.Server.getPortWithOffset:()I
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
            aastore
            dup
            iconst_2
            aload 2 /* s */
            invokeinterface org.apache.catalina.Server.getPort:()I
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
            aastore
            dup
            iconst_3
        55: .line 523
            aload 2 /* s */
            invokeinterface org.apache.catalina.Server.getPortOffset:()I
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
            aastore
        56: .line 521
            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
        57: .line 524
            getstatic org.apache.catalina.startup.Catalina.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.Catalina.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "catalina.stopError"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            aload 3 /* ce */
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        58: .line 525
            iconst_1
            invokestatic java.lang.System.exit:(I)V
        end local 3 // java.net.ConnectException ce
        59: goto 66
        60: .line 526
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 3 /* e */
        start local 3 // java.io.IOException e
        61: .line 527
            getstatic org.apache.catalina.startup.Catalina.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.Catalina.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "catalina.stopError"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            aload 3 /* e */
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        62: .line 528
            iconst_1
            invokestatic java.lang.System.exit:(I)V
        end local 3 // java.io.IOException e
        63: .line 530
            goto 66
        64: .line 531
      StackMap locals:
      StackMap stack:
            getstatic org.apache.catalina.startup.Catalina.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.Catalina.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "catalina.stopServer"
            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
        65: .line 532
            iconst_1
            invokestatic java.lang.System.exit:(I)V
        66: .line 534
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.apache.catalina.Server s
        end local 1 // java.lang.String[] arguments
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   67     0       this  Lorg/apache/catalina/startup/Catalina;
            0   67     1  arguments  [Ljava/lang/String;
            3   67     2          s  Lorg/apache/catalina/Server;
            5   22     3   digester  Lorg/apache/tomcat/util/digester/Digester;
            6   22     4       file  Ljava/io/File;
            8   15     7        fis  Ljava/io/FileInputStream;
           10   13     8         is  Lorg/xml/sax/InputSource;
           20   22     5          e  Ljava/lang/Exception;
           27   28     3          e  Lorg/apache/catalina/LifecycleException;
           33   48     5     socket  Ljava/net/Socket;
           34   43     6     stream  Ljava/io/OutputStream;
           35   41     7   shutdown  Ljava/lang/String;
           36   40     8          i  I
           53   59     3         ce  Ljava/net/ConnectException;
           61   63     3          e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           8    13      14  any
           7    16      16  any
           6    19      19  Class java.lang.Exception
          23    25      26  Class org.apache.catalina.LifecycleException
          34    41      42  any
          33    44      45  any
          32    49      49  any
          31    52      52  Class java.net.ConnectException
          31    52      60  Class java.io.IOException
    MethodParameters:
           Name  Flags
      arguments  

  public void load();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=10, locals=10, args_size=1
        start local 0 // org.apache.catalina.startup.Catalina this
         0: .line 542
            aload 0 /* this */
            getfield org.apache.catalina.startup.Catalina.loaded:Z
            ifeq 2
         1: .line 543
            return
         2: .line 545
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield org.apache.catalina.startup.Catalina.loaded:Z
         3: .line 547
            invokestatic java.lang.System.nanoTime:()J
            lstore 1 /* t1 */
        start local 1 // long t1
         4: .line 549
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.Catalina.initDirs:()V
         5: .line 552
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.Catalina.initNaming:()V
         6: .line 555
            new org.apache.catalina.startup.CatalinaBaseConfigurationSource
            dup
            invokestatic org.apache.catalina.startup.Bootstrap.getCatalinaBaseFile:()Ljava/io/File;
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.Catalina.getConfigFile:()Ljava/lang/String;
            invokespecial org.apache.catalina.startup.CatalinaBaseConfigurationSource.<init>:(Ljava/io/File;Ljava/lang/String;)V
            invokestatic org.apache.tomcat.util.file.ConfigFileLoader.setSource:(Lorg/apache/tomcat/util/file/ConfigurationSource;)V
         7: .line 556
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.Catalina.configFile:()Ljava/io/File;
            astore 3 /* file */
        start local 3 // java.io.File file
         8: .line 559
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.Catalina.createStartDigester:()Lorg/apache/tomcat/util/digester/Digester;
            astore 4 /* digester */
        start local 4 // org.apache.tomcat.util.digester.Digester digester
         9: .line 561
            aconst_null
            astore 5
            aconst_null
            astore 6
        10: invokestatic org.apache.tomcat.util.file.ConfigFileLoader.getSource:()Lorg/apache/tomcat/util/file/ConfigurationSource;
            invokeinterface org.apache.tomcat.util.file.ConfigurationSource.getServerXml:()Lorg/apache/tomcat/util/file/ConfigurationSource$Resource;
            astore 7 /* resource */
        start local 7 // org.apache.tomcat.util.file.ConfigurationSource$Resource resource
        11: .line 562
            aload 7 /* resource */
            invokevirtual org.apache.tomcat.util.file.ConfigurationSource$Resource.getInputStream:()Ljava/io/InputStream;
            astore 8 /* inputStream */
        start local 8 // java.io.InputStream inputStream
        12: .line 563
            new org.xml.sax.InputSource
            dup
            aload 7 /* resource */
            invokevirtual org.apache.tomcat.util.file.ConfigurationSource$Resource.getURI:()Ljava/net/URI;
            invokevirtual java.net.URI.toURL:()Ljava/net/URL;
            invokevirtual java.net.URL.toString:()Ljava/lang/String;
            invokespecial org.xml.sax.InputSource.<init>:(Ljava/lang/String;)V
            astore 9 /* inputSource */
        start local 9 // org.xml.sax.InputSource inputSource
        13: .line 564
            aload 9 /* inputSource */
            aload 8 /* inputStream */
            invokevirtual org.xml.sax.InputSource.setByteStream:(Ljava/io/InputStream;)V
        14: .line 565
            aload 4 /* digester */
            aload 0 /* this */
            invokevirtual org.apache.tomcat.util.digester.Digester.push:(Ljava/lang/Object;)V
        15: .line 566
            aload 4 /* digester */
            aload 9 /* inputSource */
            invokevirtual org.apache.tomcat.util.digester.Digester.parse:(Lorg/xml/sax/InputSource;)Ljava/lang/Object;
            pop
        end local 9 // org.xml.sax.InputSource inputSource
        end local 8 // java.io.InputStream inputStream
        16: .line 567
            aload 7 /* resource */
            ifnull 27
            aload 7 /* resource */
            invokevirtual org.apache.tomcat.util.file.ConfigurationSource$Resource.close:()V
            goto 27
      StackMap locals: org.apache.catalina.startup.Catalina long java.io.File org.apache.tomcat.util.digester.Digester java.lang.Throwable java.lang.Throwable org.apache.tomcat.util.file.ConfigurationSource$Resource
      StackMap stack: java.lang.Throwable
        17: astore 5
            aload 7 /* resource */
            ifnull 18
            aload 7 /* resource */
            invokevirtual org.apache.tomcat.util.file.ConfigurationSource$Resource.close:()V
        end local 7 // org.apache.tomcat.util.file.ConfigurationSource$Resource resource
      StackMap locals:
      StackMap stack:
        18: aload 5
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        19: astore 6
            aload 5
            ifnonnull 20
            aload 6
            astore 5
            goto 21
      StackMap locals:
      StackMap stack:
        20: aload 5
            aload 6
            if_acmpeq 21
            aload 5
            aload 6
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        21: aload 5
            athrow
      StackMap locals: org.apache.catalina.startup.Catalina long java.io.File org.apache.tomcat.util.digester.Digester
      StackMap stack: java.lang.Exception
        22: astore 5 /* e */
        start local 5 // java.lang.Exception e
        23: .line 568
            getstatic org.apache.catalina.startup.Catalina.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.Catalina.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "catalina.configFail"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* file */
            invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
            aastore
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            aload 5 /* e */
            invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        24: .line 569
            aload 3 /* file */
            invokevirtual java.io.File.exists:()Z
            ifeq 26
            aload 3 /* file */
            invokevirtual java.io.File.canRead:()Z
            ifne 26
        25: .line 570
            getstatic org.apache.catalina.startup.Catalina.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.Catalina.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "catalina.incorrectPermissions"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;)V
        26: .line 572
      StackMap locals: java.lang.Exception
      StackMap stack:
            return
        end local 5 // java.lang.Exception e
        27: .line 575
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.Catalina.getServer:()Lorg/apache/catalina/Server;
            aload 0 /* this */
            invokeinterface org.apache.catalina.Server.setCatalina:(Lorg/apache/catalina/startup/Catalina;)V
        28: .line 576
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.Catalina.getServer:()Lorg/apache/catalina/Server;
            invokestatic org.apache.catalina.startup.Bootstrap.getCatalinaHomeFile:()Ljava/io/File;
            invokeinterface org.apache.catalina.Server.setCatalinaHome:(Ljava/io/File;)V
        29: .line 577
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.Catalina.getServer:()Lorg/apache/catalina/Server;
            invokestatic org.apache.catalina.startup.Bootstrap.getCatalinaBaseFile:()Ljava/io/File;
            invokeinterface org.apache.catalina.Server.setCatalinaBase:(Ljava/io/File;)V
        30: .line 580
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.Catalina.initStreams:()V
        31: .line 584
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.Catalina.getServer:()Lorg/apache/catalina/Server;
            invokeinterface org.apache.catalina.Server.init:()V
        32: .line 585
            goto 37
      StackMap locals:
      StackMap stack: org.apache.catalina.LifecycleException
        33: astore 5 /* e */
        start local 5 // org.apache.catalina.LifecycleException e
        34: .line 586
            ldc "org.apache.catalina.startup.EXIT_ON_INIT_FAILURE"
            invokestatic java.lang.Boolean.getBoolean:(Ljava/lang/String;)Z
            ifeq 36
        35: .line 587
            new java.lang.Error
            dup
            aload 5 /* e */
            invokespecial java.lang.Error.<init>:(Ljava/lang/Throwable;)V
            athrow
        36: .line 589
      StackMap locals: org.apache.catalina.LifecycleException
      StackMap stack:
            getstatic org.apache.catalina.startup.Catalina.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.Catalina.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "catalina.initError"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            aload 5 /* e */
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 5 // org.apache.catalina.LifecycleException e
        37: .line 593
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.System.nanoTime:()J
            lstore 5 /* t2 */
        start local 5 // long t2
        38: .line 594
            getstatic org.apache.catalina.startup.Catalina.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isInfoEnabled:()Z
            ifeq 40
        39: .line 595
            getstatic org.apache.catalina.startup.Catalina.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.Catalina.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "catalina.init"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            lload 5 /* t2 */
            lload 1 /* t1 */
            lsub
            ldc 1000000
            ldiv
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.info:(Ljava/lang/Object;)V
        40: .line 597
      StackMap locals: long
      StackMap stack:
            return
        end local 5 // long t2
        end local 4 // org.apache.tomcat.util.digester.Digester digester
        end local 3 // java.io.File file
        end local 1 // long t1
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   41     0         this  Lorg/apache/catalina/startup/Catalina;
            4   41     1           t1  J
            8   41     3         file  Ljava/io/File;
            9   41     4     digester  Lorg/apache/tomcat/util/digester/Digester;
           11   18     7     resource  Lorg/apache/tomcat/util/file/ConfigurationSource$Resource;
           12   16     8  inputStream  Ljava/io/InputStream;
           13   16     9  inputSource  Lorg/xml/sax/InputSource;
           23   27     5            e  Ljava/lang/Exception;
           34   37     5            e  Lorg/apache/catalina/LifecycleException;
           38   41     5           t2  J
      Exception table:
        from    to  target  type
          11    16      17  any
          10    19      19  any
           9    22      22  Class java.lang.Exception
          31    32      33  Class org.apache.catalina.LifecycleException

  public void load(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.apache.catalina.startup.Catalina this
        start local 1 // java.lang.String[] args
         0: .line 606
            aload 0 /* this */
            aload 1 /* args */
            invokevirtual org.apache.catalina.startup.Catalina.arguments:([Ljava/lang/String;)Z
            ifeq 5
         1: .line 607
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.Catalina.load:()V
         2: .line 609
            goto 5
      StackMap locals:
      StackMap stack: java.lang.Exception
         3: astore 2 /* e */
        start local 2 // java.lang.Exception e
         4: .line 610
            aload 2 /* e */
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual java.lang.Exception.printStackTrace:(Ljava/io/PrintStream;)V
        end local 2 // java.lang.Exception e
         5: .line 612
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String[] args
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/apache/catalina/startup/Catalina;
            0    6     1  args  [Ljava/lang/String;
            4    5     2     e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     2       3  Class java.lang.Exception
    MethodParameters:
      Name  Flags
      args  

  public void start();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=10, locals=6, args_size=1
        start local 0 // org.apache.catalina.startup.Catalina this
         0: .line 620
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.Catalina.getServer:()Lorg/apache/catalina/Server;
            ifnonnull 2
         1: .line 621
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.Catalina.load:()V
         2: .line 624
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.Catalina.getServer:()Lorg/apache/catalina/Server;
            ifnonnull 5
         3: .line 625
            getstatic org.apache.catalina.startup.Catalina.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.Catalina.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "catalina.noServer"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.fatal:(Ljava/lang/Object;)V
         4: .line 626
            return
         5: .line 629
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.System.nanoTime:()J
            lstore 1 /* t1 */
        start local 1 // long t1
         6: .line 633
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.Catalina.getServer:()Lorg/apache/catalina/Server;
            invokeinterface org.apache.catalina.Server.start:()V
         7: .line 634
            goto 15
      StackMap locals: org.apache.catalina.startup.Catalina long
      StackMap stack: org.apache.catalina.LifecycleException
         8: astore 3 /* e */
        start local 3 // org.apache.catalina.LifecycleException e
         9: .line 635
            getstatic org.apache.catalina.startup.Catalina.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.Catalina.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "catalina.serverStartFail"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            aload 3 /* e */
            invokeinterface org.apache.juli.logging.Log.fatal:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        10: .line 637
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.Catalina.getServer:()Lorg/apache/catalina/Server;
            invokeinterface org.apache.catalina.Server.destroy:()V
        11: .line 638
            goto 14
      StackMap locals: org.apache.catalina.startup.Catalina long org.apache.catalina.LifecycleException
      StackMap stack: org.apache.catalina.LifecycleException
        12: astore 4 /* e1 */
        start local 4 // org.apache.catalina.LifecycleException e1
        13: .line 639
            getstatic org.apache.catalina.startup.Catalina.log:Lorg/apache/juli/logging/Log;
            ldc "destroy() failed for failed Server "
            aload 4 /* e1 */
            invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 4 // org.apache.catalina.LifecycleException e1
        14: .line 641
      StackMap locals:
      StackMap stack:
            return
        end local 3 // org.apache.catalina.LifecycleException e
        15: .line 644
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.System.nanoTime:()J
            lstore 3 /* t2 */
        start local 3 // long t2
        16: .line 645
            getstatic org.apache.catalina.startup.Catalina.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isInfoEnabled:()Z
            ifeq 18
        17: .line 646
            getstatic org.apache.catalina.startup.Catalina.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.Catalina.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "catalina.startup"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            lload 3 /* t2 */
            lload 1 /* t1 */
            lsub
            ldc 1000000
            ldiv
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.info:(Ljava/lang/Object;)V
        18: .line 650
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.startup.Catalina.useShutdownHook:Z
            ifeq 27
        19: .line 651
            aload 0 /* this */
            getfield org.apache.catalina.startup.Catalina.shutdownHook:Ljava/lang/Thread;
            ifnonnull 21
        20: .line 652
            aload 0 /* this */
            new org.apache.catalina.startup.Catalina$CatalinaShutdownHook
            dup
            aload 0 /* this */
            invokespecial org.apache.catalina.startup.Catalina$CatalinaShutdownHook.<init>:(Lorg/apache/catalina/startup/Catalina;)V
            putfield org.apache.catalina.startup.Catalina.shutdownHook:Ljava/lang/Thread;
        21: .line 654
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.Runtime.getRuntime:()Ljava/lang/Runtime;
            aload 0 /* this */
            getfield org.apache.catalina.startup.Catalina.shutdownHook:Ljava/lang/Thread;
            invokevirtual java.lang.Runtime.addShutdownHook:(Ljava/lang/Thread;)V
        22: .line 659
            invokestatic java.util.logging.LogManager.getLogManager:()Ljava/util/logging/LogManager;
            astore 5 /* logManager */
        start local 5 // java.util.logging.LogManager logManager
        23: .line 660
            aload 5 /* logManager */
            instanceof org.apache.juli.ClassLoaderLogManager
            ifeq 27
        24: .line 661
            aload 5 /* logManager */
            checkcast org.apache.juli.ClassLoaderLogManager
        25: .line 662
            iconst_0
        26: .line 661
            invokevirtual org.apache.juli.ClassLoaderLogManager.setUseShutdownHook:(Z)V
        end local 5 // java.util.logging.LogManager logManager
        27: .line 666
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.startup.Catalina.await:Z
            ifeq 30
        28: .line 667
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.Catalina.await:()V
        29: .line 668
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.Catalina.stop:()V
        30: .line 670
      StackMap locals:
      StackMap stack:
            return
        end local 3 // long t2
        end local 1 // long t1
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   31     0        this  Lorg/apache/catalina/startup/Catalina;
            6   31     1          t1  J
            9   15     3           e  Lorg/apache/catalina/LifecycleException;
           13   14     4          e1  Lorg/apache/catalina/LifecycleException;
           16   31     3          t2  J
           23   27     5  logManager  Ljava/util/logging/LogManager;
      Exception table:
        from    to  target  type
           6     7       8  Class org.apache.catalina.LifecycleException
          10    11      12  Class org.apache.catalina.LifecycleException

  public void stop();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // org.apache.catalina.startup.Catalina this
         0: .line 681
            aload 0 /* this */
            getfield org.apache.catalina.startup.Catalina.useShutdownHook:Z
            ifeq 10
         1: .line 682
            invokestatic java.lang.Runtime.getRuntime:()Ljava/lang/Runtime;
            aload 0 /* this */
            getfield org.apache.catalina.startup.Catalina.shutdownHook:Ljava/lang/Thread;
            invokevirtual java.lang.Runtime.removeShutdownHook:(Ljava/lang/Thread;)Z
            pop
         2: .line 686
            invokestatic java.util.logging.LogManager.getLogManager:()Ljava/util/logging/LogManager;
            astore 1 /* logManager */
        start local 1 // java.util.logging.LogManager logManager
         3: .line 687
            aload 1 /* logManager */
            instanceof org.apache.juli.ClassLoaderLogManager
            ifeq 10
         4: .line 688
            aload 1 /* logManager */
            checkcast org.apache.juli.ClassLoaderLogManager
         5: .line 689
            iconst_1
         6: .line 688
            invokevirtual org.apache.juli.ClassLoaderLogManager.setUseShutdownHook:(Z)V
        end local 1 // java.util.logging.LogManager logManager
         7: .line 692
            goto 10
      StackMap locals:
      StackMap stack: java.lang.Throwable
         8: astore 1 /* t */
        start local 1 // java.lang.Throwable t
         9: .line 693
            aload 1 /* t */
            invokestatic org.apache.tomcat.util.ExceptionUtils.handleThrowable:(Ljava/lang/Throwable;)V
        end local 1 // java.lang.Throwable t
        10: .line 700
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.Catalina.getServer:()Lorg/apache/catalina/Server;
            astore 1 /* s */
        start local 1 // org.apache.catalina.Server s
        11: .line 701
            aload 1 /* s */
            invokeinterface org.apache.catalina.Server.getState:()Lorg/apache/catalina/LifecycleState;
            astore 2 /* state */
        start local 2 // org.apache.catalina.LifecycleState state
        12: .line 702
            getstatic org.apache.catalina.LifecycleState.STOPPING_PREP:Lorg/apache/catalina/LifecycleState;
            aload 2 /* state */
            invokevirtual org.apache.catalina.LifecycleState.compareTo:(Ljava/lang/Enum;)I
            ifgt 14
        13: .line 703
            getstatic org.apache.catalina.LifecycleState.DESTROYED:Lorg/apache/catalina/LifecycleState;
            aload 2 /* state */
            invokevirtual org.apache.catalina.LifecycleState.compareTo:(Ljava/lang/Enum;)I
            ifge 19
        14: .line 706
      StackMap locals: org.apache.catalina.Server org.apache.catalina.LifecycleState
      StackMap stack:
            aload 1 /* s */
            invokeinterface org.apache.catalina.Server.stop:()V
        15: .line 707
            aload 1 /* s */
            invokeinterface org.apache.catalina.Server.destroy:()V
        end local 2 // org.apache.catalina.LifecycleState state
        end local 1 // org.apache.catalina.Server s
        16: .line 709
            goto 19
      StackMap locals: org.apache.catalina.startup.Catalina
      StackMap stack: org.apache.catalina.LifecycleException
        17: astore 1 /* e */
        start local 1 // org.apache.catalina.LifecycleException e
        18: .line 710
            getstatic org.apache.catalina.startup.Catalina.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.Catalina.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "catalina.stopError"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            aload 1 /* e */
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 1 // org.apache.catalina.LifecycleException e
        19: .line 713
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   20     0        this  Lorg/apache/catalina/startup/Catalina;
            3    7     1  logManager  Ljava/util/logging/LogManager;
            9   10     1           t  Ljava/lang/Throwable;
           11   16     1           s  Lorg/apache/catalina/Server;
           12   16     2       state  Lorg/apache/catalina/LifecycleState;
           18   19     1           e  Lorg/apache/catalina/LifecycleException;
      Exception table:
        from    to  target  type
           0     7       8  Class java.lang.Throwable
          10    16      17  Class org.apache.catalina.LifecycleException

  public void await();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.startup.Catalina this
         0: .line 721
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.Catalina.getServer:()Lorg/apache/catalina/Server;
            invokeinterface org.apache.catalina.Server.await:()V
         1: .line 723
            return
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/catalina/startup/Catalina;

  protected void usage();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.catalina.startup.Catalina this
         0: .line 731
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            getstatic org.apache.catalina.startup.Catalina.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "catalina.usage"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         1: .line 733
            return
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/catalina/startup/Catalina;

  protected void initDirs();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=2, args_size=1
        start local 0 // org.apache.catalina.startup.Catalina this
         0: .line 737
            ldc "java.io.tmpdir"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* temp */
        start local 1 // java.lang.String temp
         1: .line 738
            aload 1 /* temp */
            ifnull 2
            new java.io.File
            dup
            aload 1 /* temp */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            invokevirtual java.io.File.isDirectory:()Z
            ifne 3
         2: .line 739
      StackMap locals: java.lang.String
      StackMap stack:
            getstatic org.apache.catalina.startup.Catalina.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.Catalina.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "embedded.notmp"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* temp */
            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
         3: .line 741
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String temp
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/apache/catalina/startup/Catalina;
            1    4     1  temp  Ljava/lang/String;

  protected void initStreams();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.catalina.startup.Catalina this
         0: .line 746
            new org.apache.tomcat.util.log.SystemLogHandler
            dup
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokespecial org.apache.tomcat.util.log.SystemLogHandler.<init>:(Ljava/io/PrintStream;)V
            invokestatic java.lang.System.setOut:(Ljava/io/PrintStream;)V
         1: .line 747
            new org.apache.tomcat.util.log.SystemLogHandler
            dup
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            invokespecial org.apache.tomcat.util.log.SystemLogHandler.<init>:(Ljava/io/PrintStream;)V
            invokestatic java.lang.System.setErr:(Ljava/io/PrintStream;)V
         2: .line 748
            return
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/catalina/startup/Catalina;

  protected void initNaming();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // org.apache.catalina.startup.Catalina this
         0: .line 753
            aload 0 /* this */
            getfield org.apache.catalina.startup.Catalina.useNaming:Z
            ifne 4
         1: .line 754
            getstatic org.apache.catalina.startup.Catalina.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.Catalina.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "catalina.noNatming"
            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
         2: .line 755
            ldc "catalina.useNaming"
            ldc "false"
            invokestatic java.lang.System.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            pop
         3: .line 756
            goto 21
         4: .line 757
      StackMap locals:
      StackMap stack:
            ldc "catalina.useNaming"
            ldc "true"
            invokestatic java.lang.System.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            pop
         5: .line 758
            ldc "org.apache.naming"
            astore 1 /* value */
        start local 1 // java.lang.String value
         6: .line 760
            ldc "java.naming.factory.url.pkgs"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
         7: .line 759
            astore 2 /* oldValue */
        start local 2 // java.lang.String oldValue
         8: .line 761
            aload 2 /* oldValue */
            ifnull 10
         9: .line 762
            new java.lang.StringBuilder
            dup
            aload 1 /* value */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ":"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* oldValue */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* value */
        10: .line 764
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            ldc "java.naming.factory.url.pkgs"
            aload 1 /* value */
            invokestatic java.lang.System.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            pop
        11: .line 765
            getstatic org.apache.catalina.startup.Catalina.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 13
        12: .line 766
            getstatic org.apache.catalina.startup.Catalina.log:Lorg/apache/juli/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Setting naming prefix="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* value */
            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
        13: .line 769
      StackMap locals:
      StackMap stack:
            ldc "java.naming.factory.initial"
        14: .line 768
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* value */
        15: .line 770
            aload 1 /* value */
            ifnonnull 20
        16: .line 772
            ldc "java.naming.factory.initial"
        17: .line 773
            ldc "org.apache.naming.java.javaURLContextFactory"
        18: .line 771
            invokestatic java.lang.System.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            pop
        19: .line 774
            goto 21
        20: .line 775
      StackMap locals:
      StackMap stack:
            getstatic org.apache.catalina.startup.Catalina.log:Lorg/apache/juli/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "INITIAL_CONTEXT_FACTORY already set "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* value */
            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
        end local 2 // java.lang.String oldValue
        end local 1 // java.lang.String value
        21: .line 778
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   22     0      this  Lorg/apache/catalina/startup/Catalina;
            6   21     1     value  Ljava/lang/String;
            8   21     2  oldValue  Ljava/lang/String;

  protected void setSecurityProtection();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // org.apache.catalina.startup.Catalina this
         0: .line 785
            invokestatic org.apache.catalina.security.SecurityConfig.newInstance:()Lorg/apache/catalina/security/SecurityConfig;
            astore 1 /* securityConfig */
        start local 1 // org.apache.catalina.security.SecurityConfig securityConfig
         1: .line 786
            aload 1 /* securityConfig */
            invokevirtual org.apache.catalina.security.SecurityConfig.setPackageDefinition:()V
         2: .line 787
            aload 1 /* securityConfig */
            invokevirtual org.apache.catalina.security.SecurityConfig.setPackageAccess:()V
         3: .line 788
            return
        end local 1 // org.apache.catalina.security.SecurityConfig securityConfig
        end local 0 // org.apache.catalina.startup.Catalina this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0            this  Lorg/apache/catalina/startup/Catalina;
            1    4     1  securityConfig  Lorg/apache/catalina/security/SecurityConfig;
}
SourceFile: "Catalina.java"
NestMembers:
  org.apache.catalina.startup.Catalina$CatalinaShutdownHook
InnerClasses:
  protected CatalinaShutdownHook = org.apache.catalina.startup.Catalina$CatalinaShutdownHook of org.apache.catalina.startup.Catalina
  public Resource = org.apache.tomcat.util.file.ConfigurationSource$Resource of org.apache.tomcat.util.file.ConfigurationSource