public class sun.tools.jar.Main
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.tools.jar.Main
  super_class: java.lang.Object
{
  java.lang.String program;
    descriptor: Ljava/lang/String;
    flags: (0x0000) 

  java.io.PrintStream out;
    descriptor: Ljava/io/PrintStream;
    flags: (0x0000) 

  java.io.PrintStream err;
    descriptor: Ljava/io/PrintStream;
    flags: (0x0000) 

  java.lang.String fname;
    descriptor: Ljava/lang/String;
    flags: (0x0000) 

  java.lang.String mname;
    descriptor: Ljava/lang/String;
    flags: (0x0000) 

  java.lang.String ename;
    descriptor: Ljava/lang/String;
    flags: (0x0000) 

  java.lang.String zname;
    descriptor: Ljava/lang/String;
    flags: (0x0000) 

  java.lang.String[] files;
    descriptor: [Ljava/lang/String;
    flags: (0x0000) 

  java.lang.String rootjar;
    descriptor: Ljava/lang/String;
    flags: (0x0000) 

  java.util.Map<java.lang.String, java.io.File> entryMap;
    descriptor: Ljava/util/Map;
    flags: (0x0000) 
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/io/File;>;

  java.util.Set<java.io.File> entries;
    descriptor: Ljava/util/Set;
    flags: (0x0000) 
    Signature: Ljava/util/Set<Ljava/io/File;>;

  java.util.Set<java.lang.String> paths;
    descriptor: Ljava/util/Set;
    flags: (0x0000) 
    Signature: Ljava/util/Set<Ljava/lang/String;>;

  boolean cflag;
    descriptor: Z
    flags: (0x0000) 

  boolean uflag;
    descriptor: Z
    flags: (0x0000) 

  boolean xflag;
    descriptor: Z
    flags: (0x0000) 

  boolean tflag;
    descriptor: Z
    flags: (0x0000) 

  boolean vflag;
    descriptor: Z
    flags: (0x0000) 

  boolean flag0;
    descriptor: Z
    flags: (0x0000) 

  boolean Mflag;
    descriptor: Z
    flags: (0x0000) 

  boolean iflag;
    descriptor: Z
    flags: (0x0000) 

  boolean pflag;
    descriptor: Z
    flags: (0x0000) 

  static final java.lang.String MANIFEST_DIR;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "META-INF/"

  static final java.lang.String VERSION;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "1.0"

  private static java.util.ResourceBundle rsrc;
    descriptor: Ljava/util/ResourceBundle;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static final boolean useExtractionTime;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

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

  private byte[] copyBuf;
    descriptor: [B
    flags: (0x0002) ACC_PRIVATE

  private java.util.HashSet<java.lang.String> jarPaths;
    descriptor: Ljava/util/HashSet;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/HashSet<Ljava/lang/String;>;

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 44
            ldc Lsun/tools/jar/Main;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic sun.tools.jar.Main.$assertionsDisabled:Z
         3: .line 87
            ldc "sun.tools.jar.useExtractionTime"
            invokestatic java.lang.Boolean.getBoolean:(Ljava/lang/String;)Z
         4: .line 86
            putstatic sun.tools.jar.Main.useExtractionTime:Z
         5: .line 94
            ldc "sun.tools.jar.resources.jar"
            invokestatic java.util.ResourceBundle.getBundle:(Ljava/lang/String;)Ljava/util/ResourceBundle;
            putstatic sun.tools.jar.Main.rsrc:Ljava/util/ResourceBundle;
         6: .line 95
            goto 9
      StackMap locals:
      StackMap stack: java.util.MissingResourceException
         7: pop
         8: .line 96
            new java.lang.Error
            dup
            ldc "Fatal: Resource for jar is missing"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 98
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           5     6       7  Class java.util.MissingResourceException

  private java.lang.String getMsg(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.String key
         0: .line 102
            getstatic sun.tools.jar.Main.rsrc:Ljava/util/ResourceBundle;
            aload 1 /* key */
            invokevirtual java.util.ResourceBundle.getString:(Ljava/lang/String;)Ljava/lang/String;
         1: areturn
         2: .line 103
      StackMap locals:
      StackMap stack: java.util.MissingResourceException
            pop
         3: .line 104
            new java.lang.Error
            dup
            ldc "Error in message file"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.lang.String key
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lsun/tools/jar/Main;
            0    4     1   key  Ljava/lang/String;
      Exception table:
        from    to  target  type
           0     1       2  Class java.util.MissingResourceException
    MethodParameters:
      Name  Flags
      key   

  private java.lang.String formatMsg(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.String key
        start local 2 // java.lang.String arg
         0: .line 109
            aload 0 /* this */
            aload 1 /* key */
            invokevirtual sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* msg */
        start local 3 // java.lang.String msg
         1: .line 110
            iconst_1
            anewarray java.lang.String
            astore 4 /* args */
        start local 4 // java.lang.String[] args
         2: .line 111
            aload 4 /* args */
            iconst_0
            aload 2 /* arg */
            aastore
         3: .line 112
            aload 3 /* msg */
            aload 4 /* args */
            invokestatic java.text.MessageFormat.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            areturn
        end local 4 // java.lang.String[] args
        end local 3 // java.lang.String msg
        end local 2 // java.lang.String arg
        end local 1 // java.lang.String key
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lsun/tools/jar/Main;
            0    4     1   key  Ljava/lang/String;
            0    4     2   arg  Ljava/lang/String;
            1    4     3   msg  Ljava/lang/String;
            2    4     4  args  [Ljava/lang/String;
    MethodParameters:
      Name  Flags
      key   
      arg   

  private java.lang.String formatMsg2(java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=4
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.String key
        start local 2 // java.lang.String arg
        start local 3 // java.lang.String arg1
         0: .line 116
            aload 0 /* this */
            aload 1 /* key */
            invokevirtual sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* msg */
        start local 4 // java.lang.String msg
         1: .line 117
            iconst_2
            anewarray java.lang.String
            astore 5 /* args */
        start local 5 // java.lang.String[] args
         2: .line 118
            aload 5 /* args */
            iconst_0
            aload 2 /* arg */
            aastore
         3: .line 119
            aload 5 /* args */
            iconst_1
            aload 3 /* arg1 */
            aastore
         4: .line 120
            aload 4 /* msg */
            aload 5 /* args */
            invokestatic java.text.MessageFormat.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            areturn
        end local 5 // java.lang.String[] args
        end local 4 // java.lang.String msg
        end local 3 // java.lang.String arg1
        end local 2 // java.lang.String arg
        end local 1 // java.lang.String key
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lsun/tools/jar/Main;
            0    5     1   key  Ljava/lang/String;
            0    5     2   arg  Ljava/lang/String;
            0    5     3  arg1  Ljava/lang/String;
            1    5     4   msg  Ljava/lang/String;
            2    5     5  args  [Ljava/lang/String;
    MethodParameters:
      Name  Flags
      key   
      arg   
      arg1  

  public void <init>(java.io.PrintStream, java.io.PrintStream, java.lang.String);
    descriptor: (Ljava/io/PrintStream;Ljava/io/PrintStream;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.io.PrintStream out
        start local 2 // java.io.PrintStream err
        start local 3 // java.lang.String program
         0: .line 123
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 48
            aload 0 /* this */
            ldc ""
            putfield sun.tools.jar.Main.zname:Ljava/lang/String;
         2: .line 50
            aload 0 /* this */
            aconst_null
            putfield sun.tools.jar.Main.rootjar:Ljava/lang/String;
         3: .line 55
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield sun.tools.jar.Main.entryMap:Ljava/util/Map;
         4: .line 58
            aload 0 /* this */
            new java.util.LinkedHashSet
            dup
            invokespecial java.util.LinkedHashSet.<init>:()V
            putfield sun.tools.jar.Main.entries:Ljava/util/Set;
         5: .line 61
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield sun.tools.jar.Main.paths:Ljava/util/Set;
         6: .line 803
            aload 0 /* this */
            sipush 8192
            newarray 8
            putfield sun.tools.jar.Main.copyBuf:[B
         7: .line 1079
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield sun.tools.jar.Main.jarPaths:Ljava/util/HashSet;
         8: .line 124
            aload 0 /* this */
            aload 1 /* out */
            putfield sun.tools.jar.Main.out:Ljava/io/PrintStream;
         9: .line 125
            aload 0 /* this */
            aload 2 /* err */
            putfield sun.tools.jar.Main.err:Ljava/io/PrintStream;
        10: .line 126
            aload 0 /* this */
            aload 3 /* program */
            putfield sun.tools.jar.Main.program:Ljava/lang/String;
        11: .line 127
            return
        end local 3 // java.lang.String program
        end local 2 // java.io.PrintStream err
        end local 1 // java.io.PrintStream out
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   12     0     this  Lsun/tools/jar/Main;
            0   12     1      out  Ljava/io/PrintStream;
            0   12     2      err  Ljava/io/PrintStream;
            0   12     3  program  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      out      
      err      
      program  

  private static java.io.File createTempFileInSameDirectoryAs(java.io.File);
    descriptor: (Ljava/io/File;)Ljava/io/File;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.io.File file
         0: .line 135
            aload 0 /* file */
            invokevirtual java.io.File.getParentFile:()Ljava/io/File;
            astore 1 /* dir */
        start local 1 // java.io.File dir
         1: .line 136
            aload 1 /* dir */
            ifnonnull 3
         2: .line 137
            new java.io.File
            dup
            ldc "."
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 1 /* dir */
         3: .line 138
      StackMap locals: java.io.File
      StackMap stack:
            ldc "jartmp"
            aconst_null
            aload 1 /* dir */
            invokestatic java.io.File.createTempFile:(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Ljava/io/File;
            areturn
        end local 1 // java.io.File dir
        end local 0 // java.io.File file
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  file  Ljava/io/File;
            1    4     1   dir  Ljava/io/File;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      file  

  public synchronized boolean run(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)Z
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=5, locals=8, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.String[] args
         0: .line 147
            aload 0 /* this */
            iconst_1
            putfield sun.tools.jar.Main.ok:Z
         1: .line 148
            aload 0 /* this */
            aload 1 /* args */
            invokevirtual sun.tools.jar.Main.parseArgs:([Ljava/lang/String;)Z
            ifne 3
         2: .line 149
            iconst_0
            ireturn
         3: .line 152
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.cflag:Z
            ifne 4
            aload 0 /* this */
            getfield sun.tools.jar.Main.uflag:Z
            ifeq 8
         4: .line 153
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            ifnull 8
         5: .line 157
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            getstatic java.io.File.separatorChar:C
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            putfield sun.tools.jar.Main.zname:Ljava/lang/String;
         6: .line 158
            aload 0 /* this */
            getfield sun.tools.jar.Main.zname:Ljava/lang/String;
            ldc "./"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 8
         7: .line 159
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.tools.jar.Main.zname:Ljava/lang/String;
            iconst_2
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            putfield sun.tools.jar.Main.zname:Ljava/lang/String;
         8: .line 163
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.cflag:Z
            ifeq 37
         9: .line 164
            aconst_null
            astore 2 /* manifest */
        start local 2 // java.util.jar.Manifest manifest
        10: .line 165
            aconst_null
            astore 3 /* in */
        start local 3 // java.io.InputStream in
        11: .line 167
            aload 0 /* this */
            getfield sun.tools.jar.Main.Mflag:Z
            ifne 25
        12: .line 168
            aload 0 /* this */
            getfield sun.tools.jar.Main.mname:Ljava/lang/String;
            ifnull 16
        13: .line 169
            new java.io.FileInputStream
            dup
            aload 0 /* this */
            getfield sun.tools.jar.Main.mname:Ljava/lang/String;
            invokespecial java.io.FileInputStream.<init>:(Ljava/lang/String;)V
            astore 3 /* in */
        14: .line 170
            new java.util.jar.Manifest
            dup
            new java.io.BufferedInputStream
            dup
            aload 3 /* in */
            invokespecial java.io.BufferedInputStream.<init>:(Ljava/io/InputStream;)V
            invokespecial java.util.jar.Manifest.<init>:(Ljava/io/InputStream;)V
            astore 2 /* manifest */
        15: .line 171
            goto 17
        16: .line 172
      StackMap locals: java.util.jar.Manifest java.io.InputStream
      StackMap stack:
            new java.util.jar.Manifest
            dup
            invokespecial java.util.jar.Manifest.<init>:()V
            astore 2 /* manifest */
        17: .line 174
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* manifest */
            invokevirtual sun.tools.jar.Main.addVersion:(Ljava/util/jar/Manifest;)V
        18: .line 175
            aload 0 /* this */
            aload 2 /* manifest */
            invokevirtual sun.tools.jar.Main.addCreatedBy:(Ljava/util/jar/Manifest;)V
        19: .line 176
            aload 0 /* this */
            aload 2 /* manifest */
            invokevirtual sun.tools.jar.Main.isAmbiguousMainClass:(Ljava/util/jar/Manifest;)Z
            ifeq 23
        20: .line 177
            aload 3 /* in */
            ifnull 22
        21: .line 178
            aload 3 /* in */
            invokevirtual java.io.InputStream.close:()V
        22: .line 180
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        23: .line 182
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.ename:Ljava/lang/String;
            ifnull 25
        24: .line 183
            aload 0 /* this */
            aload 2 /* manifest */
            aload 0 /* this */
            getfield sun.tools.jar.Main.ename:Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.addMainClass:(Ljava/util/jar/Manifest;Ljava/lang/String;)V
        25: .line 186
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            aload 0 /* this */
            getfield sun.tools.jar.Main.files:[Ljava/lang/String;
            iconst_0
            invokevirtual sun.tools.jar.Main.expand:(Ljava/io/File;[Ljava/lang/String;Z)V
        26: .line 188
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            ifnull 29
        27: .line 189
            new java.io.FileOutputStream
            dup
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            invokespecial java.io.FileOutputStream.<init>:(Ljava/lang/String;)V
            astore 4 /* out */
        start local 4 // java.io.OutputStream out
        28: .line 190
            goto 32
        end local 4 // java.io.OutputStream out
        29: .line 191
      StackMap locals:
      StackMap stack:
            new java.io.FileOutputStream
            dup
            getstatic java.io.FileDescriptor.out:Ljava/io/FileDescriptor;
            invokespecial java.io.FileOutputStream.<init>:(Ljava/io/FileDescriptor;)V
            astore 4 /* out */
        start local 4 // java.io.OutputStream out
        30: .line 192
            aload 0 /* this */
            getfield sun.tools.jar.Main.vflag:Z
            ifeq 32
        31: .line 196
            aload 0 /* this */
            iconst_0
            putfield sun.tools.jar.Main.vflag:Z
        32: .line 199
      StackMap locals: java.io.OutputStream
      StackMap stack:
            aload 0 /* this */
            new java.io.BufferedOutputStream
            dup
            aload 4 /* out */
            sipush 4096
            invokespecial java.io.BufferedOutputStream.<init>:(Ljava/io/OutputStream;I)V
            aload 2 /* manifest */
            invokevirtual sun.tools.jar.Main.create:(Ljava/io/OutputStream;Ljava/util/jar/Manifest;)V
        33: .line 200
            aload 3 /* in */
            ifnull 35
        34: .line 201
            aload 3 /* in */
            invokevirtual java.io.InputStream.close:()V
        35: .line 203
      StackMap locals:
      StackMap stack:
            aload 4 /* out */
            invokevirtual java.io.OutputStream.close:()V
        end local 4 // java.io.OutputStream out
        end local 3 // java.io.InputStream in
        end local 2 // java.util.jar.Manifest manifest
        36: .line 204
            goto 113
      StackMap locals:
      StackMap stack:
        37: aload 0 /* this */
            getfield sun.tools.jar.Main.uflag:Z
            ifeq 70
        38: .line 205
            aconst_null
            astore 2 /* inputFile */
        start local 2 // java.io.File inputFile
        39: aconst_null
            astore 3 /* tmpFile */
        start local 3 // java.io.File tmpFile
        40: .line 208
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            ifnull 46
        41: .line 209
            new java.io.File
            dup
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 2 /* inputFile */
        42: .line 210
            aload 2 /* inputFile */
            invokestatic sun.tools.jar.Main.createTempFileInSameDirectoryAs:(Ljava/io/File;)Ljava/io/File;
            astore 3 /* tmpFile */
        43: .line 211
            new java.io.FileInputStream
            dup
            aload 2 /* inputFile */
            invokespecial java.io.FileInputStream.<init>:(Ljava/io/File;)V
            astore 4 /* in */
        start local 4 // java.io.FileInputStream in
        44: .line 212
            new java.io.FileOutputStream
            dup
            aload 3 /* tmpFile */
            invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;)V
            astore 5 /* out */
        start local 5 // java.io.FileOutputStream out
        45: .line 213
            goto 49
        end local 5 // java.io.FileOutputStream out
        end local 4 // java.io.FileInputStream in
        46: .line 214
      StackMap locals: java.io.File java.io.File
      StackMap stack:
            new java.io.FileInputStream
            dup
            getstatic java.io.FileDescriptor.in:Ljava/io/FileDescriptor;
            invokespecial java.io.FileInputStream.<init>:(Ljava/io/FileDescriptor;)V
            astore 4 /* in */
        start local 4 // java.io.FileInputStream in
        47: .line 215
            new java.io.FileOutputStream
            dup
            getstatic java.io.FileDescriptor.out:Ljava/io/FileDescriptor;
            invokespecial java.io.FileOutputStream.<init>:(Ljava/io/FileDescriptor;)V
            astore 5 /* out */
        start local 5 // java.io.FileOutputStream out
        48: .line 216
            aload 0 /* this */
            iconst_0
            putfield sun.tools.jar.Main.vflag:Z
        49: .line 218
      StackMap locals: java.io.FileInputStream java.io.FileOutputStream
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.Mflag:Z
            ifne 51
            aload 0 /* this */
            getfield sun.tools.jar.Main.mname:Ljava/lang/String;
            ifnull 51
        50: .line 219
            new java.io.FileInputStream
            dup
            aload 0 /* this */
            getfield sun.tools.jar.Main.mname:Ljava/lang/String;
            invokespecial java.io.FileInputStream.<init>:(Ljava/lang/String;)V
            goto 52
      StackMap locals:
      StackMap stack:
        51: aconst_null
        52: .line 218
      StackMap locals:
      StackMap stack: java.io.FileInputStream
            astore 6 /* manifest */
        start local 6 // java.io.InputStream manifest
        53: .line 220
            aload 0 /* this */
            aconst_null
            aload 0 /* this */
            getfield sun.tools.jar.Main.files:[Ljava/lang/String;
            iconst_1
            invokevirtual sun.tools.jar.Main.expand:(Ljava/io/File;[Ljava/lang/String;Z)V
        54: .line 221
            aload 0 /* this */
            aload 4 /* in */
            new java.io.BufferedOutputStream
            dup
            aload 5 /* out */
            invokespecial java.io.BufferedOutputStream.<init>:(Ljava/io/OutputStream;)V
        55: .line 222
            aload 6 /* manifest */
            aconst_null
        56: .line 221
            invokevirtual sun.tools.jar.Main.update:(Ljava/io/InputStream;Ljava/io/OutputStream;Ljava/io/InputStream;Lsun/misc/JarIndex;)Z
            istore 7 /* updateOk */
        start local 7 // boolean updateOk
        57: .line 223
            aload 0 /* this */
            getfield sun.tools.jar.Main.ok:Z
            ifeq 59
        58: .line 224
            aload 0 /* this */
            iload 7 /* updateOk */
            putfield sun.tools.jar.Main.ok:Z
        59: .line 226
      StackMap locals: java.io.InputStream int
      StackMap stack:
            aload 4 /* in */
            invokevirtual java.io.FileInputStream.close:()V
        60: .line 227
            aload 5 /* out */
            invokevirtual java.io.FileOutputStream.close:()V
        61: .line 228
            aload 6 /* manifest */
            ifnull 63
        62: .line 229
            aload 6 /* manifest */
            invokevirtual java.io.InputStream.close:()V
        63: .line 231
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            ifnull 113
        64: .line 233
            aload 2 /* inputFile */
            invokevirtual java.io.File.delete:()Z
            pop
        65: .line 234
            aload 3 /* tmpFile */
            aload 2 /* inputFile */
            invokevirtual java.io.File.renameTo:(Ljava/io/File;)Z
            ifne 68
        66: .line 235
            aload 3 /* tmpFile */
            invokevirtual java.io.File.delete:()Z
            pop
        67: .line 236
            new java.io.IOException
            dup
            aload 0 /* this */
            ldc "error.write.file"
            invokevirtual sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        68: .line 238
      StackMap locals:
      StackMap stack:
            aload 3 /* tmpFile */
            invokevirtual java.io.File.delete:()Z
            pop
        end local 7 // boolean updateOk
        end local 6 // java.io.InputStream manifest
        end local 5 // java.io.FileOutputStream out
        end local 4 // java.io.FileInputStream in
        end local 3 // java.io.File tmpFile
        end local 2 // java.io.File inputFile
        69: .line 240
            goto 113
      StackMap locals: sun.tools.jar.Main java.lang.String[]
      StackMap stack:
        70: aload 0 /* this */
            getfield sun.tools.jar.Main.tflag:Z
            ifeq 83
        71: .line 241
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.tools.jar.Main.files:[Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.replaceFSC:([Ljava/lang/String;)V
        72: .line 242
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            ifnull 75
        73: .line 243
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            aload 0 /* this */
            getfield sun.tools.jar.Main.files:[Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.list:(Ljava/lang/String;[Ljava/lang/String;)V
        74: .line 244
            goto 113
        75: .line 245
      StackMap locals:
      StackMap stack:
            new java.io.FileInputStream
            dup
            getstatic java.io.FileDescriptor.in:Ljava/io/FileDescriptor;
            invokespecial java.io.FileInputStream.<init>:(Ljava/io/FileDescriptor;)V
            astore 2 /* in */
        start local 2 // java.io.InputStream in
        76: .line 247
            aload 0 /* this */
            new java.io.BufferedInputStream
            dup
            aload 2 /* in */
            invokespecial java.io.BufferedInputStream.<init>:(Ljava/io/InputStream;)V
            aload 0 /* this */
            getfield sun.tools.jar.Main.files:[Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.list:(Ljava/io/InputStream;[Ljava/lang/String;)V
        77: .line 248
            goto 81
      StackMap locals: sun.tools.jar.Main java.lang.String[] java.io.InputStream
      StackMap stack: java.lang.Throwable
        78: astore 3
        79: .line 249
            aload 2 /* in */
            invokevirtual java.io.InputStream.close:()V
        80: .line 250
            aload 3
            athrow
        81: .line 249
      StackMap locals:
      StackMap stack:
            aload 2 /* in */
            invokevirtual java.io.InputStream.close:()V
        end local 2 // java.io.InputStream in
        82: .line 252
            goto 113
      StackMap locals:
      StackMap stack:
        83: aload 0 /* this */
            getfield sun.tools.jar.Main.xflag:Z
            ifeq 99
        84: .line 253
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.tools.jar.Main.files:[Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.replaceFSC:([Ljava/lang/String;)V
        85: .line 254
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            ifnull 88
            aload 0 /* this */
            getfield sun.tools.jar.Main.files:[Ljava/lang/String;
            ifnull 88
        86: .line 255
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            aload 0 /* this */
            getfield sun.tools.jar.Main.files:[Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.extract:(Ljava/lang/String;[Ljava/lang/String;)V
        87: .line 256
            goto 113
        88: .line 257
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            ifnonnull 90
        89: .line 258
            new java.io.FileInputStream
            dup
            getstatic java.io.FileDescriptor.in:Ljava/io/FileDescriptor;
            invokespecial java.io.FileInputStream.<init>:(Ljava/io/FileDescriptor;)V
            goto 91
        90: .line 259
      StackMap locals:
      StackMap stack:
            new java.io.FileInputStream
            dup
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            invokespecial java.io.FileInputStream.<init>:(Ljava/lang/String;)V
        91: .line 257
      StackMap locals:
      StackMap stack: java.io.FileInputStream
            astore 2 /* in */
        start local 2 // java.io.InputStream in
        92: .line 261
            aload 0 /* this */
            new java.io.BufferedInputStream
            dup
            aload 2 /* in */
            invokespecial java.io.BufferedInputStream.<init>:(Ljava/io/InputStream;)V
            aload 0 /* this */
            getfield sun.tools.jar.Main.files:[Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.extract:(Ljava/io/InputStream;[Ljava/lang/String;)V
        93: .line 262
            goto 97
      StackMap locals: sun.tools.jar.Main java.lang.String[] java.io.InputStream
      StackMap stack: java.lang.Throwable
        94: astore 3
        95: .line 263
            aload 2 /* in */
            invokevirtual java.io.InputStream.close:()V
        96: .line 264
            aload 3
            athrow
        97: .line 263
      StackMap locals:
      StackMap stack:
            aload 2 /* in */
            invokevirtual java.io.InputStream.close:()V
        end local 2 // java.io.InputStream in
        98: .line 266
            goto 113
      StackMap locals:
      StackMap stack:
        99: aload 0 /* this */
            getfield sun.tools.jar.Main.iflag:Z
            ifeq 113
       100: .line 267
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.tools.jar.Main.rootjar:Ljava/lang/String;
            aload 0 /* this */
            getfield sun.tools.jar.Main.files:[Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.genIndex:(Ljava/lang/String;[Ljava/lang/String;)V
       101: .line 269
            goto 113
      StackMap locals:
      StackMap stack: java.io.IOException
       102: astore 2 /* e */
        start local 2 // java.io.IOException e
       103: .line 270
            aload 0 /* this */
            aload 2 /* e */
            invokevirtual sun.tools.jar.Main.fatalError:(Ljava/lang/Exception;)V
       104: .line 271
            aload 0 /* this */
            iconst_0
            putfield sun.tools.jar.Main.ok:Z
        end local 2 // java.io.IOException e
       105: goto 113
       106: .line 272
      StackMap locals:
      StackMap stack: java.lang.Error
            astore 2 /* ee */
        start local 2 // java.lang.Error ee
       107: .line 273
            aload 2 /* ee */
            invokevirtual java.lang.Error.printStackTrace:()V
       108: .line 274
            aload 0 /* this */
            iconst_0
            putfield sun.tools.jar.Main.ok:Z
        end local 2 // java.lang.Error ee
       109: goto 113
       110: .line 275
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 2 /* t */
        start local 2 // java.lang.Throwable t
       111: .line 276
            aload 2 /* t */
            invokevirtual java.lang.Throwable.printStackTrace:()V
       112: .line 277
            aload 0 /* this */
            iconst_0
            putfield sun.tools.jar.Main.ok:Z
        end local 2 // java.lang.Throwable t
       113: .line 279
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.out:Ljava/io/PrintStream;
            invokevirtual java.io.PrintStream.flush:()V
       114: .line 280
            aload 0 /* this */
            getfield sun.tools.jar.Main.err:Ljava/io/PrintStream;
            invokevirtual java.io.PrintStream.flush:()V
       115: .line 281
            aload 0 /* this */
            getfield sun.tools.jar.Main.ok:Z
            ireturn
        end local 1 // java.lang.String[] args
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0  116     0       this  Lsun/tools/jar/Main;
            0  116     1       args  [Ljava/lang/String;
           10   36     2   manifest  Ljava/util/jar/Manifest;
           11   36     3         in  Ljava/io/InputStream;
           28   29     4        out  Ljava/io/OutputStream;
           30   36     4        out  Ljava/io/OutputStream;
           39   69     2  inputFile  Ljava/io/File;
           40   69     3    tmpFile  Ljava/io/File;
           44   46     4         in  Ljava/io/FileInputStream;
           47   69     4         in  Ljava/io/FileInputStream;
           45   46     5        out  Ljava/io/FileOutputStream;
           48   69     5        out  Ljava/io/FileOutputStream;
           53   69     6   manifest  Ljava/io/InputStream;
           57   69     7   updateOk  Z
           76   82     2         in  Ljava/io/InputStream;
           92   98     2         in  Ljava/io/InputStream;
          103  105     2          e  Ljava/io/IOException;
          107  109     2         ee  Ljava/lang/Error;
          111  113     2          t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          76    78      78  any
          92    94      94  any
           3    22     102  Class java.io.IOException
          23   101     102  Class java.io.IOException
           3    22     106  Class java.lang.Error
          23   101     106  Class java.lang.Error
           3    22     110  Class java.lang.Throwable
          23   101     110  Class java.lang.Throwable
    MethodParameters:
      Name  Flags
      args  

  boolean parseArgs(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)Z
    flags: (0x0000) 
    Code:
      stack=5, locals=8, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.String[] args
         0: .line 290
            aload 1 /* args */
            invokestatic sun.tools.jar.CommandLine.parse:([Ljava/lang/String;)[Ljava/lang/String;
            astore 1 /* args */
         1: .line 291
            goto 8
      StackMap locals:
      StackMap stack: java.io.FileNotFoundException
         2: astore 2 /* e */
        start local 2 // java.io.FileNotFoundException e
         3: .line 292
            aload 0 /* this */
            aload 0 /* this */
            ldc "error.cant.open"
            aload 2 /* e */
            invokevirtual java.io.FileNotFoundException.getMessage:()Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.fatalError:(Ljava/lang/String;)V
         4: .line 293
            iconst_0
            ireturn
        end local 2 // java.io.FileNotFoundException e
         5: .line 294
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 2 /* e */
        start local 2 // java.io.IOException e
         6: .line 295
            aload 0 /* this */
            aload 2 /* e */
            invokevirtual sun.tools.jar.Main.fatalError:(Ljava/lang/Exception;)V
         7: .line 296
            iconst_0
            ireturn
        end local 2 // java.io.IOException e
         8: .line 299
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 2 /* count */
        start local 2 // int count
         9: .line 301
            aload 1 /* args */
            iconst_0
            aaload
            astore 3 /* flags */
        start local 3 // java.lang.String flags
        10: .line 302
            aload 3 /* flags */
            ldc "-"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 12
        11: .line 303
            aload 3 /* flags */
            iconst_1
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 3 /* flags */
        12: .line 305
      StackMap locals: int java.lang.String
      StackMap stack:
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        13: goto 58
        14: .line 306
      StackMap locals: int
      StackMap stack:
            aload 3 /* flags */
            iload 4 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            lookupswitch { // 12
                   48: 43
                   77: 35
                   80: 50
                   99: 15
                  101: 48
                  102: 39
                  105: 45
                  109: 41
                  116: 30
                  117: 20
                  118: 37
                  120: 25
              default: 52
          }
        15: .line 308
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.xflag:Z
            ifne 16
            aload 0 /* this */
            getfield sun.tools.jar.Main.tflag:Z
            ifne 16
            aload 0 /* this */
            getfield sun.tools.jar.Main.uflag:Z
            ifeq 18
        16: .line 309
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.tools.jar.Main.usageError:()V
        17: .line 310
            iconst_0
            ireturn
        18: .line 312
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.tools.jar.Main.cflag:Z
        19: .line 313
            goto 57
        20: .line 315
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.cflag:Z
            ifne 21
            aload 0 /* this */
            getfield sun.tools.jar.Main.xflag:Z
            ifne 21
            aload 0 /* this */
            getfield sun.tools.jar.Main.tflag:Z
            ifeq 23
        21: .line 316
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.tools.jar.Main.usageError:()V
        22: .line 317
            iconst_0
            ireturn
        23: .line 319
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.tools.jar.Main.uflag:Z
        24: .line 320
            goto 57
        25: .line 322
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.cflag:Z
            ifne 26
            aload 0 /* this */
            getfield sun.tools.jar.Main.uflag:Z
            ifne 26
            aload 0 /* this */
            getfield sun.tools.jar.Main.tflag:Z
            ifeq 28
        26: .line 323
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.tools.jar.Main.usageError:()V
        27: .line 324
            iconst_0
            ireturn
        28: .line 326
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.tools.jar.Main.xflag:Z
        29: .line 327
            goto 57
        30: .line 329
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.cflag:Z
            ifne 31
            aload 0 /* this */
            getfield sun.tools.jar.Main.uflag:Z
            ifne 31
            aload 0 /* this */
            getfield sun.tools.jar.Main.xflag:Z
            ifeq 33
        31: .line 330
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.tools.jar.Main.usageError:()V
        32: .line 331
            iconst_0
            ireturn
        33: .line 333
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.tools.jar.Main.tflag:Z
        34: .line 334
            goto 57
        35: .line 336
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.tools.jar.Main.Mflag:Z
        36: .line 337
            goto 57
        37: .line 339
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.tools.jar.Main.vflag:Z
        38: .line 340
            goto 57
        39: .line 342
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* args */
            iload 2 /* count */
            iinc 2 /* count */ 1
            aaload
            putfield sun.tools.jar.Main.fname:Ljava/lang/String;
        40: .line 343
            goto 57
        41: .line 345
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* args */
            iload 2 /* count */
            iinc 2 /* count */ 1
            aaload
            putfield sun.tools.jar.Main.mname:Ljava/lang/String;
        42: .line 346
            goto 57
        43: .line 348
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.tools.jar.Main.flag0:Z
        44: .line 349
            goto 57
        45: .line 352
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* args */
            iload 2 /* count */
            iinc 2 /* count */ 1
            aaload
            putfield sun.tools.jar.Main.rootjar:Ljava/lang/String;
        46: .line 353
            aload 0 /* this */
            iconst_1
            putfield sun.tools.jar.Main.iflag:Z
        47: .line 354
            goto 57
        48: .line 356
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* args */
            iload 2 /* count */
            iinc 2 /* count */ 1
            aaload
            putfield sun.tools.jar.Main.ename:Ljava/lang/String;
        49: .line 357
            goto 57
        50: .line 359
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.tools.jar.Main.pflag:Z
        51: .line 360
            goto 57
        52: .line 362
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            ldc "error.illegal.option"
        53: .line 363
            aload 3 /* flags */
            iload 4 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic java.lang.String.valueOf:(C)Ljava/lang/String;
        54: .line 362
            invokevirtual sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.error:(Ljava/lang/String;)V
        55: .line 364
            aload 0 /* this */
            invokevirtual sun.tools.jar.Main.usageError:()V
        56: .line 365
            iconst_0
            ireturn
        57: .line 305
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        58: iload 4 /* i */
            aload 3 /* flags */
            invokevirtual java.lang.String.length:()I
            if_icmplt 14
        end local 4 // int i
        end local 3 // java.lang.String flags
        59: .line 368
            goto 63
      StackMap locals: sun.tools.jar.Main java.lang.String[] int
      StackMap stack: java.lang.ArrayIndexOutOfBoundsException
        60: pop
        61: .line 369
            aload 0 /* this */
            invokevirtual sun.tools.jar.Main.usageError:()V
        62: .line 370
            iconst_0
            ireturn
        63: .line 372
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.cflag:Z
            ifne 67
            aload 0 /* this */
            getfield sun.tools.jar.Main.tflag:Z
            ifne 67
            aload 0 /* this */
            getfield sun.tools.jar.Main.xflag:Z
            ifne 67
            aload 0 /* this */
            getfield sun.tools.jar.Main.uflag:Z
            ifne 67
            aload 0 /* this */
            getfield sun.tools.jar.Main.iflag:Z
            ifne 67
        64: .line 373
            aload 0 /* this */
            aload 0 /* this */
            ldc "error.bad.option"
            invokevirtual sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.error:(Ljava/lang/String;)V
        65: .line 374
            aload 0 /* this */
            invokevirtual sun.tools.jar.Main.usageError:()V
        66: .line 375
            iconst_0
            ireturn
        67: .line 378
      StackMap locals:
      StackMap stack:
            aload 1 /* args */
            arraylength
            iload 2 /* count */
            isub
            istore 3 /* n */
        start local 3 // int n
        68: .line 379
            iload 3 /* n */
            ifle 96
        69: .line 380
            iconst_0
            istore 4 /* k */
        start local 4 // int k
        70: .line 381
            iload 3 /* n */
            anewarray java.lang.String
            astore 5 /* nameBuf */
        start local 5 // java.lang.String[] nameBuf
        71: .line 383
            iload 2 /* count */
            istore 6 /* i */
        start local 6 // int i
        72: goto 88
        73: .line 384
      StackMap locals: sun.tools.jar.Main java.lang.String[] int int int java.lang.String[] int
      StackMap stack:
            aload 1 /* args */
            iload 6 /* i */
            aaload
            ldc "-C"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 86
        74: .line 386
            aload 1 /* args */
            iinc 6 /* i */ 1
            iload 6 /* i */
            aaload
            astore 7 /* dir */
        start local 7 // java.lang.String dir
        75: .line 387
            aload 7 /* dir */
            getstatic java.io.File.separator:Ljava/lang/String;
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 77
        76: .line 388
            aload 7 /* dir */
            goto 78
      StackMap locals: java.lang.String
      StackMap stack:
        77: new java.lang.StringBuilder
            dup
            aload 7 /* dir */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic java.io.File.separator:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        78: .line 387
      StackMap locals:
      StackMap stack: java.lang.String
            astore 7 /* dir */
        79: .line 389
            aload 7 /* dir */
            getstatic java.io.File.separatorChar:C
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            astore 7 /* dir */
        80: .line 390
            goto 82
        81: .line 391
      StackMap locals:
      StackMap stack:
            aload 7 /* dir */
            ldc "//"
            ldc "/"
            invokevirtual java.lang.String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
            astore 7 /* dir */
        82: .line 390
      StackMap locals:
      StackMap stack:
            aload 7 /* dir */
            ldc "//"
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            iconst_m1
            if_icmpgt 81
        83: .line 393
            aload 0 /* this */
            getfield sun.tools.jar.Main.paths:Ljava/util/Set;
            aload 7 /* dir */
            getstatic java.io.File.separatorChar:C
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        84: .line 394
            aload 5 /* nameBuf */
            iload 4 /* k */
            iinc 4 /* k */ 1
            new java.lang.StringBuilder
            dup
            aload 7 /* dir */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* args */
            iinc 6 /* i */ 1
            iload 6 /* i */
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aastore
        end local 7 // java.lang.String dir
        85: .line 395
            goto 87
        86: .line 396
      StackMap locals:
      StackMap stack:
            aload 5 /* nameBuf */
            iload 4 /* k */
            iinc 4 /* k */ 1
            aload 1 /* args */
            iload 6 /* i */
            aaload
            aastore
        87: .line 383
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        88: iload 6 /* i */
            aload 1 /* args */
            arraylength
            if_icmplt 73
        end local 6 // int i
        89: .line 399
            goto 93
      StackMap locals: sun.tools.jar.Main java.lang.String[] int int int java.lang.String[]
      StackMap stack: java.lang.ArrayIndexOutOfBoundsException
        90: pop
        91: .line 400
            aload 0 /* this */
            invokevirtual sun.tools.jar.Main.usageError:()V
        92: .line 401
            iconst_0
            ireturn
        93: .line 403
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 4 /* k */
            anewarray java.lang.String
            putfield sun.tools.jar.Main.files:[Ljava/lang/String;
        94: .line 404
            aload 5 /* nameBuf */
            iconst_0
            aload 0 /* this */
            getfield sun.tools.jar.Main.files:[Ljava/lang/String;
            iconst_0
            iload 4 /* k */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        end local 5 // java.lang.String[] nameBuf
        end local 4 // int k
        95: .line 405
            goto 106
      StackMap locals:
      StackMap stack:
        96: aload 0 /* this */
            getfield sun.tools.jar.Main.cflag:Z
            ifeq 100
            aload 0 /* this */
            getfield sun.tools.jar.Main.mname:Ljava/lang/String;
            ifnonnull 100
        97: .line 406
            aload 0 /* this */
            aload 0 /* this */
            ldc "error.bad.cflag"
            invokevirtual sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.error:(Ljava/lang/String;)V
        98: .line 407
            aload 0 /* this */
            invokevirtual sun.tools.jar.Main.usageError:()V
        99: .line 408
            iconst_0
            ireturn
       100: .line 409
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.uflag:Z
            ifeq 106
       101: .line 410
            aload 0 /* this */
            getfield sun.tools.jar.Main.mname:Ljava/lang/String;
            ifnonnull 102
            aload 0 /* this */
            getfield sun.tools.jar.Main.ename:Ljava/lang/String;
            ifnull 103
       102: .line 412
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
       103: .line 414
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            ldc "error.bad.uflag"
            invokevirtual sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.error:(Ljava/lang/String;)V
       104: .line 415
            aload 0 /* this */
            invokevirtual sun.tools.jar.Main.usageError:()V
       105: .line 416
            iconst_0
            ireturn
       106: .line 419
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 3 // int n
        end local 2 // int count
        end local 1 // java.lang.String[] args
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0  107     0     this  Lsun/tools/jar/Main;
            0  107     1     args  [Ljava/lang/String;
            3    5     2        e  Ljava/io/FileNotFoundException;
            6    8     2        e  Ljava/io/IOException;
            9  107     2    count  I
           10   59     3    flags  Ljava/lang/String;
           13   59     4        i  I
           68  107     3        n  I
           70   95     4        k  I
           71   95     5  nameBuf  [Ljava/lang/String;
           72   89     6        i  I
           75   85     7      dir  Ljava/lang/String;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.FileNotFoundException
           0     1       5  Class java.io.IOException
           9    17      60  Class java.lang.ArrayIndexOutOfBoundsException
          18    22      60  Class java.lang.ArrayIndexOutOfBoundsException
          23    27      60  Class java.lang.ArrayIndexOutOfBoundsException
          28    32      60  Class java.lang.ArrayIndexOutOfBoundsException
          33    56      60  Class java.lang.ArrayIndexOutOfBoundsException
          57    59      60  Class java.lang.ArrayIndexOutOfBoundsException
          71    89      90  Class java.lang.ArrayIndexOutOfBoundsException
    MethodParameters:
      Name  Flags
      args  

  void expand(java.io.File, java.lang.String[], boolean);
    descriptor: (Ljava/io/File;[Ljava/lang/String;Z)V
    flags: (0x0000) 
    Code:
      stack=5, locals=7, args_size=4
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.io.File dir
        start local 2 // java.lang.String[] files
        start local 3 // boolean isUpdate
         0: .line 427
            aload 2 /* files */
            ifnonnull 2
         1: .line 428
            return
         2: .line 430
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         3: goto 26
         4: .line 432
      StackMap locals: int
      StackMap stack:
            aload 1 /* dir */
            ifnonnull 7
         5: .line 433
            new java.io.File
            dup
            aload 2 /* files */
            iload 4 /* i */
            aaload
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 5 /* f */
        start local 5 // java.io.File f
         6: .line 434
            goto 8
        end local 5 // java.io.File f
         7: .line 435
      StackMap locals:
      StackMap stack:
            new java.io.File
            dup
            aload 1 /* dir */
            aload 2 /* files */
            iload 4 /* i */
            aaload
            invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
            astore 5 /* f */
        start local 5 // java.io.File f
         8: .line 437
      StackMap locals: java.io.File
      StackMap stack:
            aload 5 /* f */
            invokevirtual java.io.File.isFile:()Z
            ifeq 13
         9: .line 438
            aload 0 /* this */
            getfield sun.tools.jar.Main.entries:Ljava/util/Set;
            aload 5 /* f */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            ifeq 25
        10: .line 439
            iload 3 /* isUpdate */
            ifeq 25
        11: .line 440
            aload 0 /* this */
            getfield sun.tools.jar.Main.entryMap:Ljava/util/Map;
            aload 0 /* this */
            aload 5 /* f */
            invokevirtual java.io.File.getPath:()Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.entryName:(Ljava/lang/String;)Ljava/lang/String;
            aload 5 /* f */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        12: .line 442
            goto 25
      StackMap locals:
      StackMap stack:
        13: aload 5 /* f */
            invokevirtual java.io.File.isDirectory:()Z
            ifeq 23
        14: .line 443
            aload 0 /* this */
            getfield sun.tools.jar.Main.entries:Ljava/util/Set;
            aload 5 /* f */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            ifeq 25
        15: .line 444
            iload 3 /* isUpdate */
            ifeq 21
        16: .line 445
            aload 5 /* f */
            invokevirtual java.io.File.getPath:()Ljava/lang/String;
            astore 6 /* dirPath */
        start local 6 // java.lang.String dirPath
        17: .line 446
            aload 6 /* dirPath */
            getstatic java.io.File.separator:Ljava/lang/String;
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 18
            aload 6 /* dirPath */
            goto 19
        18: .line 447
      StackMap locals: java.lang.String
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 6 /* dirPath */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic java.io.File.separator:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        19: .line 446
      StackMap locals:
      StackMap stack: java.lang.String
            astore 6 /* dirPath */
        20: .line 448
            aload 0 /* this */
            getfield sun.tools.jar.Main.entryMap:Ljava/util/Map;
            aload 0 /* this */
            aload 6 /* dirPath */
            invokevirtual sun.tools.jar.Main.entryName:(Ljava/lang/String;)Ljava/lang/String;
            aload 5 /* f */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 6 // java.lang.String dirPath
        21: .line 450
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 5 /* f */
            aload 5 /* f */
            invokevirtual java.io.File.list:()[Ljava/lang/String;
            iload 3 /* isUpdate */
            invokevirtual sun.tools.jar.Main.expand:(Ljava/io/File;[Ljava/lang/String;Z)V
        22: .line 452
            goto 25
        23: .line 453
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            ldc "error.nosuch.fileordir"
            aload 5 /* f */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.error:(Ljava/lang/String;)V
        24: .line 454
            aload 0 /* this */
            iconst_0
            putfield sun.tools.jar.Main.ok:Z
        end local 5 // java.io.File f
        25: .line 430
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        26: iload 4 /* i */
            aload 2 /* files */
            arraylength
            if_icmplt 4
        end local 4 // int i
        27: .line 457
            return
        end local 3 // boolean isUpdate
        end local 2 // java.lang.String[] files
        end local 1 // java.io.File dir
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   28     0      this  Lsun/tools/jar/Main;
            0   28     1       dir  Ljava/io/File;
            0   28     2     files  [Ljava/lang/String;
            0   28     3  isUpdate  Z
            3   27     4         i  I
            6    7     5         f  Ljava/io/File;
            8   25     5         f  Ljava/io/File;
           17   21     6   dirPath  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      dir       
      files     
      isUpdate  

  void create(java.io.OutputStream, java.util.jar.Manifest);
    descriptor: (Ljava/io/OutputStream;Ljava/util/jar/Manifest;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.io.OutputStream out
        start local 2 // java.util.jar.Manifest manifest
         0: .line 465
            new java.util.jar.JarOutputStream
            dup
            aload 1 /* out */
            invokespecial java.util.jar.JarOutputStream.<init>:(Ljava/io/OutputStream;)V
            astore 3 /* zos */
        start local 3 // java.util.zip.ZipOutputStream zos
         1: .line 466
            aload 0 /* this */
            getfield sun.tools.jar.Main.flag0:Z
            ifeq 3
         2: .line 467
            aload 3 /* zos */
            iconst_0
            invokevirtual java.util.zip.ZipOutputStream.setMethod:(I)V
         3: .line 469
      StackMap locals: java.util.zip.ZipOutputStream
      StackMap stack:
            aload 2 /* manifest */
            ifnull 18
         4: .line 470
            aload 0 /* this */
            getfield sun.tools.jar.Main.vflag:Z
            ifeq 6
         5: .line 471
            aload 0 /* this */
            aload 0 /* this */
            ldc "out.added.manifest"
            invokevirtual sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
         6: .line 473
      StackMap locals:
      StackMap stack:
            new java.util.zip.ZipEntry
            dup
            ldc "META-INF/"
            invokespecial java.util.zip.ZipEntry.<init>:(Ljava/lang/String;)V
            astore 4 /* e */
        start local 4 // java.util.zip.ZipEntry e
         7: .line 474
            aload 4 /* e */
            invokestatic java.lang.System.currentTimeMillis:()J
            invokevirtual java.util.zip.ZipEntry.setTime:(J)V
         8: .line 475
            aload 4 /* e */
            lconst_0
            invokevirtual java.util.zip.ZipEntry.setSize:(J)V
         9: .line 476
            aload 4 /* e */
            lconst_0
            invokevirtual java.util.zip.ZipEntry.setCrc:(J)V
        10: .line 477
            aload 3 /* zos */
            aload 4 /* e */
            invokevirtual java.util.zip.ZipOutputStream.putNextEntry:(Ljava/util/zip/ZipEntry;)V
        11: .line 478
            new java.util.zip.ZipEntry
            dup
            ldc "META-INF/MANIFEST.MF"
            invokespecial java.util.zip.ZipEntry.<init>:(Ljava/lang/String;)V
            astore 4 /* e */
        12: .line 479
            aload 4 /* e */
            invokestatic java.lang.System.currentTimeMillis:()J
            invokevirtual java.util.zip.ZipEntry.setTime:(J)V
        13: .line 480
            aload 0 /* this */
            getfield sun.tools.jar.Main.flag0:Z
            ifeq 15
        14: .line 481
            aload 0 /* this */
            aload 4 /* e */
            aload 2 /* manifest */
            invokevirtual sun.tools.jar.Main.crc32Manifest:(Ljava/util/zip/ZipEntry;Ljava/util/jar/Manifest;)V
        15: .line 483
      StackMap locals: java.util.zip.ZipEntry
      StackMap stack:
            aload 3 /* zos */
            aload 4 /* e */
            invokevirtual java.util.zip.ZipOutputStream.putNextEntry:(Ljava/util/zip/ZipEntry;)V
        16: .line 484
            aload 2 /* manifest */
            aload 3 /* zos */
            invokevirtual java.util.jar.Manifest.write:(Ljava/io/OutputStream;)V
        17: .line 485
            aload 3 /* zos */
            invokevirtual java.util.zip.ZipOutputStream.closeEntry:()V
        end local 4 // java.util.zip.ZipEntry e
        18: .line 487
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.entries:Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 21
      StackMap locals: sun.tools.jar.Main java.io.OutputStream java.util.jar.Manifest java.util.zip.ZipOutputStream top java.util.Iterator
      StackMap stack:
        19: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.io.File
            astore 4 /* file */
        start local 4 // java.io.File file
        20: .line 488
            aload 0 /* this */
            aload 3 /* zos */
            aload 4 /* file */
            invokevirtual sun.tools.jar.Main.addFile:(Ljava/util/zip/ZipOutputStream;Ljava/io/File;)V
        end local 4 // java.io.File file
        21: .line 487
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 19
        22: .line 490
            aload 3 /* zos */
            invokevirtual java.util.zip.ZipOutputStream.close:()V
        23: .line 491
            return
        end local 3 // java.util.zip.ZipOutputStream zos
        end local 2 // java.util.jar.Manifest manifest
        end local 1 // java.io.OutputStream out
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   24     0      this  Lsun/tools/jar/Main;
            0   24     1       out  Ljava/io/OutputStream;
            0   24     2  manifest  Ljava/util/jar/Manifest;
            1   24     3       zos  Ljava/util/zip/ZipOutputStream;
            7   18     4         e  Ljava/util/zip/ZipEntry;
           20   21     4      file  Ljava/io/File;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      out       
      manifest  

  private char toUpperCaseASCII(char);
    descriptor: (C)C
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // char c
         0: .line 494
            iload 1 /* c */
            bipush 97
            if_icmplt 1
            iload 1 /* c */
            bipush 122
            if_icmple 2
      StackMap locals:
      StackMap stack:
         1: iload 1 /* c */
            goto 3
      StackMap locals:
      StackMap stack:
         2: iload 1 /* c */
            bipush 65
            iadd
            bipush 97
            isub
            i2c
      StackMap locals:
      StackMap stack: int
         3: ireturn
        end local 1 // char c
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lsun/tools/jar/Main;
            0    4     1     c  C
    MethodParameters:
      Name  Flags
      c     

  private boolean equalsIgnoreCase(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=7, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.String s
        start local 2 // java.lang.String upper
         0: .line 504
            getstatic sun.tools.jar.Main.$assertionsDisabled:Z
            ifne 1
            aload 2 /* upper */
            getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
            invokevirtual java.lang.String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;
            aload 2 /* upper */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 506
      StackMap locals:
      StackMap stack:
            aload 1 /* s */
            invokevirtual java.lang.String.length:()I
            dup
            istore 3 /* len */
        start local 3 // int len
         2: aload 2 /* upper */
            invokevirtual java.lang.String.length:()I
            if_icmpeq 4
         3: .line 507
            iconst_0
            ireturn
         4: .line 508
      StackMap locals: int
      StackMap stack:
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         5: goto 11
         6: .line 509
      StackMap locals: int
      StackMap stack:
            aload 1 /* s */
            iload 4 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            istore 5 /* c1 */
        start local 5 // char c1
         7: .line 510
            aload 2 /* upper */
            iload 4 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            istore 6 /* c2 */
        start local 6 // char c2
         8: .line 511
            iload 5 /* c1 */
            iload 6 /* c2 */
            if_icmpeq 10
            aload 0 /* this */
            iload 5 /* c1 */
            invokevirtual sun.tools.jar.Main.toUpperCaseASCII:(C)C
            iload 6 /* c2 */
            if_icmpeq 10
         9: .line 512
            iconst_0
            ireturn
        end local 6 // char c2
        end local 5 // char c1
        10: .line 508
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 4 /* i */
            iload 3 /* len */
            if_icmplt 6
        end local 4 // int i
        12: .line 514
            iconst_1
            ireturn
        end local 3 // int len
        end local 2 // java.lang.String upper
        end local 1 // java.lang.String s
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   13     0   this  Lsun/tools/jar/Main;
            0   13     1      s  Ljava/lang/String;
            0   13     2  upper  Ljava/lang/String;
            2   13     3    len  I
            5   12     4      i  I
            7   10     5     c1  C
            8   10     6     c2  C
    MethodParameters:
       Name  Flags
      s      
      upper  

  boolean update(java.io.InputStream, java.io.OutputStream, java.io.InputStream, sun.misc.JarIndex);
    descriptor: (Ljava/io/InputStream;Ljava/io/OutputStream;Ljava/io/InputStream;Lsun/misc/JarIndex;)Z
    flags: (0x0000) 
    Code:
      stack=4, locals=14, args_size=5
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.io.InputStream in
        start local 2 // java.io.OutputStream out
        start local 3 // java.io.InputStream newManifest
        start local 4 // sun.misc.JarIndex jarIndex
         0: .line 524
            new java.util.zip.ZipInputStream
            dup
            aload 1 /* in */
            invokespecial java.util.zip.ZipInputStream.<init>:(Ljava/io/InputStream;)V
            astore 5 /* zis */
        start local 5 // java.util.zip.ZipInputStream zis
         1: .line 525
            new java.util.jar.JarOutputStream
            dup
            aload 2 /* out */
            invokespecial java.util.jar.JarOutputStream.<init>:(Ljava/io/OutputStream;)V
            astore 6 /* zos */
        start local 6 // java.util.zip.ZipOutputStream zos
         2: .line 526
            aconst_null
            astore 7 /* e */
        start local 7 // java.util.zip.ZipEntry e
         3: .line 527
            iconst_0
            istore 8 /* foundManifest */
        start local 8 // boolean foundManifest
         4: .line 528
            iconst_1
            istore 9 /* updateOk */
        start local 9 // boolean updateOk
         5: .line 530
            aload 4 /* jarIndex */
            ifnull 43
         6: .line 531
            aload 0 /* this */
            aload 4 /* jarIndex */
            aload 6 /* zos */
            invokevirtual sun.tools.jar.Main.addIndex:(Lsun/misc/JarIndex;Ljava/util/zip/ZipOutputStream;)V
         7: .line 535
            goto 43
         8: .line 536
      StackMap locals: sun.tools.jar.Main java.io.InputStream java.io.OutputStream java.io.InputStream sun.misc.JarIndex java.util.zip.ZipInputStream java.util.zip.ZipOutputStream java.util.zip.ZipEntry int int
      StackMap stack:
            aload 7 /* e */
            invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
            astore 10 /* name */
        start local 10 // java.lang.String name
         9: .line 538
            aload 0 /* this */
            aload 10 /* name */
            ldc "META-INF/MANIFEST.MF"
            invokevirtual sun.tools.jar.Main.equalsIgnoreCase:(Ljava/lang/String;Ljava/lang/String;)Z
            istore 11 /* isManifestEntry */
        start local 11 // boolean isManifestEntry
        10: .line 540
            aload 4 /* jarIndex */
            ifnull 11
            aload 0 /* this */
            aload 10 /* name */
            ldc "META-INF/INDEX.LIST"
            invokevirtual sun.tools.jar.Main.equalsIgnoreCase:(Ljava/lang/String;Ljava/lang/String;)Z
            ifne 43
        11: .line 541
      StackMap locals: java.lang.String int
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.Mflag:Z
            ifeq 13
            iload 11 /* isManifestEntry */
            ifeq 13
        12: .line 542
            goto 43
        13: .line 543
      StackMap locals:
      StackMap stack:
            iload 11 /* isManifestEntry */
            ifeq 27
            aload 3 /* newManifest */
            ifnonnull 15
        14: .line 544
            aload 0 /* this */
            getfield sun.tools.jar.Main.ename:Ljava/lang/String;
            ifnull 27
        15: .line 545
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 8 /* foundManifest */
        16: .line 546
            aload 3 /* newManifest */
            ifnull 22
        17: .line 550
            new java.io.FileInputStream
            dup
            aload 0 /* this */
            getfield sun.tools.jar.Main.mname:Ljava/lang/String;
            invokespecial java.io.FileInputStream.<init>:(Ljava/lang/String;)V
            astore 12 /* fis */
        start local 12 // java.io.FileInputStream fis
        18: .line 551
            aload 0 /* this */
            new java.util.jar.Manifest
            dup
            aload 12 /* fis */
            invokespecial java.util.jar.Manifest.<init>:(Ljava/io/InputStream;)V
            invokevirtual sun.tools.jar.Main.isAmbiguousMainClass:(Ljava/util/jar/Manifest;)Z
            istore 13 /* ambiguous */
        start local 13 // boolean ambiguous
        19: .line 552
            aload 12 /* fis */
            invokevirtual java.io.FileInputStream.close:()V
        20: .line 553
            iload 13 /* ambiguous */
            ifeq 22
        21: .line 554
            iconst_0
            ireturn
        end local 13 // boolean ambiguous
        end local 12 // java.io.FileInputStream fis
        22: .line 559
      StackMap locals:
      StackMap stack:
            new java.util.jar.Manifest
            dup
            aload 5 /* zis */
            invokespecial java.util.jar.Manifest.<init>:(Ljava/io/InputStream;)V
            astore 12 /* old */
        start local 12 // java.util.jar.Manifest old
        23: .line 560
            aload 3 /* newManifest */
            ifnull 25
        24: .line 561
            aload 12 /* old */
            aload 3 /* newManifest */
            invokevirtual java.util.jar.Manifest.read:(Ljava/io/InputStream;)V
        25: .line 563
      StackMap locals: java.util.jar.Manifest
      StackMap stack:
            aload 0 /* this */
            aload 12 /* old */
            aload 6 /* zos */
            invokevirtual sun.tools.jar.Main.updateManifest:(Ljava/util/jar/Manifest;Ljava/util/zip/ZipOutputStream;)V
        end local 12 // java.util.jar.Manifest old
        26: .line 564
            goto 43
        27: .line 565
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.entryMap:Ljava/util/Map;
            aload 10 /* name */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifne 39
        28: .line 567
            new java.util.zip.ZipEntry
            dup
            aload 10 /* name */
            invokespecial java.util.zip.ZipEntry.<init>:(Ljava/lang/String;)V
            astore 12 /* e2 */
        start local 12 // java.util.zip.ZipEntry e2
        29: .line 568
            aload 12 /* e2 */
            aload 7 /* e */
            invokevirtual java.util.zip.ZipEntry.getMethod:()I
            invokevirtual java.util.zip.ZipEntry.setMethod:(I)V
        30: .line 569
            aload 12 /* e2 */
            aload 7 /* e */
            invokevirtual java.util.zip.ZipEntry.getTime:()J
            invokevirtual java.util.zip.ZipEntry.setTime:(J)V
        31: .line 570
            aload 12 /* e2 */
            aload 7 /* e */
            invokevirtual java.util.zip.ZipEntry.getComment:()Ljava/lang/String;
            invokevirtual java.util.zip.ZipEntry.setComment:(Ljava/lang/String;)V
        32: .line 571
            aload 12 /* e2 */
            aload 7 /* e */
            invokevirtual java.util.zip.ZipEntry.getExtra:()[B
            invokevirtual java.util.zip.ZipEntry.setExtra:([B)V
        33: .line 572
            aload 7 /* e */
            invokevirtual java.util.zip.ZipEntry.getMethod:()I
            ifne 36
        34: .line 573
            aload 12 /* e2 */
            aload 7 /* e */
            invokevirtual java.util.zip.ZipEntry.getSize:()J
            invokevirtual java.util.zip.ZipEntry.setSize:(J)V
        35: .line 574
            aload 12 /* e2 */
            aload 7 /* e */
            invokevirtual java.util.zip.ZipEntry.getCrc:()J
            invokevirtual java.util.zip.ZipEntry.setCrc:(J)V
        36: .line 576
      StackMap locals: java.util.zip.ZipEntry
      StackMap stack:
            aload 6 /* zos */
            aload 12 /* e2 */
            invokevirtual java.util.zip.ZipOutputStream.putNextEntry:(Ljava/util/zip/ZipEntry;)V
        37: .line 577
            aload 0 /* this */
            aload 5 /* zis */
            aload 6 /* zos */
            invokevirtual sun.tools.jar.Main.copy:(Ljava/io/InputStream;Ljava/io/OutputStream;)V
        end local 12 // java.util.zip.ZipEntry e2
        38: .line 578
            goto 43
        39: .line 579
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.entryMap:Ljava/util/Map;
            aload 10 /* name */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.io.File
            astore 12 /* f */
        start local 12 // java.io.File f
        40: .line 580
            aload 0 /* this */
            aload 6 /* zos */
            aload 12 /* f */
            invokevirtual sun.tools.jar.Main.addFile:(Ljava/util/zip/ZipOutputStream;Ljava/io/File;)V
        41: .line 581
            aload 0 /* this */
            getfield sun.tools.jar.Main.entryMap:Ljava/util/Map;
            aload 10 /* name */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        42: .line 582
            aload 0 /* this */
            getfield sun.tools.jar.Main.entries:Ljava/util/Set;
            aload 12 /* f */
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
        end local 12 // java.io.File f
        end local 11 // boolean isManifestEntry
        end local 10 // java.lang.String name
        43: .line 535
      StackMap locals:
      StackMap stack:
            aload 5 /* zis */
            invokevirtual java.util.zip.ZipInputStream.getNextEntry:()Ljava/util/zip/ZipEntry;
            dup
            astore 7 /* e */
            ifnonnull 8
        44: .line 588
            aload 0 /* this */
            getfield sun.tools.jar.Main.entries:Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 11
            goto 47
      StackMap locals: sun.tools.jar.Main java.io.InputStream java.io.OutputStream java.io.InputStream sun.misc.JarIndex java.util.zip.ZipInputStream java.util.zip.ZipOutputStream java.util.zip.ZipEntry int int top java.util.Iterator
      StackMap stack:
        45: aload 11
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.io.File
            astore 10 /* f */
        start local 10 // java.io.File f
        46: .line 589
            aload 0 /* this */
            aload 6 /* zos */
            aload 10 /* f */
            invokevirtual sun.tools.jar.Main.addFile:(Ljava/util/zip/ZipOutputStream;Ljava/io/File;)V
        end local 10 // java.io.File f
        47: .line 588
      StackMap locals:
      StackMap stack:
            aload 11
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 45
        48: .line 591
            iload 8 /* foundManifest */
            ifne 59
        49: .line 592
            aload 3 /* newManifest */
            ifnull 57
        50: .line 593
            new java.util.jar.Manifest
            dup
            aload 3 /* newManifest */
            invokespecial java.util.jar.Manifest.<init>:(Ljava/io/InputStream;)V
            astore 10 /* m */
        start local 10 // java.util.jar.Manifest m
        51: .line 594
            aload 0 /* this */
            aload 10 /* m */
            invokevirtual sun.tools.jar.Main.isAmbiguousMainClass:(Ljava/util/jar/Manifest;)Z
            ifeq 52
            iconst_0
            goto 53
      StackMap locals: sun.tools.jar.Main java.io.InputStream java.io.OutputStream java.io.InputStream sun.misc.JarIndex java.util.zip.ZipInputStream java.util.zip.ZipOutputStream java.util.zip.ZipEntry int int java.util.jar.Manifest
      StackMap stack:
        52: iconst_1
      StackMap locals:
      StackMap stack: int
        53: istore 9 /* updateOk */
        54: .line 595
            iload 9 /* updateOk */
            ifeq 59
        55: .line 596
            aload 0 /* this */
            aload 10 /* m */
            aload 6 /* zos */
            invokevirtual sun.tools.jar.Main.updateManifest:(Ljava/util/jar/Manifest;Ljava/util/zip/ZipOutputStream;)V
        end local 10 // java.util.jar.Manifest m
        56: .line 598
            goto 59
      StackMap locals:
      StackMap stack:
        57: aload 0 /* this */
            getfield sun.tools.jar.Main.ename:Ljava/lang/String;
            ifnull 59
        58: .line 599
            aload 0 /* this */
            new java.util.jar.Manifest
            dup
            invokespecial java.util.jar.Manifest.<init>:()V
            aload 6 /* zos */
            invokevirtual sun.tools.jar.Main.updateManifest:(Ljava/util/jar/Manifest;Ljava/util/zip/ZipOutputStream;)V
        59: .line 602
      StackMap locals:
      StackMap stack:
            aload 5 /* zis */
            invokevirtual java.util.zip.ZipInputStream.close:()V
        60: .line 603
            aload 6 /* zos */
            invokevirtual java.util.zip.ZipOutputStream.close:()V
        61: .line 604
            iload 9 /* updateOk */
            ireturn
        end local 9 // boolean updateOk
        end local 8 // boolean foundManifest
        end local 7 // java.util.zip.ZipEntry e
        end local 6 // java.util.zip.ZipOutputStream zos
        end local 5 // java.util.zip.ZipInputStream zis
        end local 4 // sun.misc.JarIndex jarIndex
        end local 3 // java.io.InputStream newManifest
        end local 2 // java.io.OutputStream out
        end local 1 // java.io.InputStream in
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   62     0             this  Lsun/tools/jar/Main;
            0   62     1               in  Ljava/io/InputStream;
            0   62     2              out  Ljava/io/OutputStream;
            0   62     3      newManifest  Ljava/io/InputStream;
            0   62     4         jarIndex  Lsun/misc/JarIndex;
            1   62     5              zis  Ljava/util/zip/ZipInputStream;
            2   62     6              zos  Ljava/util/zip/ZipOutputStream;
            3   62     7                e  Ljava/util/zip/ZipEntry;
            4   62     8    foundManifest  Z
            5   62     9         updateOk  Z
            9   43    10             name  Ljava/lang/String;
           10   43    11  isManifestEntry  Z
           18   22    12              fis  Ljava/io/FileInputStream;
           19   22    13        ambiguous  Z
           23   26    12              old  Ljava/util/jar/Manifest;
           29   38    12               e2  Ljava/util/zip/ZipEntry;
           40   43    12                f  Ljava/io/File;
           46   47    10                f  Ljava/io/File;
           51   56    10                m  Ljava/util/jar/Manifest;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
             Name  Flags
      in           
      out          
      newManifest  
      jarIndex     

  private void addIndex(sun.misc.JarIndex, java.util.zip.ZipOutputStream);
    descriptor: (Lsun/misc/JarIndex;Ljava/util/zip/ZipOutputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // sun.misc.JarIndex index
        start local 2 // java.util.zip.ZipOutputStream zos
         0: .line 610
            new java.util.zip.ZipEntry
            dup
            ldc "META-INF/INDEX.LIST"
            invokespecial java.util.zip.ZipEntry.<init>:(Ljava/lang/String;)V
            astore 3 /* e */
        start local 3 // java.util.zip.ZipEntry e
         1: .line 611
            aload 3 /* e */
            invokestatic java.lang.System.currentTimeMillis:()J
            invokevirtual java.util.zip.ZipEntry.setTime:(J)V
         2: .line 612
            aload 0 /* this */
            getfield sun.tools.jar.Main.flag0:Z
            ifeq 6
         3: .line 613
            new sun.tools.jar.Main$CRC32OutputStream
            dup
            invokespecial sun.tools.jar.Main$CRC32OutputStream.<init>:()V
            astore 4 /* os */
        start local 4 // sun.tools.jar.Main$CRC32OutputStream os
         4: .line 614
            aload 1 /* index */
            aload 4 /* os */
            invokevirtual sun.misc.JarIndex.write:(Ljava/io/OutputStream;)V
         5: .line 615
            aload 4 /* os */
            aload 3 /* e */
            invokevirtual sun.tools.jar.Main$CRC32OutputStream.updateEntry:(Ljava/util/zip/ZipEntry;)V
        end local 4 // sun.tools.jar.Main$CRC32OutputStream os
         6: .line 617
      StackMap locals: java.util.zip.ZipEntry
      StackMap stack:
            aload 2 /* zos */
            aload 3 /* e */
            invokevirtual java.util.zip.ZipOutputStream.putNextEntry:(Ljava/util/zip/ZipEntry;)V
         7: .line 618
            aload 1 /* index */
            aload 2 /* zos */
            invokevirtual sun.misc.JarIndex.write:(Ljava/io/OutputStream;)V
         8: .line 619
            aload 2 /* zos */
            invokevirtual java.util.zip.ZipOutputStream.closeEntry:()V
         9: .line 620
            return
        end local 3 // java.util.zip.ZipEntry e
        end local 2 // java.util.zip.ZipOutputStream zos
        end local 1 // sun.misc.JarIndex index
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   10     0   this  Lsun/tools/jar/Main;
            0   10     1  index  Lsun/misc/JarIndex;
            0   10     2    zos  Ljava/util/zip/ZipOutputStream;
            1   10     3      e  Ljava/util/zip/ZipEntry;
            4    6     4     os  Lsun/tools/jar/Main$CRC32OutputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      index  
      zos    

  private void updateManifest(java.util.jar.Manifest, java.util.zip.ZipOutputStream);
    descriptor: (Ljava/util/jar/Manifest;Ljava/util/zip/ZipOutputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.util.jar.Manifest m
        start local 2 // java.util.zip.ZipOutputStream zos
         0: .line 625
            aload 0 /* this */
            aload 1 /* m */
            invokevirtual sun.tools.jar.Main.addVersion:(Ljava/util/jar/Manifest;)V
         1: .line 626
            aload 0 /* this */
            aload 1 /* m */
            invokevirtual sun.tools.jar.Main.addCreatedBy:(Ljava/util/jar/Manifest;)V
         2: .line 627
            aload 0 /* this */
            getfield sun.tools.jar.Main.ename:Ljava/lang/String;
            ifnull 4
         3: .line 628
            aload 0 /* this */
            aload 1 /* m */
            aload 0 /* this */
            getfield sun.tools.jar.Main.ename:Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.addMainClass:(Ljava/util/jar/Manifest;Ljava/lang/String;)V
         4: .line 630
      StackMap locals:
      StackMap stack:
            new java.util.zip.ZipEntry
            dup
            ldc "META-INF/MANIFEST.MF"
            invokespecial java.util.zip.ZipEntry.<init>:(Ljava/lang/String;)V
            astore 3 /* e */
        start local 3 // java.util.zip.ZipEntry e
         5: .line 631
            aload 3 /* e */
            invokestatic java.lang.System.currentTimeMillis:()J
            invokevirtual java.util.zip.ZipEntry.setTime:(J)V
         6: .line 632
            aload 0 /* this */
            getfield sun.tools.jar.Main.flag0:Z
            ifeq 8
         7: .line 633
            aload 0 /* this */
            aload 3 /* e */
            aload 1 /* m */
            invokevirtual sun.tools.jar.Main.crc32Manifest:(Ljava/util/zip/ZipEntry;Ljava/util/jar/Manifest;)V
         8: .line 635
      StackMap locals: java.util.zip.ZipEntry
      StackMap stack:
            aload 2 /* zos */
            aload 3 /* e */
            invokevirtual java.util.zip.ZipOutputStream.putNextEntry:(Ljava/util/zip/ZipEntry;)V
         9: .line 636
            aload 1 /* m */
            aload 2 /* zos */
            invokevirtual java.util.jar.Manifest.write:(Ljava/io/OutputStream;)V
        10: .line 637
            aload 0 /* this */
            getfield sun.tools.jar.Main.vflag:Z
            ifeq 12
        11: .line 638
            aload 0 /* this */
            aload 0 /* this */
            ldc "out.update.manifest"
            invokevirtual sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
        12: .line 640
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.util.zip.ZipEntry e
        end local 2 // java.util.zip.ZipOutputStream zos
        end local 1 // java.util.jar.Manifest m
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Lsun/tools/jar/Main;
            0   13     1     m  Ljava/util/jar/Manifest;
            0   13     2   zos  Ljava/util/zip/ZipOutputStream;
            5   13     3     e  Ljava/util/zip/ZipEntry;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      m     
      zos   

  private static final boolean isWinDriveLetter(char);
    descriptor: (C)Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // char c
         0: .line 643
            iload 0 /* c */
            bipush 97
            if_icmplt 1
            iload 0 /* c */
            bipush 122
            if_icmple 3
      StackMap locals:
      StackMap stack:
         1: iload 0 /* c */
            bipush 65
            if_icmplt 2
            iload 0 /* c */
            bipush 90
            if_icmple 3
      StackMap locals:
      StackMap stack:
         2: iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_1
            ireturn
        end local 0 // char c
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0     c  C
    MethodParameters:
      Name  Flags
      c     

  private java.lang.String safeName(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.String name
         0: .line 647
            aload 0 /* this */
            getfield sun.tools.jar.Main.pflag:Z
            ifne 25
         1: .line 648
            aload 1 /* name */
            invokevirtual java.lang.String.length:()I
            istore 2 /* len */
        start local 2 // int len
         2: .line 649
            aload 1 /* name */
            ldc "../"
            invokevirtual java.lang.String.lastIndexOf:(Ljava/lang/String;)I
            istore 3 /* i */
        start local 3 // int i
         3: .line 650
            iload 3 /* i */
            iconst_m1
            if_icmpne 6
         4: .line 651
            iconst_0
            istore 3 /* i */
         5: .line 652
            goto 7
         6: .line 653
      StackMap locals: int int
      StackMap stack:
            iinc 3 /* i */ 3
         7: .line 655
      StackMap locals:
      StackMap stack:
            getstatic java.io.File.separatorChar:C
            bipush 92
            if_icmpne 22
         8: .line 658
            goto 19
         9: .line 659
      StackMap locals:
      StackMap stack:
            iload 3 /* i */
            istore 4 /* off */
        start local 4 // int off
        10: .line 660
            iload 3 /* i */
            iconst_1
            iadd
            iload 2 /* len */
            if_icmpge 16
        11: .line 661
            aload 1 /* name */
            iload 3 /* i */
            iconst_1
            iadd
            invokevirtual java.lang.String.charAt:(I)C
            bipush 58
            if_icmpne 16
        12: .line 662
            aload 1 /* name */
            iload 3 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic sun.tools.jar.Main.isWinDriveLetter:(C)Z
            ifeq 16
        13: .line 663
            iinc 3 /* i */ 2
        14: .line 665
            goto 16
        15: .line 666
      StackMap locals: int
      StackMap stack:
            iinc 3 /* i */ 1
        16: .line 665
      StackMap locals:
      StackMap stack:
            iload 3 /* i */
            iload 2 /* len */
            if_icmpge 17
            aload 1 /* name */
            iload 3 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            bipush 47
            if_icmpeq 15
        17: .line 668
      StackMap locals:
      StackMap stack:
            iload 3 /* i */
            iload 4 /* off */
            if_icmpne 19
        18: .line 669
            goto 23
        end local 4 // int off
        19: .line 658
      StackMap locals:
      StackMap stack:
            iload 3 /* i */
            iload 2 /* len */
            if_icmplt 9
        20: .line 672
            goto 23
        21: .line 674
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
        22: .line 673
      StackMap locals:
      StackMap stack:
            iload 3 /* i */
            iload 2 /* len */
            if_icmpge 23
            aload 1 /* name */
            iload 3 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            bipush 47
            if_icmpeq 21
        23: .line 677
      StackMap locals:
      StackMap stack:
            iload 3 /* i */
            ifeq 25
        24: .line 678
            aload 1 /* name */
            iload 3 /* i */
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 1 /* name */
        end local 3 // int i
        end local 2 // int len
        25: .line 681
      StackMap locals:
      StackMap stack:
            aload 1 /* name */
            areturn
        end local 1 // java.lang.String name
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   26     0  this  Lsun/tools/jar/Main;
            0   26     1  name  Ljava/lang/String;
            2   25     2   len  I
            3   25     3     i  I
           10   19     4   off  I
    MethodParameters:
      Name  Flags
      name  

  private java.lang.String entryName(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.String name
         0: .line 685
            aload 1 /* name */
            getstatic java.io.File.separatorChar:C
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            astore 1 /* name */
         1: .line 686
            ldc ""
            astore 2 /* matchPath */
        start local 2 // java.lang.String matchPath
         2: .line 687
            aload 0 /* this */
            getfield sun.tools.jar.Main.paths:Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 7
      StackMap locals: sun.tools.jar.Main java.lang.String java.lang.String top java.util.Iterator
      StackMap stack:
         3: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 3 /* path */
        start local 3 // java.lang.String path
         4: .line 688
            aload 1 /* name */
            aload 3 /* path */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 7
         5: .line 689
            aload 3 /* path */
            invokevirtual java.lang.String.length:()I
            aload 2 /* matchPath */
            invokevirtual java.lang.String.length:()I
            if_icmple 7
         6: .line 690
            aload 3 /* path */
            astore 2 /* matchPath */
        end local 3 // java.lang.String path
         7: .line 687
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         8: .line 693
            aload 1 /* name */
            aload 2 /* matchPath */
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 1 /* name */
         9: .line 694
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual sun.tools.jar.Main.safeName:(Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* name */
        10: .line 697
            aload 1 /* name */
            ldc "./"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 12
        11: .line 698
            aload 1 /* name */
            iconst_2
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 1 /* name */
        12: .line 700
      StackMap locals: sun.tools.jar.Main java.lang.String java.lang.String
      StackMap stack:
            aload 1 /* name */
            areturn
        end local 2 // java.lang.String matchPath
        end local 1 // java.lang.String name
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   13     0       this  Lsun/tools/jar/Main;
            0   13     1       name  Ljava/lang/String;
            2   13     2  matchPath  Ljava/lang/String;
            4    7     3       path  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  private void addVersion(java.util.jar.Manifest);
    descriptor: (Ljava/util/jar/Manifest;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.util.jar.Manifest m
         0: .line 704
            aload 1 /* m */
            invokevirtual java.util.jar.Manifest.getMainAttributes:()Ljava/util/jar/Attributes;
            astore 2 /* global */
        start local 2 // java.util.jar.Attributes global
         1: .line 705
            aload 2 /* global */
            getstatic java.util.jar.Attributes$Name.MANIFEST_VERSION:Ljava/util/jar/Attributes$Name;
            invokevirtual java.util.jar.Attributes.getValue:(Ljava/util/jar/Attributes$Name;)Ljava/lang/String;
            ifnonnull 3
         2: .line 706
            aload 2 /* global */
            getstatic java.util.jar.Attributes$Name.MANIFEST_VERSION:Ljava/util/jar/Attributes$Name;
            ldc "1.0"
            invokevirtual java.util.jar.Attributes.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 708
      StackMap locals: java.util.jar.Attributes
      StackMap stack:
            return
        end local 2 // java.util.jar.Attributes global
        end local 1 // java.util.jar.Manifest m
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lsun/tools/jar/Main;
            0    4     1       m  Ljava/util/jar/Manifest;
            1    4     2  global  Ljava/util/jar/Attributes;
    MethodParameters:
      Name  Flags
      m     

  private void addCreatedBy(java.util.jar.Manifest);
    descriptor: (Ljava/util/jar/Manifest;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.util.jar.Manifest m
         0: .line 711
            aload 1 /* m */
            invokevirtual java.util.jar.Manifest.getMainAttributes:()Ljava/util/jar/Attributes;
            astore 2 /* global */
        start local 2 // java.util.jar.Attributes global
         1: .line 712
            aload 2 /* global */
            new java.util.jar.Attributes$Name
            dup
            ldc "Created-By"
            invokespecial java.util.jar.Attributes$Name.<init>:(Ljava/lang/String;)V
            invokevirtual java.util.jar.Attributes.getValue:(Ljava/util/jar/Attributes$Name;)Ljava/lang/String;
            ifnonnull 7
         2: .line 713
            ldc "java.vendor"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* javaVendor */
        start local 3 // java.lang.String javaVendor
         3: .line 714
            ldc "java.version"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* jdkVersion */
        start local 4 // java.lang.String jdkVersion
         4: .line 715
            aload 2 /* global */
            new java.util.jar.Attributes$Name
            dup
            ldc "Created-By"
            invokespecial java.util.jar.Attributes$Name.<init>:(Ljava/lang/String;)V
            new java.lang.StringBuilder
            dup
            aload 4 /* jdkVersion */
            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;
         5: .line 716
            aload 3 /* javaVendor */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         6: .line 715
            invokevirtual java.util.jar.Attributes.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 4 // java.lang.String jdkVersion
        end local 3 // java.lang.String javaVendor
         7: .line 718
      StackMap locals: java.util.jar.Attributes
      StackMap stack:
            return
        end local 2 // java.util.jar.Attributes global
        end local 1 // java.util.jar.Manifest m
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    8     0        this  Lsun/tools/jar/Main;
            0    8     1           m  Ljava/util/jar/Manifest;
            1    8     2      global  Ljava/util/jar/Attributes;
            3    7     3  javaVendor  Ljava/lang/String;
            4    7     4  jdkVersion  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      m     

  private void addMainClass(java.util.jar.Manifest, java.lang.String);
    descriptor: (Ljava/util/jar/Manifest;Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.util.jar.Manifest m
        start local 2 // java.lang.String mainApp
         0: .line 721
            aload 1 /* m */
            invokevirtual java.util.jar.Manifest.getMainAttributes:()Ljava/util/jar/Attributes;
            astore 3 /* global */
        start local 3 // java.util.jar.Attributes global
         1: .line 724
            aload 3 /* global */
            getstatic java.util.jar.Attributes$Name.MAIN_CLASS:Ljava/util/jar/Attributes$Name;
            aload 2 /* mainApp */
            invokevirtual java.util.jar.Attributes.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 725
            return
        end local 3 // java.util.jar.Attributes global
        end local 2 // java.lang.String mainApp
        end local 1 // java.util.jar.Manifest m
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lsun/tools/jar/Main;
            0    3     1        m  Ljava/util/jar/Manifest;
            0    3     2  mainApp  Ljava/lang/String;
            1    3     3   global  Ljava/util/jar/Attributes;
    MethodParameters:
         Name  Flags
      m        
      mainApp  

  private boolean isAmbiguousMainClass(java.util.jar.Manifest);
    descriptor: (Ljava/util/jar/Manifest;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.util.jar.Manifest m
         0: .line 728
            aload 0 /* this */
            getfield sun.tools.jar.Main.ename:Ljava/lang/String;
            ifnull 6
         1: .line 729
            aload 1 /* m */
            invokevirtual java.util.jar.Manifest.getMainAttributes:()Ljava/util/jar/Attributes;
            astore 2 /* global */
        start local 2 // java.util.jar.Attributes global
         2: .line 730
            aload 2 /* global */
            getstatic java.util.jar.Attributes$Name.MAIN_CLASS:Ljava/util/jar/Attributes$Name;
            invokevirtual java.util.jar.Attributes.get:(Ljava/lang/Object;)Ljava/lang/Object;
            ifnull 6
         3: .line 731
            aload 0 /* this */
            aload 0 /* this */
            ldc "error.bad.eflag"
            invokevirtual sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.error:(Ljava/lang/String;)V
         4: .line 732
            aload 0 /* this */
            invokevirtual sun.tools.jar.Main.usageError:()V
         5: .line 733
            iconst_1
            ireturn
        end local 2 // java.util.jar.Attributes global
         6: .line 736
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // java.util.jar.Manifest m
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lsun/tools/jar/Main;
            0    7     1       m  Ljava/util/jar/Manifest;
            2    6     2  global  Ljava/util/jar/Attributes;
    MethodParameters:
      Name  Flags
      m     

  void addFile(java.util.zip.ZipOutputStream, java.io.File);
    descriptor: (Ljava/util/zip/ZipOutputStream;Ljava/io/File;)V
    flags: (0x0000) 
    Code:
      stack=6, locals=12, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.util.zip.ZipOutputStream zos
        start local 2 // java.io.File file
         0: .line 743
            aload 2 /* file */
            invokevirtual java.io.File.getPath:()Ljava/lang/String;
            astore 3 /* name */
        start local 3 // java.lang.String name
         1: .line 744
            aload 2 /* file */
            invokevirtual java.io.File.isDirectory:()Z
            istore 4 /* isDir */
        start local 4 // boolean isDir
         2: .line 745
            iload 4 /* isDir */
            ifeq 6
         3: .line 746
            aload 3 /* name */
            getstatic java.io.File.separator:Ljava/lang/String;
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 4
            aload 3 /* name */
            goto 5
         4: .line 747
      StackMap locals: java.lang.String int
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 3 /* name */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic java.io.File.separator:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         5: .line 746
      StackMap locals:
      StackMap stack: java.lang.String
            astore 3 /* name */
         6: .line 749
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* name */
            invokevirtual sun.tools.jar.Main.entryName:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* name */
         7: .line 751
            aload 3 /* name */
            ldc ""
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 8
            aload 3 /* name */
            ldc "."
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 8
            aload 3 /* name */
            aload 0 /* this */
            getfield sun.tools.jar.Main.zname:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 9
         8: .line 752
      StackMap locals:
      StackMap stack:
            return
         9: .line 753
      StackMap locals:
      StackMap stack:
            aload 3 /* name */
            ldc "META-INF/"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 10
            aload 3 /* name */
            ldc "META-INF/MANIFEST.MF"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 14
        10: .line 754
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.Mflag:Z
            ifne 14
        11: .line 755
            aload 0 /* this */
            getfield sun.tools.jar.Main.vflag:Z
            ifeq 13
        12: .line 756
            aload 0 /* this */
            aload 0 /* this */
            ldc "out.ignore.entry"
            aload 3 /* name */
            invokevirtual sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
        13: .line 758
      StackMap locals:
      StackMap stack:
            return
        14: .line 761
      StackMap locals:
      StackMap stack:
            iload 4 /* isDir */
            ifeq 15
            lconst_0
            goto 16
      StackMap locals:
      StackMap stack:
        15: aload 2 /* file */
            invokevirtual java.io.File.length:()J
      StackMap locals:
      StackMap stack: long
        16: lstore 5 /* size */
        start local 5 // long size
        17: .line 763
            aload 0 /* this */
            getfield sun.tools.jar.Main.vflag:Z
            ifeq 19
        18: .line 764
            aload 0 /* this */
            getfield sun.tools.jar.Main.out:Ljava/io/PrintStream;
            aload 0 /* this */
            ldc "out.adding"
            aload 3 /* name */
            invokevirtual sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        19: .line 766
      StackMap locals: long
      StackMap stack:
            new java.util.zip.ZipEntry
            dup
            aload 3 /* name */
            invokespecial java.util.zip.ZipEntry.<init>:(Ljava/lang/String;)V
            astore 7 /* e */
        start local 7 // java.util.zip.ZipEntry e
        20: .line 767
            aload 7 /* e */
            aload 2 /* file */
            invokevirtual java.io.File.lastModified:()J
            invokevirtual java.util.zip.ZipEntry.setTime:(J)V
        21: .line 768
            lload 5 /* size */
            lconst_0
            lcmp
            ifne 26
        22: .line 769
            aload 7 /* e */
            iconst_0
            invokevirtual java.util.zip.ZipEntry.setMethod:(I)V
        23: .line 770
            aload 7 /* e */
            lconst_0
            invokevirtual java.util.zip.ZipEntry.setSize:(J)V
        24: .line 771
            aload 7 /* e */
            lconst_0
            invokevirtual java.util.zip.ZipEntry.setCrc:(J)V
        25: .line 772
            goto 28
      StackMap locals: java.util.zip.ZipEntry
      StackMap stack:
        26: aload 0 /* this */
            getfield sun.tools.jar.Main.flag0:Z
            ifeq 28
        27: .line 773
            aload 0 /* this */
            aload 7 /* e */
            aload 2 /* file */
            invokevirtual sun.tools.jar.Main.crc32File:(Ljava/util/zip/ZipEntry;Ljava/io/File;)V
        28: .line 775
      StackMap locals:
      StackMap stack:
            aload 1 /* zos */
            aload 7 /* e */
            invokevirtual java.util.zip.ZipOutputStream.putNextEntry:(Ljava/util/zip/ZipEntry;)V
        29: .line 776
            iload 4 /* isDir */
            ifne 31
        30: .line 777
            aload 0 /* this */
            aload 2 /* file */
            aload 1 /* zos */
            invokevirtual sun.tools.jar.Main.copy:(Ljava/io/File;Ljava/io/OutputStream;)V
        31: .line 779
      StackMap locals:
      StackMap stack:
            aload 1 /* zos */
            invokevirtual java.util.zip.ZipOutputStream.closeEntry:()V
        32: .line 781
            aload 0 /* this */
            getfield sun.tools.jar.Main.vflag:Z
            ifeq 45
        33: .line 782
            aload 7 /* e */
            invokevirtual java.util.zip.ZipEntry.getSize:()J
            lstore 5 /* size */
        34: .line 783
            aload 7 /* e */
            invokevirtual java.util.zip.ZipEntry.getCompressedSize:()J
            lstore 8 /* csize */
        start local 8 // long csize
        35: .line 784
            aload 0 /* this */
            getfield sun.tools.jar.Main.out:Ljava/io/PrintStream;
            aload 0 /* this */
            ldc "out.size"
            lload 5 /* size */
            invokestatic java.lang.String.valueOf:(J)Ljava/lang/String;
        36: .line 785
            lload 8 /* csize */
            invokestatic java.lang.String.valueOf:(J)Ljava/lang/String;
        37: .line 784
            invokevirtual sun.tools.jar.Main.formatMsg2:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        38: .line 786
            aload 7 /* e */
            invokevirtual java.util.zip.ZipEntry.getMethod:()I
            bipush 8
            if_icmpne 44
        39: .line 787
            lconst_0
            lstore 10 /* ratio */
        start local 10 // long ratio
        40: .line 788
            lload 5 /* size */
            lconst_0
            lcmp
            ifeq 42
        41: .line 789
            lload 5 /* size */
            lload 8 /* csize */
            lsub
            ldc 100
            lmul
            lload 5 /* size */
            ldiv
            lstore 10 /* ratio */
        42: .line 791
      StackMap locals: long long
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            ldc "out.deflated"
            lload 10 /* ratio */
            invokestatic java.lang.String.valueOf:(J)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
        end local 10 // long ratio
        43: .line 792
            goto 45
        44: .line 793
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            ldc "out.stored"
            invokevirtual sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
        end local 8 // long csize
        45: .line 796
      StackMap locals:
      StackMap stack:
            return
        end local 7 // java.util.zip.ZipEntry e
        end local 5 // long size
        end local 4 // boolean isDir
        end local 3 // java.lang.String name
        end local 2 // java.io.File file
        end local 1 // java.util.zip.ZipOutputStream zos
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   46     0   this  Lsun/tools/jar/Main;
            0   46     1    zos  Ljava/util/zip/ZipOutputStream;
            0   46     2   file  Ljava/io/File;
            1   46     3   name  Ljava/lang/String;
            2   46     4  isDir  Z
           17   46     5   size  J
           20   46     7      e  Ljava/util/zip/ZipEntry;
           35   45     8  csize  J
           40   43    10  ratio  J
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      zos   
      file  

  private void copy(java.io.InputStream, java.io.OutputStream);
    descriptor: (Ljava/io/InputStream;Ljava/io/OutputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.io.InputStream from
        start local 2 // java.io.OutputStream to
         0: .line 815
            goto 2
        start local 3 // int n
         1: .line 816
      StackMap locals: int
      StackMap stack:
            aload 2 /* to */
            aload 0 /* this */
            getfield sun.tools.jar.Main.copyBuf:[B
            iconst_0
            iload 3 /* n */
            invokevirtual java.io.OutputStream.write:([BII)V
        end local 3 // int n
         2: .line 815
      StackMap locals:
      StackMap stack:
            aload 1 /* from */
            aload 0 /* this */
            getfield sun.tools.jar.Main.copyBuf:[B
            invokevirtual java.io.InputStream.read:([B)I
            dup
            istore 3 /* n */
        start local 3 // int n
         3: iconst_m1
            if_icmpne 1
         4: .line 817
            return
        end local 3 // int n
        end local 2 // java.io.OutputStream to
        end local 1 // java.io.InputStream from
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lsun/tools/jar/Main;
            0    5     1  from  Ljava/io/InputStream;
            0    5     2    to  Ljava/io/OutputStream;
            1    2     3     n  I
            3    5     3     n  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      from  
      to    

  private void copy(java.io.File, java.io.OutputStream);
    descriptor: (Ljava/io/File;Ljava/io/OutputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.io.File from
        start local 2 // java.io.OutputStream to
         0: .line 828
            new java.io.FileInputStream
            dup
            aload 1 /* from */
            invokespecial java.io.FileInputStream.<init>:(Ljava/io/File;)V
            astore 3 /* in */
        start local 3 // java.io.InputStream in
         1: .line 830
            aload 0 /* this */
            aload 3 /* in */
            aload 2 /* to */
            invokevirtual sun.tools.jar.Main.copy:(Ljava/io/InputStream;Ljava/io/OutputStream;)V
         2: .line 831
            goto 6
      StackMap locals: sun.tools.jar.Main java.io.File java.io.OutputStream java.io.InputStream
      StackMap stack: java.lang.Throwable
         3: astore 4
         4: .line 832
            aload 3 /* in */
            invokevirtual java.io.InputStream.close:()V
         5: .line 833
            aload 4
            athrow
         6: .line 832
      StackMap locals:
      StackMap stack:
            aload 3 /* in */
            invokevirtual java.io.InputStream.close:()V
         7: .line 834
            return
        end local 3 // java.io.InputStream in
        end local 2 // java.io.OutputStream to
        end local 1 // java.io.File from
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lsun/tools/jar/Main;
            0    8     1  from  Ljava/io/File;
            0    8     2    to  Ljava/io/OutputStream;
            1    8     3    in  Ljava/io/InputStream;
      Exception table:
        from    to  target  type
           1     3       3  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      from  
      to    

  private void copy(java.io.InputStream, java.io.File);
    descriptor: (Ljava/io/InputStream;Ljava/io/File;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.io.InputStream from
        start local 2 // java.io.File to
         0: .line 845
            new java.io.FileOutputStream
            dup
            aload 2 /* to */
            invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;)V
            astore 3 /* out */
        start local 3 // java.io.OutputStream out
         1: .line 847
            aload 0 /* this */
            aload 1 /* from */
            aload 3 /* out */
            invokevirtual sun.tools.jar.Main.copy:(Ljava/io/InputStream;Ljava/io/OutputStream;)V
         2: .line 848
            goto 6
      StackMap locals: sun.tools.jar.Main java.io.InputStream java.io.File java.io.OutputStream
      StackMap stack: java.lang.Throwable
         3: astore 4
         4: .line 849
            aload 3 /* out */
            invokevirtual java.io.OutputStream.close:()V
         5: .line 850
            aload 4
            athrow
         6: .line 849
      StackMap locals:
      StackMap stack:
            aload 3 /* out */
            invokevirtual java.io.OutputStream.close:()V
         7: .line 851
            return
        end local 3 // java.io.OutputStream out
        end local 2 // java.io.File to
        end local 1 // java.io.InputStream from
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lsun/tools/jar/Main;
            0    8     1  from  Ljava/io/InputStream;
            0    8     2    to  Ljava/io/File;
            1    8     3   out  Ljava/io/OutputStream;
      Exception table:
        from    to  target  type
           1     3       3  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      from  
      to    

  private void crc32Manifest(java.util.zip.ZipEntry, java.util.jar.Manifest);
    descriptor: (Ljava/util/zip/ZipEntry;Ljava/util/jar/Manifest;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.util.zip.ZipEntry e
        start local 2 // java.util.jar.Manifest m
         0: .line 858
            new sun.tools.jar.Main$CRC32OutputStream
            dup
            invokespecial sun.tools.jar.Main$CRC32OutputStream.<init>:()V
            astore 3 /* os */
        start local 3 // sun.tools.jar.Main$CRC32OutputStream os
         1: .line 859
            aload 2 /* m */
            aload 3 /* os */
            invokevirtual java.util.jar.Manifest.write:(Ljava/io/OutputStream;)V
         2: .line 860
            aload 3 /* os */
            aload 1 /* e */
            invokevirtual sun.tools.jar.Main$CRC32OutputStream.updateEntry:(Ljava/util/zip/ZipEntry;)V
         3: .line 861
            return
        end local 3 // sun.tools.jar.Main$CRC32OutputStream os
        end local 2 // java.util.jar.Manifest m
        end local 1 // java.util.zip.ZipEntry e
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lsun/tools/jar/Main;
            0    4     1     e  Ljava/util/zip/ZipEntry;
            0    4     2     m  Ljava/util/jar/Manifest;
            1    4     3    os  Lsun/tools/jar/Main$CRC32OutputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      e     
      m     

  private void crc32File(java.util.zip.ZipEntry, java.io.File);
    descriptor: (Ljava/util/zip/ZipEntry;Ljava/io/File;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.util.zip.ZipEntry e
        start local 2 // java.io.File f
         0: .line 868
            new sun.tools.jar.Main$CRC32OutputStream
            dup
            invokespecial sun.tools.jar.Main$CRC32OutputStream.<init>:()V
            astore 3 /* os */
        start local 3 // sun.tools.jar.Main$CRC32OutputStream os
         1: .line 869
            aload 0 /* this */
            aload 2 /* f */
            aload 3 /* os */
            invokevirtual sun.tools.jar.Main.copy:(Ljava/io/File;Ljava/io/OutputStream;)V
         2: .line 870
            aload 3 /* os */
            getfield sun.tools.jar.Main$CRC32OutputStream.n:J
            aload 2 /* f */
            invokevirtual java.io.File.length:()J
            lcmp
            ifeq 6
         3: .line 871
            new sun.tools.jar.JarException
            dup
            aload 0 /* this */
         4: .line 872
            ldc "error.incorrect.length"
            aload 2 /* f */
            invokevirtual java.io.File.getPath:()Ljava/lang/String;
         5: .line 871
            invokevirtual sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokespecial sun.tools.jar.JarException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 874
      StackMap locals: sun.tools.jar.Main$CRC32OutputStream
      StackMap stack:
            aload 3 /* os */
            aload 1 /* e */
            invokevirtual sun.tools.jar.Main$CRC32OutputStream.updateEntry:(Ljava/util/zip/ZipEntry;)V
         7: .line 875
            return
        end local 3 // sun.tools.jar.Main$CRC32OutputStream os
        end local 2 // java.io.File f
        end local 1 // java.util.zip.ZipEntry e
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lsun/tools/jar/Main;
            0    8     1     e  Ljava/util/zip/ZipEntry;
            0    8     2     f  Ljava/io/File;
            1    8     3    os  Lsun/tools/jar/Main$CRC32OutputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      e     
      f     

  void replaceFSC(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.String[] files
         0: .line 878
            aload 1 /* files */
            ifnull 6
         1: .line 879
            aload 1 /* files */
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 5
      StackMap locals: sun.tools.jar.Main java.lang.String[] top int int java.lang.String[]
      StackMap stack:
         2: aload 5
            iload 3
            aaload
            astore 2 /* file */
        start local 2 // java.lang.String file
         3: .line 880
            aload 2 /* file */
            getstatic java.io.File.separatorChar:C
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            astore 2
        end local 2 // java.lang.String file
         4: .line 879
            iinc 3 1
      StackMap locals:
      StackMap stack:
         5: iload 3
            iload 4
            if_icmplt 2
         6: .line 883
      StackMap locals: sun.tools.jar.Main java.lang.String[]
      StackMap stack:
            return
        end local 1 // java.lang.String[] files
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Lsun/tools/jar/Main;
            0    7     1  files  [Ljava/lang/String;
            3    4     2   file  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      files  

  java.util.Set<java.util.zip.ZipEntry> newDirSet();
    descriptor: ()Ljava/util/Set;
    flags: (0x0000) 
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // sun.tools.jar.Main this
         0: .line 887
            new sun.tools.jar.Main$1
            dup
            aload 0 /* this */
            invokespecial sun.tools.jar.Main$1.<init>:(Lsun/tools/jar/Main;)V
            areturn
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/tools/jar/Main;
    Signature: ()Ljava/util/Set<Ljava/util/zip/ZipEntry;>;

  void updateLastModifiedTime(java.util.Set<java.util.zip.ZipEntry>);
    descriptor: (Ljava/util/Set;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=8, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.util.Set zes
         0: .line 894
            aload 1 /* zes */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 8
      StackMap locals: sun.tools.jar.Main java.util.Set top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.zip.ZipEntry
            astore 2 /* ze */
        start local 2 // java.util.zip.ZipEntry ze
         2: .line 895
            aload 2 /* ze */
            invokevirtual java.util.zip.ZipEntry.getTime:()J
            lstore 4 /* lastModified */
        start local 4 // long lastModified
         3: .line 896
            lload 4 /* lastModified */
            ldc -1
            lcmp
            ifeq 8
         4: .line 897
            aload 0 /* this */
            aload 2 /* ze */
            invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
            getstatic java.io.File.separatorChar:C
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.safeName:(Ljava/lang/String;)Ljava/lang/String;
            astore 6 /* name */
        start local 6 // java.lang.String name
         5: .line 898
            aload 6 /* name */
            invokevirtual java.lang.String.length:()I
            ifeq 8
         6: .line 899
            new java.io.File
            dup
            aload 6 /* name */
            bipush 47
            getstatic java.io.File.separatorChar:C
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 7 /* f */
        start local 7 // java.io.File f
         7: .line 900
            aload 7 /* f */
            lload 4 /* lastModified */
            invokevirtual java.io.File.setLastModified:(J)Z
            pop
        end local 7 // java.io.File f
        end local 6 // java.lang.String name
        end local 4 // long lastModified
        end local 2 // java.util.zip.ZipEntry ze
         8: .line 894
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         9: .line 904
            return
        end local 1 // java.util.Set zes
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   10     0          this  Lsun/tools/jar/Main;
            0   10     1           zes  Ljava/util/Set<Ljava/util/zip/ZipEntry;>;
            2    8     2            ze  Ljava/util/zip/ZipEntry;
            3    8     4  lastModified  J
            5    8     6          name  Ljava/lang/String;
            7    8     7             f  Ljava/io/File;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/util/Set<Ljava/util/zip/ZipEntry;>;)V
    MethodParameters:
      Name  Flags
      zes   

  void extract(java.io.InputStream, java.lang.String[]);
    descriptor: (Ljava/io/InputStream;[Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=11, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.io.InputStream in
        start local 2 // java.lang.String[] files
         0: .line 910
            new java.util.zip.ZipInputStream
            dup
            aload 1 /* in */
            invokespecial java.util.zip.ZipInputStream.<init>:(Ljava/io/InputStream;)V
            astore 3 /* zis */
        start local 3 // java.util.zip.ZipInputStream zis
         1: .line 914
            aload 0 /* this */
            invokevirtual sun.tools.jar.Main.newDirSet:()Ljava/util/Set;
            astore 5 /* dirs */
        start local 5 // java.util.Set dirs
         2: .line 915
            goto 14
        start local 4 // java.util.zip.ZipEntry e
         3: .line 916
      StackMap locals: java.util.zip.ZipInputStream java.util.zip.ZipEntry java.util.Set
      StackMap stack:
            aload 2 /* files */
            ifnonnull 6
         4: .line 917
            aload 5 /* dirs */
            aload 0 /* this */
            aload 3 /* zis */
            aload 4 /* e */
            invokevirtual sun.tools.jar.Main.extractFile:(Ljava/io/InputStream;Ljava/util/zip/ZipEntry;)Ljava/util/zip/ZipEntry;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         5: .line 918
            goto 14
         6: .line 919
      StackMap locals:
      StackMap stack:
            aload 4 /* e */
            invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
            astore 6 /* name */
        start local 6 // java.lang.String name
         7: .line 920
            aload 2 /* files */
            dup
            astore 10
            arraylength
            istore 9
            iconst_0
            istore 8
            goto 13
      StackMap locals: sun.tools.jar.Main java.io.InputStream java.lang.String[] java.util.zip.ZipInputStream java.util.zip.ZipEntry java.util.Set java.lang.String top int int java.lang.String[]
      StackMap stack:
         8: aload 10
            iload 8
            aaload
            astore 7 /* file */
        start local 7 // java.lang.String file
         9: .line 921
            aload 6 /* name */
            aload 7 /* file */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 12
        10: .line 922
            aload 5 /* dirs */
            aload 0 /* this */
            aload 3 /* zis */
            aload 4 /* e */
            invokevirtual sun.tools.jar.Main.extractFile:(Ljava/io/InputStream;Ljava/util/zip/ZipEntry;)Ljava/util/zip/ZipEntry;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        11: .line 923
            goto 14
        end local 7 // java.lang.String file
        12: .line 920
      StackMap locals:
      StackMap stack:
            iinc 8 1
      StackMap locals:
      StackMap stack:
        13: iload 8
            iload 9
            if_icmplt 8
        end local 6 // java.lang.String name
        end local 4 // java.util.zip.ZipEntry e
        14: .line 915
      StackMap locals: sun.tools.jar.Main java.io.InputStream java.lang.String[] java.util.zip.ZipInputStream top java.util.Set
      StackMap stack:
            aload 3 /* zis */
            invokevirtual java.util.zip.ZipInputStream.getNextEntry:()Ljava/util/zip/ZipEntry;
            dup
            astore 4 /* e */
        start local 4 // java.util.zip.ZipEntry e
        15: ifnonnull 3
        16: .line 933
            aload 0 /* this */
            aload 5 /* dirs */
            invokevirtual sun.tools.jar.Main.updateLastModifiedTime:(Ljava/util/Set;)V
        17: .line 934
            return
        end local 5 // java.util.Set dirs
        end local 4 // java.util.zip.ZipEntry e
        end local 3 // java.util.zip.ZipInputStream zis
        end local 2 // java.lang.String[] files
        end local 1 // java.io.InputStream in
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   18     0   this  Lsun/tools/jar/Main;
            0   18     1     in  Ljava/io/InputStream;
            0   18     2  files  [Ljava/lang/String;
            1   18     3    zis  Ljava/util/zip/ZipInputStream;
            3   14     4      e  Ljava/util/zip/ZipEntry;
           15   18     4      e  Ljava/util/zip/ZipEntry;
            2   18     5   dirs  Ljava/util/Set<Ljava/util/zip/ZipEntry;>;
            7   14     6   name  Ljava/lang/String;
            9   12     7   file  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      in     
      files  

  void extract(java.lang.String, java.lang.String[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=12, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.String fname
        start local 2 // java.lang.String[] files
         0: .line 940
            new java.util.zip.ZipFile
            dup
            aload 1 /* fname */
            invokespecial java.util.zip.ZipFile.<init>:(Ljava/lang/String;)V
            astore 3 /* zf */
        start local 3 // java.util.zip.ZipFile zf
         1: .line 941
            aload 0 /* this */
            invokevirtual sun.tools.jar.Main.newDirSet:()Ljava/util/Set;
            astore 4 /* dirs */
        start local 4 // java.util.Set dirs
         2: .line 942
            aload 3 /* zf */
            invokevirtual java.util.zip.ZipFile.entries:()Ljava/util/Enumeration;
            astore 5 /* zes */
        start local 5 // java.util.Enumeration zes
         3: .line 943
            goto 16
         4: .line 944
      StackMap locals: java.util.zip.ZipFile java.util.Set java.util.Enumeration
      StackMap stack:
            aload 5 /* zes */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.util.zip.ZipEntry
            astore 6 /* e */
        start local 6 // java.util.zip.ZipEntry e
         5: .line 945
            aload 2 /* files */
            ifnonnull 8
         6: .line 946
            aload 4 /* dirs */
            aload 0 /* this */
            aload 3 /* zf */
            aload 6 /* e */
            invokevirtual java.util.zip.ZipFile.getInputStream:(Ljava/util/zip/ZipEntry;)Ljava/io/InputStream;
            aload 6 /* e */
            invokevirtual sun.tools.jar.Main.extractFile:(Ljava/io/InputStream;Ljava/util/zip/ZipEntry;)Ljava/util/zip/ZipEntry;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         7: .line 947
            goto 16
         8: .line 948
      StackMap locals: java.util.zip.ZipEntry
      StackMap stack:
            aload 6 /* e */
            invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
            astore 7 /* name */
        start local 7 // java.lang.String name
         9: .line 949
            aload 2 /* files */
            dup
            astore 11
            arraylength
            istore 10
            iconst_0
            istore 9
            goto 15
      StackMap locals: sun.tools.jar.Main java.lang.String java.lang.String[] java.util.zip.ZipFile java.util.Set java.util.Enumeration java.util.zip.ZipEntry java.lang.String top int int java.lang.String[]
      StackMap stack:
        10: aload 11
            iload 9
            aaload
            astore 8 /* file */
        start local 8 // java.lang.String file
        11: .line 950
            aload 7 /* name */
            aload 8 /* file */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 14
        12: .line 951
            aload 4 /* dirs */
            aload 0 /* this */
            aload 3 /* zf */
            aload 6 /* e */
            invokevirtual java.util.zip.ZipFile.getInputStream:(Ljava/util/zip/ZipEntry;)Ljava/io/InputStream;
            aload 6 /* e */
            invokevirtual sun.tools.jar.Main.extractFile:(Ljava/io/InputStream;Ljava/util/zip/ZipEntry;)Ljava/util/zip/ZipEntry;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        13: .line 952
            goto 16
        end local 8 // java.lang.String file
        14: .line 949
      StackMap locals:
      StackMap stack:
            iinc 9 1
      StackMap locals:
      StackMap stack:
        15: iload 9
            iload 10
            if_icmplt 10
        end local 7 // java.lang.String name
        end local 6 // java.util.zip.ZipEntry e
        16: .line 943
      StackMap locals: sun.tools.jar.Main java.lang.String java.lang.String[] java.util.zip.ZipFile java.util.Set java.util.Enumeration
      StackMap stack:
            aload 5 /* zes */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 4
        17: .line 957
            aload 3 /* zf */
            invokevirtual java.util.zip.ZipFile.close:()V
        18: .line 958
            aload 0 /* this */
            aload 4 /* dirs */
            invokevirtual sun.tools.jar.Main.updateLastModifiedTime:(Ljava/util/Set;)V
        19: .line 959
            return
        end local 5 // java.util.Enumeration zes
        end local 4 // java.util.Set dirs
        end local 3 // java.util.zip.ZipFile zf
        end local 2 // java.lang.String[] files
        end local 1 // java.lang.String fname
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   20     0   this  Lsun/tools/jar/Main;
            0   20     1  fname  Ljava/lang/String;
            0   20     2  files  [Ljava/lang/String;
            1   20     3     zf  Ljava/util/zip/ZipFile;
            2   20     4   dirs  Ljava/util/Set<Ljava/util/zip/ZipEntry;>;
            3   20     5    zes  Ljava/util/Enumeration<+Ljava/util/zip/ZipEntry;>;
            5   16     6      e  Ljava/util/zip/ZipEntry;
            9   16     7   name  Ljava/lang/String;
           11   14     8   file  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      fname  
      files  

  java.util.zip.ZipEntry extractFile(java.io.InputStream, java.util.zip.ZipEntry);
    descriptor: (Ljava/io/InputStream;Ljava/util/zip/ZipEntry;)Ljava/util/zip/ZipEntry;
    flags: (0x0000) 
    Code:
      stack=5, locals=8, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.io.InputStream is
        start local 2 // java.util.zip.ZipEntry e
         0: .line 967
            aconst_null
            astore 3 /* rc */
        start local 3 // java.util.zip.ZipEntry rc
         1: .line 973
            aload 0 /* this */
            aload 2 /* e */
            invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
            getstatic java.io.File.separatorChar:C
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.safeName:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* name */
        start local 4 // java.lang.String name
         2: .line 974
            aload 4 /* name */
            invokevirtual java.lang.String.length:()I
            ifne 4
         3: .line 975
            aload 3 /* rc */
            areturn
         4: .line 977
      StackMap locals: java.util.zip.ZipEntry java.lang.String
      StackMap stack:
            new java.io.File
            dup
            aload 4 /* name */
            bipush 47
            getstatic java.io.File.separatorChar:C
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 5 /* f */
        start local 5 // java.io.File f
         5: .line 978
            aload 2 /* e */
            invokevirtual java.util.zip.ZipEntry.isDirectory:()Z
            ifeq 19
         6: .line 979
            aload 5 /* f */
            invokevirtual java.io.File.exists:()Z
            ifeq 11
         7: .line 980
            aload 5 /* f */
            invokevirtual java.io.File.isDirectory:()Z
            ifne 16
         8: .line 981
            new java.io.IOException
            dup
            aload 0 /* this */
            ldc "error.create.dir"
         9: .line 982
            aload 5 /* f */
            invokevirtual java.io.File.getPath:()Ljava/lang/String;
        10: .line 981
            invokevirtual sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 985
      StackMap locals: java.io.File
      StackMap stack:
            aload 5 /* f */
            invokevirtual java.io.File.mkdirs:()Z
            ifne 15
        12: .line 986
            new java.io.IOException
            dup
            aload 0 /* this */
            ldc "error.create.dir"
        13: .line 987
            aload 5 /* f */
            invokevirtual java.io.File.getPath:()Ljava/lang/String;
        14: .line 986
            invokevirtual sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        15: .line 989
      StackMap locals:
      StackMap stack:
            aload 2 /* e */
            astore 3 /* rc */
        16: .line 993
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.vflag:Z
            ifeq 41
        17: .line 994
            aload 0 /* this */
            aload 0 /* this */
            ldc "out.create"
            aload 4 /* name */
            invokevirtual sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
        18: .line 996
            goto 41
        19: .line 997
      StackMap locals:
      StackMap stack:
            aload 5 /* f */
            invokevirtual java.io.File.getParent:()Ljava/lang/String;
            ifnull 26
        20: .line 998
            new java.io.File
            dup
            aload 5 /* f */
            invokevirtual java.io.File.getParent:()Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 6 /* d */
        start local 6 // java.io.File d
        21: .line 999
            aload 6 /* d */
            invokevirtual java.io.File.exists:()Z
            ifne 22
            aload 6 /* d */
            invokevirtual java.io.File.mkdirs:()Z
            ifeq 23
      StackMap locals: java.io.File
      StackMap stack:
        22: aload 6 /* d */
            invokevirtual java.io.File.isDirectory:()Z
            ifne 26
        23: .line 1000
      StackMap locals:
      StackMap stack:
            new java.io.IOException
            dup
            aload 0 /* this */
        24: .line 1001
            ldc "error.create.dir"
            aload 6 /* d */
            invokevirtual java.io.File.getPath:()Ljava/lang/String;
        25: .line 1000
            invokevirtual sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 6 // java.io.File d
        26: .line 1005
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* is */
            aload 5 /* f */
            invokevirtual sun.tools.jar.Main.copy:(Ljava/io/InputStream;Ljava/io/File;)V
        27: .line 1006
            goto 33
      StackMap locals:
      StackMap stack: java.lang.Throwable
        28: astore 6
        29: .line 1007
            aload 1 /* is */
            instanceof java.util.zip.ZipInputStream
            ifeq 31
        30: .line 1008
            aload 1 /* is */
            checkcast java.util.zip.ZipInputStream
            invokevirtual java.util.zip.ZipInputStream.closeEntry:()V
            goto 32
        31: .line 1010
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 1 /* is */
            invokevirtual java.io.InputStream.close:()V
        32: .line 1011
      StackMap locals:
      StackMap stack:
            aload 6
            athrow
        33: .line 1007
      StackMap locals:
      StackMap stack:
            aload 1 /* is */
            instanceof java.util.zip.ZipInputStream
            ifeq 35
        34: .line 1008
            aload 1 /* is */
            checkcast java.util.zip.ZipInputStream
            invokevirtual java.util.zip.ZipInputStream.closeEntry:()V
            goto 36
        35: .line 1010
      StackMap locals:
      StackMap stack:
            aload 1 /* is */
            invokevirtual java.io.InputStream.close:()V
        36: .line 1012
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.vflag:Z
            ifeq 41
        37: .line 1013
            aload 2 /* e */
            invokevirtual java.util.zip.ZipEntry.getMethod:()I
            bipush 8
            if_icmpne 40
        38: .line 1014
            aload 0 /* this */
            aload 0 /* this */
            ldc "out.inflated"
            aload 4 /* name */
            invokevirtual sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
        39: .line 1015
            goto 41
        40: .line 1016
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            ldc "out.extracted"
            aload 4 /* name */
            invokevirtual sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
        41: .line 1020
      StackMap locals:
      StackMap stack:
            getstatic sun.tools.jar.Main.useExtractionTime:Z
            ifne 45
        42: .line 1021
            aload 2 /* e */
            invokevirtual java.util.zip.ZipEntry.getTime:()J
            lstore 6 /* lastModified */
        start local 6 // long lastModified
        43: .line 1022
            lload 6 /* lastModified */
            ldc -1
            lcmp
            ifeq 45
        44: .line 1023
            aload 5 /* f */
            lload 6 /* lastModified */
            invokevirtual java.io.File.setLastModified:(J)Z
            pop
        end local 6 // long lastModified
        45: .line 1026
      StackMap locals:
      StackMap stack:
            aload 3 /* rc */
            areturn
        end local 5 // java.io.File f
        end local 4 // java.lang.String name
        end local 3 // java.util.zip.ZipEntry rc
        end local 2 // java.util.zip.ZipEntry e
        end local 1 // java.io.InputStream is
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   46     0          this  Lsun/tools/jar/Main;
            0   46     1            is  Ljava/io/InputStream;
            0   46     2             e  Ljava/util/zip/ZipEntry;
            1   46     3            rc  Ljava/util/zip/ZipEntry;
            2   46     4          name  Ljava/lang/String;
            5   46     5             f  Ljava/io/File;
           21   26     6             d  Ljava/io/File;
           43   45     6  lastModified  J
      Exception table:
        from    to  target  type
          26    28      28  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      is    
      e     

  void list(java.io.InputStream, java.lang.String[]);
    descriptor: (Ljava/io/InputStream;[Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.io.InputStream in
        start local 2 // java.lang.String[] files
         0: .line 1033
            new java.util.zip.ZipInputStream
            dup
            aload 1 /* in */
            invokespecial java.util.zip.ZipInputStream.<init>:(Ljava/io/InputStream;)V
            astore 3 /* zis */
        start local 3 // java.util.zip.ZipInputStream zis
         1: .line 1035
            goto 4
        start local 4 // java.util.zip.ZipEntry e
         2: .line 1042
      StackMap locals: java.util.zip.ZipInputStream java.util.zip.ZipEntry
      StackMap stack:
            aload 3 /* zis */
            invokevirtual java.util.zip.ZipInputStream.closeEntry:()V
         3: .line 1043
            aload 0 /* this */
            aload 4 /* e */
            aload 2 /* files */
            invokevirtual sun.tools.jar.Main.printEntry:(Ljava/util/zip/ZipEntry;[Ljava/lang/String;)V
        end local 4 // java.util.zip.ZipEntry e
         4: .line 1035
      StackMap locals:
      StackMap stack:
            aload 3 /* zis */
            invokevirtual java.util.zip.ZipInputStream.getNextEntry:()Ljava/util/zip/ZipEntry;
            dup
            astore 4 /* e */
        start local 4 // java.util.zip.ZipEntry e
         5: ifnonnull 2
         6: .line 1045
            return
        end local 4 // java.util.zip.ZipEntry e
        end local 3 // java.util.zip.ZipInputStream zis
        end local 2 // java.lang.String[] files
        end local 1 // java.io.InputStream in
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Lsun/tools/jar/Main;
            0    7     1     in  Ljava/io/InputStream;
            0    7     2  files  [Ljava/lang/String;
            1    7     3    zis  Ljava/util/zip/ZipInputStream;
            2    4     4      e  Ljava/util/zip/ZipEntry;
            5    7     4      e  Ljava/util/zip/ZipEntry;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      in     
      files  

  void list(java.lang.String, java.lang.String[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.String fname
        start local 2 // java.lang.String[] files
         0: .line 1051
            new java.util.zip.ZipFile
            dup
            aload 1 /* fname */
            invokespecial java.util.zip.ZipFile.<init>:(Ljava/lang/String;)V
            astore 3 /* zf */
        start local 3 // java.util.zip.ZipFile zf
         1: .line 1052
            aload 3 /* zf */
            invokevirtual java.util.zip.ZipFile.entries:()Ljava/util/Enumeration;
            astore 4 /* zes */
        start local 4 // java.util.Enumeration zes
         2: .line 1053
            goto 4
         3: .line 1054
      StackMap locals: java.util.zip.ZipFile java.util.Enumeration
      StackMap stack:
            aload 0 /* this */
            aload 4 /* zes */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.util.zip.ZipEntry
            aload 2 /* files */
            invokevirtual sun.tools.jar.Main.printEntry:(Ljava/util/zip/ZipEntry;[Ljava/lang/String;)V
         4: .line 1053
      StackMap locals:
      StackMap stack:
            aload 4 /* zes */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 3
         5: .line 1056
            aload 3 /* zf */
            invokevirtual java.util.zip.ZipFile.close:()V
         6: .line 1057
            return
        end local 4 // java.util.Enumeration zes
        end local 3 // java.util.zip.ZipFile zf
        end local 2 // java.lang.String[] files
        end local 1 // java.lang.String fname
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Lsun/tools/jar/Main;
            0    7     1  fname  Ljava/lang/String;
            0    7     2  files  [Ljava/lang/String;
            1    7     3     zf  Ljava/util/zip/ZipFile;
            2    7     4    zes  Ljava/util/Enumeration<+Ljava/util/zip/ZipEntry;>;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      fname  
      files  

  void dumpIndex(java.lang.String, sun.misc.JarIndex);
    descriptor: (Ljava/lang/String;Lsun/misc/JarIndex;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.String rootjar
        start local 2 // sun.misc.JarIndex index
         0: .line 1064
            new java.io.File
            dup
            aload 1 /* rootjar */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 3 /* jarFile */
        start local 3 // java.io.File jarFile
         1: .line 1065
            aload 3 /* jarFile */
            invokestatic sun.tools.jar.Main.createTempFileInSameDirectoryAs:(Ljava/io/File;)Ljava/io/File;
            astore 4 /* tmpFile */
        start local 4 // java.io.File tmpFile
         2: .line 1067
            aload 0 /* this */
            new java.io.FileInputStream
            dup
            aload 3 /* jarFile */
            invokespecial java.io.FileInputStream.<init>:(Ljava/io/File;)V
         3: .line 1068
            new java.io.FileOutputStream
            dup
            aload 4 /* tmpFile */
            invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;)V
         4: .line 1069
            aconst_null
            aload 2 /* index */
         5: .line 1067
            invokevirtual sun.tools.jar.Main.update:(Ljava/io/InputStream;Ljava/io/OutputStream;Ljava/io/InputStream;Lsun/misc/JarIndex;)Z
         6: .line 1069
            ifeq 13
         7: .line 1070
            aload 3 /* jarFile */
            invokevirtual java.io.File.delete:()Z
            pop
         8: .line 1071
            aload 4 /* tmpFile */
            aload 3 /* jarFile */
            invokevirtual java.io.File.renameTo:(Ljava/io/File;)Z
            ifne 13
         9: .line 1072
            new java.io.IOException
            dup
            aload 0 /* this */
            ldc "error.write.file"
            invokevirtual sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 1074
      StackMap locals: sun.tools.jar.Main java.lang.String sun.misc.JarIndex java.io.File java.io.File
      StackMap stack: java.lang.Throwable
            astore 5
        11: .line 1075
            aload 4 /* tmpFile */
            invokevirtual java.io.File.delete:()Z
            pop
        12: .line 1076
            aload 5
            athrow
        13: .line 1075
      StackMap locals:
      StackMap stack:
            aload 4 /* tmpFile */
            invokevirtual java.io.File.delete:()Z
            pop
        14: .line 1077
            return
        end local 4 // java.io.File tmpFile
        end local 3 // java.io.File jarFile
        end local 2 // sun.misc.JarIndex index
        end local 1 // java.lang.String rootjar
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   15     0     this  Lsun/tools/jar/Main;
            0   15     1  rootjar  Ljava/lang/String;
            0   15     2    index  Lsun/misc/JarIndex;
            1   15     3  jarFile  Ljava/io/File;
            2   15     4  tmpFile  Ljava/io/File;
      Exception table:
        from    to  target  type
           2    10      10  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      rootjar  
      index    

  java.util.List<java.lang.String> getJarPath(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/List;
    flags: (0x0000) 
    Code:
      stack=5, locals=10, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.String jar
         0: .line 1086
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* files */
        start local 2 // java.util.List files
         1: .line 1087
            aload 2 /* files */
            aload 1 /* jar */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         2: .line 1088
            aload 0 /* this */
            getfield sun.tools.jar.Main.jarPaths:Ljava/util/HashSet;
            aload 1 /* jar */
            invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
            pop
         3: .line 1091
            aload 1 /* jar */
            iconst_0
            iconst_0
            aload 1 /* jar */
            bipush 47
            invokevirtual java.lang.String.lastIndexOf:(I)I
            iconst_1
            iadd
            invokestatic java.lang.Math.max:(II)I
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 3 /* path */
        start local 3 // java.lang.String path
         4: .line 1096
            new java.util.jar.JarFile
            dup
            aload 1 /* jar */
            bipush 47
            getstatic java.io.File.separatorChar:C
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            invokespecial java.util.jar.JarFile.<init>:(Ljava/lang/String;)V
            astore 4 /* rf */
        start local 4 // java.util.jar.JarFile rf
         5: .line 1098
            aload 4 /* rf */
            ifnull 20
         6: .line 1099
            aload 4 /* rf */
            invokevirtual java.util.jar.JarFile.getManifest:()Ljava/util/jar/Manifest;
            astore 5 /* man */
        start local 5 // java.util.jar.Manifest man
         7: .line 1100
            aload 5 /* man */
            ifnull 20
         8: .line 1101
            aload 5 /* man */
            invokevirtual java.util.jar.Manifest.getMainAttributes:()Ljava/util/jar/Attributes;
            astore 6 /* attr */
        start local 6 // java.util.jar.Attributes attr
         9: .line 1102
            aload 6 /* attr */
            ifnull 20
        10: .line 1103
            aload 6 /* attr */
            getstatic java.util.jar.Attributes$Name.CLASS_PATH:Ljava/util/jar/Attributes$Name;
            invokevirtual java.util.jar.Attributes.getValue:(Ljava/util/jar/Attributes$Name;)Ljava/lang/String;
            astore 7 /* value */
        start local 7 // java.lang.String value
        11: .line 1104
            aload 7 /* value */
            ifnull 20
        12: .line 1105
            new java.util.StringTokenizer
            dup
            aload 7 /* value */
            invokespecial java.util.StringTokenizer.<init>:(Ljava/lang/String;)V
            astore 8 /* st */
        start local 8 // java.util.StringTokenizer st
        13: .line 1106
            goto 19
        14: .line 1107
      StackMap locals: sun.tools.jar.Main java.lang.String java.util.List java.lang.String java.util.jar.JarFile java.util.jar.Manifest java.util.jar.Attributes java.lang.String java.util.StringTokenizer
      StackMap stack:
            aload 8 /* st */
            invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
            astore 9 /* ajar */
        start local 9 // java.lang.String ajar
        15: .line 1108
            aload 9 /* ajar */
            ldc "/"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifne 19
        16: .line 1109
            aload 3 /* path */
            aload 9 /* ajar */
            invokevirtual java.lang.String.concat:(Ljava/lang/String;)Ljava/lang/String;
            astore 9 /* ajar */
        17: .line 1111
            aload 0 /* this */
            getfield sun.tools.jar.Main.jarPaths:Ljava/util/HashSet;
            aload 9 /* ajar */
            invokevirtual java.util.HashSet.contains:(Ljava/lang/Object;)Z
            ifne 19
        18: .line 1112
            aload 2 /* files */
            aload 0 /* this */
            aload 9 /* ajar */
            invokevirtual sun.tools.jar.Main.getJarPath:(Ljava/lang/String;)Ljava/util/List;
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
        end local 9 // java.lang.String ajar
        19: .line 1106
      StackMap locals:
      StackMap stack:
            aload 8 /* st */
            invokevirtual java.util.StringTokenizer.hasMoreTokens:()Z
            ifne 14
        end local 8 // java.util.StringTokenizer st
        end local 7 // java.lang.String value
        end local 6 // java.util.jar.Attributes attr
        end local 5 // java.util.jar.Manifest man
        20: .line 1120
      StackMap locals: sun.tools.jar.Main java.lang.String java.util.List java.lang.String java.util.jar.JarFile
      StackMap stack:
            aload 4 /* rf */
            invokevirtual java.util.jar.JarFile.close:()V
        21: .line 1121
            aload 2 /* files */
            areturn
        end local 4 // java.util.jar.JarFile rf
        end local 3 // java.lang.String path
        end local 2 // java.util.List files
        end local 1 // java.lang.String jar
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   22     0   this  Lsun/tools/jar/Main;
            0   22     1    jar  Ljava/lang/String;
            1   22     2  files  Ljava/util/List<Ljava/lang/String;>;
            4   22     3   path  Ljava/lang/String;
            5   22     4     rf  Ljava/util/jar/JarFile;
            7   20     5    man  Ljava/util/jar/Manifest;
            9   20     6   attr  Ljava/util/jar/Attributes;
           11   20     7  value  Ljava/lang/String;
           13   20     8     st  Ljava/util/StringTokenizer;
           15   19     9   ajar  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/lang/String;)Ljava/util/List<Ljava/lang/String;>;
    MethodParameters:
      Name  Flags
      jar   

  void genIndex(java.lang.String, java.lang.String[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.String rootjar
        start local 2 // java.lang.String[] files
         0: .line 1128
            aload 0 /* this */
            aload 1 /* rootjar */
            invokevirtual sun.tools.jar.Main.getJarPath:(Ljava/lang/String;)Ljava/util/List;
            astore 3 /* jars */
        start local 3 // java.util.List jars
         1: .line 1129
            aload 3 /* jars */
            invokeinterface java.util.List.size:()I
            istore 4 /* njars */
        start local 4 // int njars
         2: .line 1132
            iload 4 /* njars */
            iconst_1
            if_icmpne 9
            aload 2 /* files */
            ifnull 9
         3: .line 1135
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         4: goto 7
         5: .line 1136
      StackMap locals: sun.tools.jar.Main java.lang.String java.lang.String[] java.util.List int top int
      StackMap stack:
            aload 3 /* jars */
            aload 0 /* this */
            aload 2 /* files */
            iload 6 /* i */
            aaload
            invokevirtual sun.tools.jar.Main.getJarPath:(Ljava/lang/String;)Ljava/util/List;
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
         6: .line 1135
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 6 /* i */
            aload 2 /* files */
            arraylength
            if_icmplt 5
        end local 6 // int i
         8: .line 1138
            aload 3 /* jars */
            invokeinterface java.util.List.size:()I
            istore 4 /* njars */
         9: .line 1140
      StackMap locals: sun.tools.jar.Main java.lang.String java.lang.String[] java.util.List int
      StackMap stack:
            aload 3 /* jars */
            iload 4 /* njars */
            anewarray java.lang.String
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.String[]
            astore 5 /* jarfiles */
        start local 5 // java.lang.String[] jarfiles
        10: .line 1141
            new sun.misc.JarIndex
            dup
            aload 5 /* jarfiles */
            invokespecial sun.misc.JarIndex.<init>:([Ljava/lang/String;)V
            astore 6 /* index */
        start local 6 // sun.misc.JarIndex index
        11: .line 1142
            aload 0 /* this */
            aload 1 /* rootjar */
            aload 6 /* index */
            invokevirtual sun.tools.jar.Main.dumpIndex:(Ljava/lang/String;Lsun/misc/JarIndex;)V
        12: .line 1143
            return
        end local 6 // sun.misc.JarIndex index
        end local 5 // java.lang.String[] jarfiles
        end local 4 // int njars
        end local 3 // java.util.List jars
        end local 2 // java.lang.String[] files
        end local 1 // java.lang.String rootjar
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   13     0      this  Lsun/tools/jar/Main;
            0   13     1   rootjar  Ljava/lang/String;
            0   13     2     files  [Ljava/lang/String;
            1   13     3      jars  Ljava/util/List<Ljava/lang/String;>;
            2   13     4     njars  I
           10   13     5  jarfiles  [Ljava/lang/String;
            4    8     6         i  I
           11   13     6     index  Lsun/misc/JarIndex;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      rootjar  
      files    

  void printEntry(java.util.zip.ZipEntry, java.lang.String[]);
    descriptor: (Ljava/util/zip/ZipEntry;[Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=8, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.util.zip.ZipEntry e
        start local 2 // java.lang.String[] files
         0: .line 1149
            aload 2 /* files */
            ifnonnull 3
         1: .line 1150
            aload 0 /* this */
            aload 1 /* e */
            invokevirtual sun.tools.jar.Main.printEntry:(Ljava/util/zip/ZipEntry;)V
         2: .line 1151
            goto 11
         3: .line 1152
      StackMap locals:
      StackMap stack:
            aload 1 /* e */
            invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
            astore 3 /* name */
        start local 3 // java.lang.String name
         4: .line 1153
            aload 2 /* files */
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 10
      StackMap locals: sun.tools.jar.Main java.util.zip.ZipEntry java.lang.String[] java.lang.String top int int java.lang.String[]
      StackMap stack:
         5: aload 7
            iload 5
            aaload
            astore 4 /* file */
        start local 4 // java.lang.String file
         6: .line 1154
            aload 3 /* name */
            aload 4 /* file */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 9
         7: .line 1155
            aload 0 /* this */
            aload 1 /* e */
            invokevirtual sun.tools.jar.Main.printEntry:(Ljava/util/zip/ZipEntry;)V
         8: .line 1156
            return
        end local 4 // java.lang.String file
         9: .line 1153
      StackMap locals:
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
        10: iload 5
            iload 6
            if_icmplt 5
        end local 3 // java.lang.String name
        11: .line 1160
      StackMap locals: sun.tools.jar.Main java.util.zip.ZipEntry java.lang.String[]
      StackMap stack:
            return
        end local 2 // java.lang.String[] files
        end local 1 // java.util.zip.ZipEntry e
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   12     0   this  Lsun/tools/jar/Main;
            0   12     1      e  Ljava/util/zip/ZipEntry;
            0   12     2  files  [Ljava/lang/String;
            4   11     3   name  Ljava/lang/String;
            6    9     4   file  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      e      
      files  

  void printEntry(java.util.zip.ZipEntry);
    descriptor: (Ljava/util/zip/ZipEntry;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.util.zip.ZipEntry e
         0: .line 1166
            aload 0 /* this */
            getfield sun.tools.jar.Main.vflag:Z
            ifeq 12
         1: .line 1167
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 2 /* sb */
        start local 2 // java.lang.StringBuilder sb
         2: .line 1168
            aload 1 /* e */
            invokevirtual java.util.zip.ZipEntry.getSize:()J
            invokestatic java.lang.Long.toString:(J)Ljava/lang/String;
            astore 3 /* s */
        start local 3 // java.lang.String s
         3: .line 1169
            bipush 6
            aload 3 /* s */
            invokevirtual java.lang.String.length:()I
            isub
            istore 4 /* i */
        start local 4 // int i
         4: goto 7
         5: .line 1170
      StackMap locals: java.lang.StringBuilder java.lang.String int
      StackMap stack:
            aload 2 /* sb */
            bipush 32
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         6: .line 1169
            iinc 4 /* i */ -1
      StackMap locals:
      StackMap stack:
         7: iload 4 /* i */
            ifgt 5
        end local 4 // int i
         8: .line 1172
            aload 2 /* sb */
            aload 3 /* s */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 32
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            new java.util.Date
            dup
            aload 1 /* e */
            invokevirtual java.util.zip.ZipEntry.getTime:()J
            invokespecial java.util.Date.<init>:(J)V
            invokevirtual java.util.Date.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         9: .line 1173
            aload 2 /* sb */
            bipush 32
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 1 /* e */
            invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        10: .line 1174
            aload 0 /* this */
            aload 2 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
        end local 3 // java.lang.String s
        end local 2 // java.lang.StringBuilder sb
        11: .line 1175
            goto 13
        12: .line 1176
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* e */
            invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
        13: .line 1178
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.util.zip.ZipEntry e
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0  this  Lsun/tools/jar/Main;
            0   14     1     e  Ljava/util/zip/ZipEntry;
            2   11     2    sb  Ljava/lang/StringBuilder;
            3   11     3     s  Ljava/lang/String;
            4    8     4     i  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      e     

  void usageError();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // sun.tools.jar.Main this
         0: .line 1184
            aload 0 /* this */
            aload 0 /* this */
            ldc "usage"
            invokevirtual sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.error:(Ljava/lang/String;)V
         1: .line 1185
            return
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/tools/jar/Main;

  void fatalError(java.lang.Exception);
    descriptor: (Ljava/lang/Exception;)V
    flags: (0x0000) 
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.Exception e
         0: .line 1191
            aload 1 /* e */
            invokevirtual java.lang.Exception.printStackTrace:()V
         1: .line 1192
            return
        end local 1 // java.lang.Exception e
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/tools/jar/Main;
            0    2     1     e  Ljava/lang/Exception;
    MethodParameters:
      Name  Flags
      e     

  void fatalError(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.String s
         0: .line 1199
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield sun.tools.jar.Main.program: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 1 /* s */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.error:(Ljava/lang/String;)V
         1: .line 1200
            return
        end local 1 // java.lang.String s
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/tools/jar/Main;
            0    2     1     s  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      s     

  protected void output(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.String s
         0: .line 1206
            aload 0 /* this */
            getfield sun.tools.jar.Main.out:Ljava/io/PrintStream;
            aload 1 /* s */
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         1: .line 1207
            return
        end local 1 // java.lang.String s
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/tools/jar/Main;
            0    2     1     s  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      s     

  protected void error(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.String s
         0: .line 1213
            aload 0 /* this */
            getfield sun.tools.jar.Main.err:Ljava/io/PrintStream;
            aload 1 /* s */
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         1: .line 1214
            return
        end local 1 // java.lang.String s
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/tools/jar/Main;
            0    2     1     s  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      s     

  public static void main(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // java.lang.String[] args
         0: .line 1220
            new sun.tools.jar.Main
            dup
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc "jar"
            invokespecial sun.tools.jar.Main.<init>:(Ljava/io/PrintStream;Ljava/io/PrintStream;Ljava/lang/String;)V
            astore 1 /* jartool */
        start local 1 // sun.tools.jar.Main jartool
         1: .line 1221
            aload 1 /* jartool */
            aload 0 /* args */
            invokevirtual sun.tools.jar.Main.run:([Ljava/lang/String;)Z
            ifeq 2
            iconst_0
            goto 3
      StackMap locals: sun.tools.jar.Main
      StackMap stack:
         2: iconst_1
      StackMap locals:
      StackMap stack: int
         3: invokestatic java.lang.System.exit:(I)V
         4: .line 1222
            return
        end local 1 // sun.tools.jar.Main jartool
        end local 0 // java.lang.String[] args
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     args  [Ljava/lang/String;
            1    5     1  jartool  Lsun/tools/jar/Main;
    MethodParameters:
      Name  Flags
      args  
}
SourceFile: "Main.java"
NestMembers:
  sun.tools.jar.Main$1  sun.tools.jar.Main$CRC32OutputStream
InnerClasses:
  public Name = java.util.jar.Attributes$Name of java.util.jar.Attributes
  sun.tools.jar.Main$1
  private CRC32OutputStream = sun.tools.jar.Main$CRC32OutputStream of sun.tools.jar.Main