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.PrintWriter out;
    descriptor: Ljava/io/PrintWriter;
    flags: (0x0000) 

  java.io.PrintWriter err;
    descriptor: Ljava/io/PrintWriter;
    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 rootjar;
    descriptor: Ljava/lang/String;
    flags: (0x0000) 

  private static final int BASE_VERSION;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  java.util.Map<java.lang.String, sun.tools.jar.Main$Entry> entryMap;
    descriptor: Ljava/util/Map;
    flags: (0x0000) 
    Signature: Ljava/util/Map<Ljava/lang/String;Lsun/tools/jar/Main$Entry;>;

  java.util.Set<sun.tools.jar.Main$Entry> entries;
    descriptor: Ljava/util/Set;
    flags: (0x0000) 
    Signature: Ljava/util/Set<Lsun/tools/jar/Main$Entry;>;

  java.util.Map<java.lang.String, byte[]> moduleInfos;
    descriptor: Ljava/util/Map;
    flags: (0x0000) 
    Signature: Ljava/util/Map<Ljava/lang/String;[B>;

  java.util.Map<java.lang.Integer, java.util.Set<java.lang.String>> pathsMap;
    descriptor: Ljava/util/Map;
    flags: (0x0000) 
    Signature: Ljava/util/Map<Ljava/lang/Integer;Ljava/util/Set<Ljava/lang/String;>;>;

  java.util.Map<java.lang.Integer, java.lang.String[]> filesMap;
    descriptor: Ljava/util/Map;
    flags: (0x0000) 
    Signature: Ljava/util/Map<Ljava/lang/Integer;[Ljava/lang/String;>;

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

  int releaseValue;
    descriptor: I
    flags: (0x0000) 

  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 nflag;
    descriptor: Z
    flags: (0x0000) 

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

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

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

  java.util.function.Consumer<java.io.PrintWriter> info;
    descriptor: Ljava/util/function/Consumer;
    flags: (0x0000) 
    Signature: Ljava/util/function/Consumer<Ljava/io/PrintWriter;>;

  java.lang.module.ModuleDescriptor$Version moduleVersion;
    descriptor: Ljava/lang/module/ModuleDescriptor$Version;
    flags: (0x0000) 

  java.util.regex.Pattern modulesToHash;
    descriptor: Ljava/util/regex/Pattern;
    flags: (0x0000) 

  jdk.internal.module.ModuleResolution moduleResolution;
    descriptor: Ljdk/internal/module/ModuleResolution;
    flags: (0x0000) 

  java.lang.module.ModuleFinder moduleFinder;
    descriptor: Ljava/lang/module/ModuleFinder;
    flags: (0x0000) 

  static final java.lang.String MODULE_INFO;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "module-info.class"

  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 VERSIONS_DIR;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "META-INF/versions/"

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

  static final int VERSIONS_DIR_LENGTH;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  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 java.util.Comparator<java.lang.String> ENTRYNAME_COMPARATOR;
    descriptor: Ljava/util/Comparator;
    flags: (0x0008) ACC_STATIC
    Signature: Ljava/util/Comparator<Ljava/lang/String;>;

  static java.util.Comparator<java.util.zip.ZipEntry> ENTRY_COMPARATOR;
    descriptor: Ljava/util/Comparator;
    flags: (0x0008) ACC_STATIC
    Signature: Ljava/util/Comparator<Ljava/util/zip/ZipEntry;>;

  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 81
            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 170
            ldc "META-INF/versions/"
            invokevirtual java.lang.String.length:()I
            putstatic sun.tools.jar.Main.VERSIONS_DIR_LENGTH:I
         4: .line 179
            ldc "sun.tools.jar.useExtractionTime"
            invokestatic java.lang.Boolean.getBoolean:(Ljava/lang/String;)Z
         5: .line 178
            putstatic sun.tools.jar.Main.useExtractionTime:Z
         6: .line 186
            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;
         7: .line 187
            goto 10
      StackMap locals:
      StackMap stack: java.util.MissingResourceException
         8: pop
         9: .line 188
            new java.lang.Error
            dup
            ldc "Fatal: Resource for jar is missing"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 2240
      StackMap locals:
      StackMap stack:
            invokedynamic compare()Ljava/util/Comparator;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;Ljava/lang/Object;)I
                  sun/tools/jar/Main.lambda$0(Ljava/lang/String;Ljava/lang/String;)I (6)
                  (Ljava/lang/String;Ljava/lang/String;)I
            putstatic sun.tools.jar.Main.ENTRYNAME_COMPARATOR:Ljava/util/Comparator;
        11: .line 2278
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/util/zip/ZipEntry.getName()Ljava/lang/String; (5)
                  (Ljava/util/zip/ZipEntry;)Ljava/lang/String;
            getstatic sun.tools.jar.Main.ENTRYNAME_COMPARATOR:Ljava/util/Comparator;
            invokestatic java.util.Comparator.comparing:(Ljava/util/function/Function;Ljava/util/Comparator;)Ljava/util/Comparator;
        12: .line 2277
            putstatic sun.tools.jar.Main.ENTRY_COMPARATOR:Ljava/util/Comparator;
        13: .line 2278
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           6     7       8  Class java.util.MissingResourceException

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

  static java.lang.String formatMsg(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // java.lang.String key
        start local 1 // java.lang.String arg
         0: .line 201
            aload 0 /* key */
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* msg */
        start local 2 // java.lang.String msg
         1: .line 202
            iconst_1
            anewarray java.lang.String
            astore 3 /* args */
        start local 3 // java.lang.String[] args
         2: .line 203
            aload 3 /* args */
            iconst_0
            aload 1 /* arg */
            aastore
         3: .line 204
            aload 2 /* msg */
            aload 3 /* args */
            invokestatic java.text.MessageFormat.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            areturn
        end local 3 // java.lang.String[] args
        end local 2 // java.lang.String msg
        end local 1 // java.lang.String arg
        end local 0 // java.lang.String key
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0   key  Ljava/lang/String;
            0    4     1   arg  Ljava/lang/String;
            1    4     2   msg  Ljava/lang/String;
            2    4     3  args  [Ljava/lang/String;
    MethodParameters:
      Name  Flags
      key   
      arg   

  static 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: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // java.lang.String key
        start local 1 // java.lang.String arg
        start local 2 // java.lang.String arg1
         0: .line 208
            aload 0 /* key */
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* msg */
        start local 3 // java.lang.String msg
         1: .line 209
            iconst_2
            anewarray java.lang.String
            astore 4 /* args */
        start local 4 // java.lang.String[] args
         2: .line 210
            aload 4 /* args */
            iconst_0
            aload 1 /* arg */
            aastore
         3: .line 211
            aload 4 /* args */
            iconst_1
            aload 2 /* arg1 */
            aastore
         4: .line 212
            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 arg1
        end local 1 // java.lang.String arg
        end local 0 // java.lang.String key
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0   key  Ljava/lang/String;
            0    5     1   arg  Ljava/lang/String;
            0    5     2  arg1  Ljava/lang/String;
            1    5     3   msg  Ljava/lang/String;
            2    5     4  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=5, 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 215
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 85
            aload 0 /* this */
            ldc ""
            putfield sun.tools.jar.Main.zname:Ljava/lang/String;
         2: .line 86
            aload 0 /* this */
            aconst_null
            putfield sun.tools.jar.Main.rootjar:Ljava/lang/String;
         3: .line 117
            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 120
            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 123
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield sun.tools.jar.Main.moduleInfos:Ljava/util/Map;
         6: .line 127
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield sun.tools.jar.Main.pathsMap:Ljava/util/Map;
         7: .line 130
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield sun.tools.jar.Main.filesMap:Ljava/util/Map;
         8: .line 138
            aload 0 /* this */
            iconst_m1
            putfield sun.tools.jar.Main.releaseValue:I
         9: .line 155
            aload 0 /* this */
            iconst_0
            putfield sun.tools.jar.Main.suppressDeprecateMsg:Z
        10: .line 163
            aload 0 /* this */
            invokestatic jdk.internal.module.ModuleResolution.empty:()Ljdk/internal/module/ModuleResolution;
            putfield sun.tools.jar.Main.moduleResolution:Ljdk/internal/module/ModuleResolution;
        11: .line 164
            aload 0 /* this */
            iconst_0
            anewarray java.nio.file.Path
            invokestatic java.lang.module.ModuleFinder.of:([Ljava/nio/file/Path;)Ljava/lang/module/ModuleFinder;
            putfield sun.tools.jar.Main.moduleFinder:Ljava/lang/module/ModuleFinder;
        12: .line 1237
            aload 0 /* this */
            sipush 8192
            newarray 8
            putfield sun.tools.jar.Main.copyBuf:[B
        13: .line 1531
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield sun.tools.jar.Main.jarPaths:Ljava/util/HashSet;
        14: .line 216
            aload 0 /* this */
            new java.io.PrintWriter
            dup
            aload 1 /* out */
            iconst_1
            invokespecial java.io.PrintWriter.<init>:(Ljava/io/OutputStream;Z)V
            putfield sun.tools.jar.Main.out:Ljava/io/PrintWriter;
        15: .line 217
            aload 0 /* this */
            new java.io.PrintWriter
            dup
            aload 2 /* err */
            iconst_1
            invokespecial java.io.PrintWriter.<init>:(Ljava/io/OutputStream;Z)V
            putfield sun.tools.jar.Main.err:Ljava/io/PrintWriter;
        16: .line 218
            aload 0 /* this */
            aload 3 /* program */
            putfield sun.tools.jar.Main.program:Ljava/lang/String;
        17: .line 219
            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   18     0     this  Lsun/tools/jar/Main;
            0   18     1      out  Ljava/io/PrintStream;
            0   18     2      err  Ljava/io/PrintStream;
            0   18     3  program  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      out      
      err      
      program  

  public void <init>(java.io.PrintWriter, java.io.PrintWriter, java.lang.String);
    descriptor: (Ljava/io/PrintWriter;Ljava/io/PrintWriter;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.PrintWriter out
        start local 2 // java.io.PrintWriter err
        start local 3 // java.lang.String program
         0: .line 221
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 85
            aload 0 /* this */
            ldc ""
            putfield sun.tools.jar.Main.zname:Ljava/lang/String;
         2: .line 86
            aload 0 /* this */
            aconst_null
            putfield sun.tools.jar.Main.rootjar:Ljava/lang/String;
         3: .line 117
            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 120
            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 123
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield sun.tools.jar.Main.moduleInfos:Ljava/util/Map;
         6: .line 127
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield sun.tools.jar.Main.pathsMap:Ljava/util/Map;
         7: .line 130
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield sun.tools.jar.Main.filesMap:Ljava/util/Map;
         8: .line 138
            aload 0 /* this */
            iconst_m1
            putfield sun.tools.jar.Main.releaseValue:I
         9: .line 155
            aload 0 /* this */
            iconst_0
            putfield sun.tools.jar.Main.suppressDeprecateMsg:Z
        10: .line 163
            aload 0 /* this */
            invokestatic jdk.internal.module.ModuleResolution.empty:()Ljdk/internal/module/ModuleResolution;
            putfield sun.tools.jar.Main.moduleResolution:Ljdk/internal/module/ModuleResolution;
        11: .line 164
            aload 0 /* this */
            iconst_0
            anewarray java.nio.file.Path
            invokestatic java.lang.module.ModuleFinder.of:([Ljava/nio/file/Path;)Ljava/lang/module/ModuleFinder;
            putfield sun.tools.jar.Main.moduleFinder:Ljava/lang/module/ModuleFinder;
        12: .line 1237
            aload 0 /* this */
            sipush 8192
            newarray 8
            putfield sun.tools.jar.Main.copyBuf:[B
        13: .line 1531
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield sun.tools.jar.Main.jarPaths:Ljava/util/HashSet;
        14: .line 222
            aload 0 /* this */
            aload 1 /* out */
            putfield sun.tools.jar.Main.out:Ljava/io/PrintWriter;
        15: .line 223
            aload 0 /* this */
            aload 2 /* err */
            putfield sun.tools.jar.Main.err:Ljava/io/PrintWriter;
        16: .line 224
            aload 0 /* this */
            aload 3 /* program */
            putfield sun.tools.jar.Main.program:Ljava/lang/String;
        17: .line 225
            return
        end local 3 // java.lang.String program
        end local 2 // java.io.PrintWriter err
        end local 1 // java.io.PrintWriter out
        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      out  Ljava/io/PrintWriter;
            0   18     2      err  Ljava/io/PrintWriter;
            0   18     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 233
            aload 0 /* file */
            invokevirtual java.io.File.getParentFile:()Ljava/io/File;
            astore 1 /* dir */
        start local 1 // java.io.File dir
         1: .line 234
            aload 1 /* dir */
            ifnonnull 3
         2: .line 235
            new java.io.File
            dup
            ldc "."
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 1 /* dir */
         3: .line 236
      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=6, locals=15, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.String[] args
         0: .line 246
            aload 0 /* this */
            iconst_1
            putfield sun.tools.jar.Main.ok:Z
         1: .line 247
            aload 0 /* this */
            aload 1 /* args */
            invokevirtual sun.tools.jar.Main.parseArgs:([Ljava/lang/String;)Z
            ifne 3
         2: .line 248
            iconst_0
            ireturn
         3: .line 250
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 2 /* tmpFile */
        start local 2 // java.io.File tmpFile
         4: .line 252
            aload 0 /* this */
            getfield sun.tools.jar.Main.cflag:Z
            ifne 5
            aload 0 /* this */
            getfield sun.tools.jar.Main.uflag:Z
            ifeq 9
         5: .line 253
      StackMap locals: java.io.File
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            ifnull 9
         6: .line 257
            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;
         7: .line 258
            aload 0 /* this */
            getfield sun.tools.jar.Main.zname:Ljava/lang/String;
            ldc "./"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 9
         8: .line 259
            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;
         9: .line 263
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.cflag:Z
            ifeq 113
        10: .line 264
            aconst_null
            astore 3 /* manifest */
        start local 3 // java.util.jar.Manifest manifest
        11: .line 265
            aload 0 /* this */
            getfield sun.tools.jar.Main.Mflag:Z
            ifne 33
        12: .line 266
            aload 0 /* this */
            getfield sun.tools.jar.Main.mname:Ljava/lang/String;
            ifnull 22
        13: .line 267
            aconst_null
            astore 4
            aconst_null
            astore 5
        14: 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 6 /* in */
        start local 6 // java.io.InputStream in
        15: .line 268
            new java.util.jar.Manifest
            dup
            new java.io.BufferedInputStream
            dup
            aload 6 /* in */
            invokespecial java.io.BufferedInputStream.<init>:(Ljava/io/InputStream;)V
            invokespecial java.util.jar.Manifest.<init>:(Ljava/io/InputStream;)V
            astore 3 /* manifest */
        16: .line 269
            aload 6 /* in */
            ifnull 23
            aload 6 /* in */
            invokevirtual java.io.InputStream.close:()V
            goto 23
      StackMap locals: sun.tools.jar.Main java.lang.String[] java.io.File java.util.jar.Manifest java.lang.Throwable java.lang.Throwable java.io.InputStream
      StackMap stack: java.lang.Throwable
        17: astore 4
            aload 6 /* in */
            ifnull 18
            aload 6 /* in */
            invokevirtual java.io.InputStream.close:()V
        end local 6 // java.io.InputStream in
      StackMap locals:
      StackMap stack:
        18: aload 4
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        19: astore 5
            aload 4
            ifnonnull 20
            aload 5
            astore 4
            goto 21
      StackMap locals:
      StackMap stack:
        20: aload 4
            aload 5
            if_acmpeq 21
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        21: aload 4
            athrow
        22: .line 271
      StackMap locals:
      StackMap stack:
            new java.util.jar.Manifest
            dup
            invokespecial java.util.jar.Manifest.<init>:()V
            astore 3 /* manifest */
        23: .line 273
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* manifest */
            invokevirtual sun.tools.jar.Main.addVersion:(Ljava/util/jar/Manifest;)V
        24: .line 274
            aload 0 /* this */
            aload 3 /* manifest */
            invokevirtual sun.tools.jar.Main.addCreatedBy:(Ljava/util/jar/Manifest;)V
        25: .line 275
            aload 0 /* this */
            aload 3 /* manifest */
            invokevirtual sun.tools.jar.Main.isAmbiguousMainClass:(Ljava/util/jar/Manifest;)Z
            ifeq 29
        26: .line 443
            aload 2 /* tmpFile */
            ifnull 28
            aload 2 /* tmpFile */
            invokevirtual java.io.File.exists:()Z
            ifeq 28
        27: .line 444
            aload 2 /* tmpFile */
            invokevirtual java.io.File.delete:()Z
            pop
        28: .line 276
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        29: .line 278
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.ename:Ljava/lang/String;
            ifnull 31
        30: .line 279
            aload 0 /* this */
            aload 3 /* 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
        31: .line 281
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.isMultiRelease:Z
            ifeq 33
        32: .line 282
            aload 0 /* this */
            aload 3 /* manifest */
            invokevirtual sun.tools.jar.Main.addMultiRelease:(Ljava/util/jar/Manifest;)V
        33: .line 285
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.tools.jar.Main.expand:()V
        34: .line 286
            aload 0 /* this */
            getfield sun.tools.jar.Main.moduleInfos:Ljava/util/Map;
            invokeinterface java.util.Map.isEmpty:()Z
            ifne 45
        35: .line 288
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 4 /* jentries */
        start local 4 // java.util.Set jentries
        36: .line 290
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 5 /* packages */
        start local 5 // java.util.Set packages
        37: .line 291
            aload 0 /* this */
            getfield sun.tools.jar.Main.entries:Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
        38: .line 292
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  sun/tools/jar/Main.lambda$2(Lsun/tools/jar/Main$Entry;)Z (6)
                  (Lsun/tools/jar/Main$Entry;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
        39: .line 293
            aload 0 /* this */
            aload 5 /* packages */
            aload 4 /* jentries */
            invokedynamic accept(Lsun/tools/jar/Main;Ljava/util/Set;Ljava/util/Set;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  sun/tools/jar/Main.lambda$3(Ljava/util/Set;Ljava/util/Set;Lsun/tools/jar/Main$Entry;)V (7)
                  (Lsun/tools/jar/Main$Entry;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        40: .line 297
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.tools.jar.Main.moduleInfos:Ljava/util/Map;
            aload 5 /* packages */
            invokevirtual sun.tools.jar.Main.addExtendedModuleAttributes:(Ljava/util/Map;Ljava/util/Set;)V
        41: .line 300
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.tools.jar.Main.moduleInfos:Ljava/util/Map;
            ldc "module-info.class"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast byte[]
            aload 4 /* jentries */
            invokevirtual sun.tools.jar.Main.checkModuleInfo:([BLjava/util/Set;)Z
            ifne 50
        42: .line 443
            aload 2 /* tmpFile */
            ifnull 44
            aload 2 /* tmpFile */
            invokevirtual java.io.File.exists:()Z
            ifeq 44
        43: .line 444
            aload 2 /* tmpFile */
            invokevirtual java.io.File.delete:()Z
            pop
        44: .line 301
      StackMap locals: java.util.Set java.util.Set
      StackMap stack:
            iconst_0
            ireturn
        end local 5 // java.util.Set packages
        end local 4 // java.util.Set jentries
        45: .line 303
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.moduleVersion:Ljava/lang/module/ModuleDescriptor$Version;
            ifnonnull 46
            aload 0 /* this */
            getfield sun.tools.jar.Main.modulesToHash:Ljava/util/regex/Pattern;
            ifnull 50
        46: .line 304
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "error.module.options.without.info"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.error:(Ljava/lang/String;)V
        47: .line 443
            aload 2 /* tmpFile */
            ifnull 49
            aload 2 /* tmpFile */
            invokevirtual java.io.File.exists:()Z
            ifeq 49
        48: .line 444
            aload 2 /* tmpFile */
            invokevirtual java.io.File.delete:()Z
            pop
        49: .line 305
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        50: .line 307
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.vflag:Z
            ifeq 52
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            ifnonnull 52
        51: .line 311
            aload 0 /* this */
            iconst_0
            putfield sun.tools.jar.Main.vflag:Z
        52: .line 313
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            ifnonnull 54
        53: .line 314
            ldc "tmpjar"
            goto 55
        54: .line 315
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            getstatic java.io.File.separatorChar:C
            invokevirtual java.lang.String.indexOf:(I)I
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
        55: .line 313
      StackMap locals:
      StackMap stack: java.lang.String
            astore 4 /* tmpbase */
        start local 4 // java.lang.String tmpbase
        56: .line 317
            aload 0 /* this */
            aload 4 /* tmpbase */
            ldc ".jar"
            invokevirtual sun.tools.jar.Main.createTemporaryFile:(Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;
            astore 2 /* tmpFile */
        57: .line 318
            aconst_null
            astore 5
            aconst_null
            astore 6
        58: new java.io.FileOutputStream
            dup
            aload 2 /* tmpFile */
            invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;)V
            astore 7 /* out */
        start local 7 // java.io.OutputStream out
        59: .line 319
            aload 0 /* this */
            new java.io.BufferedOutputStream
            dup
            aload 7 /* out */
            sipush 4096
            invokespecial java.io.BufferedOutputStream.<init>:(Ljava/io/OutputStream;I)V
            aload 3 /* manifest */
            invokevirtual sun.tools.jar.Main.create:(Ljava/io/OutputStream;Ljava/util/jar/Manifest;)V
        60: .line 320
            aload 7 /* out */
            ifnull 66
            aload 7 /* out */
            invokevirtual java.io.OutputStream.close:()V
            goto 66
      StackMap locals: sun.tools.jar.Main java.lang.String[] java.io.File java.util.jar.Manifest java.lang.String java.lang.Throwable java.lang.Throwable java.io.OutputStream
      StackMap stack: java.lang.Throwable
        61: astore 5
            aload 7 /* out */
            ifnull 62
            aload 7 /* out */
            invokevirtual java.io.OutputStream.close:()V
        end local 7 // java.io.OutputStream out
      StackMap locals:
      StackMap stack:
        62: aload 5
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        63: astore 6
            aload 5
            ifnonnull 64
            aload 6
            astore 5
            goto 65
      StackMap locals:
      StackMap stack:
        64: aload 5
            aload 6
            if_acmpeq 65
            aload 5
            aload 6
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        65: aload 5
            athrow
        66: .line 321
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.nflag:Z
            ifeq 111
        67: .line 322
            aload 0 /* this */
            getfield sun.tools.jar.Main.suppressDeprecateMsg:Z
            ifne 69
        68: .line 323
            aload 0 /* this */
            ldc "warn.flag.is.deprecated"
            ldc "-n"
            invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.warn:(Ljava/lang/String;)V
        69: .line 325
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 4 /* tmpbase */
            ldc ".pack"
            invokevirtual sun.tools.jar.Main.createTemporaryFile:(Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;
            astore 5 /* packFile */
        start local 5 // java.io.File packFile
        70: .line 327
            invokestatic java.util.jar.Pack200.newPacker:()Ljava/util/jar/Pack200$Packer;
            astore 6 /* packer */
        start local 6 // java.util.jar.Pack200$Packer packer
        71: .line 328
            aload 6 /* packer */
            invokeinterface java.util.jar.Pack200$Packer.properties:()Ljava/util/SortedMap;
            astore 7 /* p */
        start local 7 // java.util.Map p
        72: .line 329
            aload 7 /* p */
            ldc "pack.effort"
            ldc "1"
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        73: .line 330
            aconst_null
            astore 8
            aconst_null
            astore 9
        74: new java.util.jar.JarFile
            dup
            aload 2 /* tmpFile */
            invokevirtual java.io.File.getCanonicalPath:()Ljava/lang/String;
            invokespecial java.util.jar.JarFile.<init>:(Ljava/lang/String;)V
            astore 10 /* jarFile */
        start local 10 // java.util.jar.JarFile jarFile
        75: .line 331
            new java.io.FileOutputStream
            dup
            aload 5 /* packFile */
            invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;)V
            astore 11 /* pack */
        start local 11 // java.io.OutputStream pack
        76: .line 333
            aload 6 /* packer */
            aload 10 /* jarFile */
            aload 11 /* pack */
            invokeinterface java.util.jar.Pack200$Packer.pack:(Ljava/util/jar/JarFile;Ljava/io/OutputStream;)V
        77: .line 334
            aload 11 /* pack */
            ifnull 80
            aload 11 /* pack */
            invokevirtual java.io.OutputStream.close:()V
            goto 80
      StackMap locals: sun.tools.jar.Main java.lang.String[] java.io.File java.util.jar.Manifest java.lang.String java.io.File java.util.jar.Pack200$Packer java.util.Map java.lang.Throwable java.lang.Throwable java.util.jar.JarFile java.io.OutputStream
      StackMap stack: java.lang.Throwable
        78: astore 8
            aload 11 /* pack */
            ifnull 79
            aload 11 /* pack */
            invokevirtual java.io.OutputStream.close:()V
        end local 11 // java.io.OutputStream pack
      StackMap locals:
      StackMap stack:
        79: aload 8
            athrow
      StackMap locals:
      StackMap stack:
        80: aload 10 /* jarFile */
            ifnull 88
            aload 10 /* jarFile */
            invokevirtual java.util.jar.JarFile.close:()V
            goto 88
      StackMap locals:
      StackMap stack: java.lang.Throwable
        81: astore 9
            aload 8
            ifnonnull 82
            aload 9
            astore 8
            goto 83
      StackMap locals:
      StackMap stack:
        82: aload 8
            aload 9
            if_acmpeq 83
            aload 8
            aload 9
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        83: aload 10 /* jarFile */
            ifnull 84
            aload 10 /* jarFile */
            invokevirtual java.util.jar.JarFile.close:()V
        end local 10 // java.util.jar.JarFile jarFile
      StackMap locals:
      StackMap stack:
        84: aload 8
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        85: astore 9
            aload 8
            ifnonnull 86
            aload 9
            astore 8
            goto 87
      StackMap locals:
      StackMap stack:
        86: aload 8
            aload 9
            if_acmpeq 87
            aload 8
            aload 9
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        87: aload 8
            athrow
        88: .line 335
      StackMap locals:
      StackMap stack:
            aload 2 /* tmpFile */
            invokevirtual java.io.File.exists:()Z
            ifeq 90
        89: .line 336
            aload 2 /* tmpFile */
            invokevirtual java.io.File.delete:()Z
            pop
        90: .line 338
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 4 /* tmpbase */
            ldc ".jar"
            invokevirtual sun.tools.jar.Main.createTemporaryFile:(Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;
            astore 2 /* tmpFile */
        91: .line 339
            aconst_null
            astore 8
            aconst_null
            astore 9
        92: new java.io.FileOutputStream
            dup
            aload 2 /* tmpFile */
            invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;)V
            astore 10 /* out */
        start local 10 // java.io.OutputStream out
        93: .line 340
            new java.util.jar.JarOutputStream
            dup
            aload 10 /* out */
            invokespecial java.util.jar.JarOutputStream.<init>:(Ljava/io/OutputStream;)V
            astore 11 /* jos */
        start local 11 // java.util.jar.JarOutputStream jos
        94: .line 342
            invokestatic java.util.jar.Pack200.newUnpacker:()Ljava/util/jar/Pack200$Unpacker;
            astore 12 /* unpacker */
        start local 12 // java.util.jar.Pack200$Unpacker unpacker
        95: .line 343
            aload 12 /* unpacker */
            aload 5 /* packFile */
            aload 11 /* jos */
            invokeinterface java.util.jar.Pack200$Unpacker.unpack:(Ljava/io/File;Ljava/util/jar/JarOutputStream;)V
        end local 12 // java.util.jar.Pack200$Unpacker unpacker
        96: .line 344
            aload 11 /* jos */
            ifnull 99
            aload 11 /* jos */
            invokevirtual java.util.jar.JarOutputStream.close:()V
            goto 99
      StackMap locals: sun.tools.jar.Main java.lang.String[] java.io.File java.util.jar.Manifest java.lang.String java.io.File java.util.jar.Pack200$Packer java.util.Map java.lang.Throwable java.lang.Throwable java.io.OutputStream java.util.jar.JarOutputStream
      StackMap stack: java.lang.Throwable
        97: astore 8
            aload 11 /* jos */
            ifnull 98
            aload 11 /* jos */
            invokevirtual java.util.jar.JarOutputStream.close:()V
        end local 11 // java.util.jar.JarOutputStream jos
      StackMap locals:
      StackMap stack:
        98: aload 8
            athrow
      StackMap locals:
      StackMap stack:
        99: aload 10 /* out */
            ifnull 110
            aload 10 /* out */
            invokevirtual java.io.OutputStream.close:()V
            goto 110
      StackMap locals:
      StackMap stack: java.lang.Throwable
       100: astore 9
            aload 8
            ifnonnull 101
            aload 9
            astore 8
            goto 102
      StackMap locals:
      StackMap stack:
       101: aload 8
            aload 9
            if_acmpeq 102
            aload 8
            aload 9
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
       102: aload 10 /* out */
            ifnull 103
            aload 10 /* out */
            invokevirtual java.io.OutputStream.close:()V
        end local 10 // java.io.OutputStream out
      StackMap locals:
      StackMap stack:
       103: aload 8
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
       104: astore 9
            aload 8
            ifnonnull 105
            aload 9
            astore 8
            goto 106
      StackMap locals:
      StackMap stack:
       105: aload 8
            aload 9
            if_acmpeq 106
            aload 8
            aload 9
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
       106: aload 8
            athrow
        end local 7 // java.util.Map p
        end local 6 // java.util.jar.Pack200$Packer packer
       107: .line 345
      StackMap locals: sun.tools.jar.Main java.lang.String[] java.io.File java.util.jar.Manifest java.lang.String java.io.File
      StackMap stack: java.lang.Throwable
            astore 13
       108: .line 346
            aload 5 /* packFile */
            invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
            invokestatic java.nio.file.Files.deleteIfExists:(Ljava/nio/file/Path;)Z
            pop
       109: .line 347
            aload 13
            athrow
       110: .line 346
      StackMap locals:
      StackMap stack:
            aload 5 /* packFile */
            invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
            invokestatic java.nio.file.Files.deleteIfExists:(Ljava/nio/file/Path;)Z
            pop
        end local 5 // java.io.File packFile
       111: .line 349
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* tmpFile */
            invokevirtual sun.tools.jar.Main.validateAndClose:(Ljava/io/File;)V
        end local 4 // java.lang.String tmpbase
        end local 3 // java.util.jar.Manifest manifest
       112: .line 350
            goto 232
      StackMap locals:
      StackMap stack:
       113: aload 0 /* this */
            getfield sun.tools.jar.Main.uflag:Z
            ifeq 154
       114: .line 351
            aconst_null
            astore 3 /* inputFile */
        start local 3 // java.io.File inputFile
       115: .line 352
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            ifnull 119
       116: .line 353
            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 3 /* inputFile */
       117: .line 354
            aload 3 /* inputFile */
            invokestatic sun.tools.jar.Main.createTempFileInSameDirectoryAs:(Ljava/io/File;)Ljava/io/File;
            astore 2 /* tmpFile */
       118: .line 355
            goto 121
       119: .line 356
      StackMap locals: java.io.File
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield sun.tools.jar.Main.vflag:Z
       120: .line 357
            aload 0 /* this */
            ldc "tmpjar"
            ldc ".jar"
            invokevirtual sun.tools.jar.Main.createTemporaryFile:(Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;
            astore 2 /* tmpFile */
       121: .line 359
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.tools.jar.Main.expand:()V
       122: .line 360
            aconst_null
            astore 4
            aconst_null
            astore 5
       123: aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            ifnull 124
            new java.io.FileInputStream
            dup
            aload 3 /* inputFile */
            invokespecial java.io.FileInputStream.<init>:(Ljava/io/File;)V
            goto 125
       124: .line 361
      StackMap locals: java.lang.Throwable java.lang.Throwable
      StackMap stack:
            new java.io.FileInputStream
            dup
            getstatic java.io.FileDescriptor.in:Ljava/io/FileDescriptor;
            invokespecial java.io.FileInputStream.<init>:(Ljava/io/FileDescriptor;)V
       125: .line 360
      StackMap locals:
      StackMap stack: java.io.FileInputStream
            astore 6 /* in */
        start local 6 // java.io.FileInputStream in
       126: .line 362
            new java.io.FileOutputStream
            dup
            aload 2 /* tmpFile */
            invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;)V
            astore 7 /* out */
        start local 7 // java.io.FileOutputStream out
       127: .line 363
            aload 0 /* this */
            getfield sun.tools.jar.Main.Mflag:Z
            ifne 129
            aload 0 /* this */
            getfield sun.tools.jar.Main.mname:Ljava/lang/String;
            ifnull 129
       128: .line 364
            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 130
      StackMap locals: java.io.FileInputStream java.io.FileOutputStream
      StackMap stack:
       129: aconst_null
       130: .line 363
      StackMap locals:
      StackMap stack: java.io.FileInputStream
            astore 8 /* manifest */
        start local 8 // java.io.InputStream manifest
       131: .line 366
            aload 0 /* this */
            aload 6 /* in */
            new java.io.BufferedOutputStream
            dup
            aload 7 /* out */
            invokespecial java.io.BufferedOutputStream.<init>:(Ljava/io/OutputStream;)V
       132: .line 367
            aload 8 /* manifest */
            aload 0 /* this */
            getfield sun.tools.jar.Main.moduleInfos:Ljava/util/Map;
            aconst_null
       133: .line 366
            invokevirtual sun.tools.jar.Main.update:(Ljava/io/InputStream;Ljava/io/OutputStream;Ljava/io/InputStream;Ljava/util/Map;Ljdk/internal/util/jar/JarIndex;)Z
            istore 9 /* updateOk */
        start local 9 // boolean updateOk
       134: .line 368
            aload 0 /* this */
            getfield sun.tools.jar.Main.ok:Z
            ifeq 136
       135: .line 369
            aload 0 /* this */
            iload 9 /* updateOk */
            putfield sun.tools.jar.Main.ok:Z
        end local 9 // boolean updateOk
       136: .line 371
      StackMap locals: java.io.InputStream
      StackMap stack:
            aload 8 /* manifest */
            ifnull 139
            aload 8 /* manifest */
            invokevirtual java.io.InputStream.close:()V
            goto 139
      StackMap locals:
      StackMap stack: java.lang.Throwable
       137: astore 4
            aload 8 /* manifest */
            ifnull 138
            aload 8 /* manifest */
            invokevirtual java.io.InputStream.close:()V
        end local 8 // java.io.InputStream manifest
      StackMap locals:
      StackMap stack:
       138: aload 4
            athrow
      StackMap locals:
      StackMap stack:
       139: aload 7 /* out */
            ifnull 144
            aload 7 /* out */
            invokevirtual java.io.FileOutputStream.close:()V
            goto 144
      StackMap locals:
      StackMap stack: java.lang.Throwable
       140: astore 5
            aload 4
            ifnonnull 141
            aload 5
            astore 4
            goto 142
      StackMap locals:
      StackMap stack:
       141: aload 4
            aload 5
            if_acmpeq 142
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
       142: aload 7 /* out */
            ifnull 143
            aload 7 /* out */
            invokevirtual java.io.FileOutputStream.close:()V
        end local 7 // java.io.FileOutputStream out
      StackMap locals:
      StackMap stack:
       143: aload 4
            athrow
      StackMap locals:
      StackMap stack:
       144: aload 6 /* in */
            ifnull 152
            aload 6 /* in */
            invokevirtual java.io.FileInputStream.close:()V
            goto 152
      StackMap locals:
      StackMap stack: java.lang.Throwable
       145: astore 5
            aload 4
            ifnonnull 146
            aload 5
            astore 4
            goto 147
      StackMap locals:
      StackMap stack:
       146: aload 4
            aload 5
            if_acmpeq 147
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
       147: aload 6 /* in */
            ifnull 148
            aload 6 /* in */
            invokevirtual java.io.FileInputStream.close:()V
        end local 6 // java.io.FileInputStream in
      StackMap locals:
      StackMap stack:
       148: aload 4
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
       149: astore 5
            aload 4
            ifnonnull 150
            aload 5
            astore 4
            goto 151
      StackMap locals:
      StackMap stack:
       150: aload 4
            aload 5
            if_acmpeq 151
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
       151: aload 4
            athrow
       152: .line 372
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* tmpFile */
            invokevirtual sun.tools.jar.Main.validateAndClose:(Ljava/io/File;)V
        end local 3 // java.io.File inputFile
       153: .line 373
            goto 232
      StackMap locals:
      StackMap stack:
       154: aload 0 /* this */
            getfield sun.tools.jar.Main.tflag:Z
            ifeq 168
       155: .line 374
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.tools.jar.Main.filesMap:Ljava/util/Map;
            invokevirtual sun.tools.jar.Main.replaceFSC:(Ljava/util/Map;)V
       156: .line 378
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.tools.jar.Main.filesMap:Ljava/util/Map;
            invokevirtual sun.tools.jar.Main.filesMapToFiles:(Ljava/util/Map;)[Ljava/lang/String;
            astore 3 /* files */
        start local 3 // java.lang.String[] files
       157: .line 379
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            ifnull 160
       158: .line 380
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            aload 3 /* files */
            invokevirtual sun.tools.jar.Main.list:(Ljava/lang/String;[Ljava/lang/String;)V
       159: .line 381
            goto 232
       160: .line 382
      StackMap locals: java.lang.String[]
      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.InputStream in
       161: .line 384
            aload 0 /* this */
            new java.io.BufferedInputStream
            dup
            aload 4 /* in */
            invokespecial java.io.BufferedInputStream.<init>:(Ljava/io/InputStream;)V
            aload 3 /* files */
            invokevirtual sun.tools.jar.Main.list:(Ljava/io/InputStream;[Ljava/lang/String;)V
       162: .line 385
            goto 166
      StackMap locals: sun.tools.jar.Main java.lang.String[] java.io.File java.lang.String[] java.io.InputStream
      StackMap stack: java.lang.Throwable
       163: astore 5
       164: .line 386
            aload 4 /* in */
            invokevirtual java.io.InputStream.close:()V
       165: .line 387
            aload 5
            athrow
       166: .line 386
      StackMap locals:
      StackMap stack:
            aload 4 /* in */
            invokevirtual java.io.InputStream.close:()V
        end local 4 // java.io.InputStream in
        end local 3 // java.lang.String[] files
       167: .line 389
            goto 232
      StackMap locals:
      StackMap stack:
       168: aload 0 /* this */
            getfield sun.tools.jar.Main.xflag:Z
            ifeq 186
       169: .line 390
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.tools.jar.Main.filesMap:Ljava/util/Map;
            invokevirtual sun.tools.jar.Main.replaceFSC:(Ljava/util/Map;)V
       170: .line 401
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.tools.jar.Main.filesMap:Ljava/util/Map;
            invokevirtual sun.tools.jar.Main.filesMapToFiles:(Ljava/util/Map;)[Ljava/lang/String;
            astore 3 /* files */
        start local 3 // java.lang.String[] files
       171: .line 402
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            ifnull 174
            aload 3 /* files */
            ifnull 174
       172: .line 403
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            aload 3 /* files */
            invokevirtual sun.tools.jar.Main.extract:(Ljava/lang/String;[Ljava/lang/String;)V
       173: .line 404
            goto 232
       174: .line 405
      StackMap locals: java.lang.String[]
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            ifnonnull 176
       175: .line 406
            new java.io.FileInputStream
            dup
            getstatic java.io.FileDescriptor.in:Ljava/io/FileDescriptor;
            invokespecial java.io.FileInputStream.<init>:(Ljava/io/FileDescriptor;)V
            goto 177
       176: .line 407
      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
       177: .line 405
      StackMap locals:
      StackMap stack: java.io.FileInputStream
            astore 4 /* in */
        start local 4 // java.io.InputStream in
       178: .line 409
            aload 0 /* this */
            new java.io.BufferedInputStream
            dup
            aload 4 /* in */
            invokespecial java.io.BufferedInputStream.<init>:(Ljava/io/InputStream;)V
            aload 3 /* files */
            invokevirtual sun.tools.jar.Main.extract:(Ljava/io/InputStream;[Ljava/lang/String;)Z
            ifne 184
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            ifnull 184
       179: .line 410
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            aload 3 /* files */
            invokevirtual sun.tools.jar.Main.extract:(Ljava/lang/String;[Ljava/lang/String;)V
       180: .line 412
            goto 184
      StackMap locals: sun.tools.jar.Main java.lang.String[] java.io.File java.lang.String[] java.io.InputStream
      StackMap stack: java.lang.Throwable
       181: astore 5
       182: .line 413
            aload 4 /* in */
            invokevirtual java.io.InputStream.close:()V
       183: .line 414
            aload 5
            athrow
       184: .line 413
      StackMap locals:
      StackMap stack:
            aload 4 /* in */
            invokevirtual java.io.InputStream.close:()V
        end local 4 // java.io.InputStream in
        end local 3 // java.lang.String[] files
       185: .line 416
            goto 232
      StackMap locals:
      StackMap stack:
       186: aload 0 /* this */
            getfield sun.tools.jar.Main.iflag:Z
            ifeq 190
       187: .line 417
            aload 0 /* this */
            getfield sun.tools.jar.Main.filesMap:Ljava/util/Map;
            iconst_0
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String[]
            astore 3 /* files */
        start local 3 // java.lang.String[] files
       188: .line 418
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.tools.jar.Main.rootjar:Ljava/lang/String;
            aload 3 /* files */
            invokevirtual sun.tools.jar.Main.genIndex:(Ljava/lang/String;[Ljava/lang/String;)V
        end local 3 // java.lang.String[] files
       189: .line 419
            goto 232
      StackMap locals:
      StackMap stack:
       190: aload 0 /* this */
            getfield sun.tools.jar.Main.dflag:Z
            ifeq 232
       191: .line 421
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            ifnull 201
       192: .line 422
            aconst_null
            astore 4
            aconst_null
            astore 5
       193: new java.util.zip.ZipFile
            dup
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            invokespecial java.util.zip.ZipFile.<init>:(Ljava/lang/String;)V
            astore 6 /* zf */
        start local 6 // java.util.zip.ZipFile zf
       194: .line 423
            aload 0 /* this */
            aload 6 /* zf */
            invokevirtual sun.tools.jar.Main.describeModule:(Ljava/util/zip/ZipFile;)Z
            istore 3 /* found */
        start local 3 // boolean found
       195: .line 424
            aload 6 /* zf */
            ifnull 210
            aload 6 /* zf */
            invokevirtual java.util.zip.ZipFile.close:()V
            goto 210
        end local 3 // boolean found
      StackMap locals: sun.tools.jar.Main java.lang.String[] java.io.File top java.lang.Throwable java.lang.Throwable java.util.zip.ZipFile
      StackMap stack: java.lang.Throwable
       196: astore 4
            aload 6 /* zf */
            ifnull 197
            aload 6 /* zf */
            invokevirtual java.util.zip.ZipFile.close:()V
        end local 6 // java.util.zip.ZipFile zf
      StackMap locals:
      StackMap stack:
       197: aload 4
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
       198: astore 5
            aload 4
            ifnonnull 199
            aload 5
            astore 4
            goto 200
      StackMap locals:
      StackMap stack:
       199: aload 4
            aload 5
            if_acmpeq 200
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
       200: aload 4
            athrow
       201: .line 426
      StackMap locals: sun.tools.jar.Main java.lang.String[] java.io.File
      StackMap stack:
            aconst_null
            astore 4
            aconst_null
            astore 5
       202: new java.io.FileInputStream
            dup
            getstatic java.io.FileDescriptor.in:Ljava/io/FileDescriptor;
            invokespecial java.io.FileInputStream.<init>:(Ljava/io/FileDescriptor;)V
            astore 6 /* fin */
        start local 6 // java.io.FileInputStream fin
       203: .line 427
            aload 0 /* this */
            aload 6 /* fin */
            invokevirtual sun.tools.jar.Main.describeModuleFromStream:(Ljava/io/FileInputStream;)Z
            istore 3 /* found */
        start local 3 // boolean found
       204: .line 428
            aload 6 /* fin */
            ifnull 210
            aload 6 /* fin */
            invokevirtual java.io.FileInputStream.close:()V
            goto 210
        end local 3 // boolean found
      StackMap locals: sun.tools.jar.Main java.lang.String[] java.io.File top java.lang.Throwable java.lang.Throwable java.io.FileInputStream
      StackMap stack: java.lang.Throwable
       205: astore 4
            aload 6 /* fin */
            ifnull 206
            aload 6 /* fin */
            invokevirtual java.io.FileInputStream.close:()V
        end local 6 // java.io.FileInputStream fin
      StackMap locals:
      StackMap stack:
       206: aload 4
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
       207: astore 5
            aload 4
            ifnonnull 208
            aload 5
            astore 4
            goto 209
      StackMap locals:
      StackMap stack:
       208: aload 4
            aload 5
            if_acmpeq 209
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
       209: aload 4
            athrow
        start local 3 // boolean found
       210: .line 430
      StackMap locals: sun.tools.jar.Main java.lang.String[] java.io.File int
      StackMap stack:
            iload 3 /* found */
            ifne 232
       211: .line 431
            aload 0 /* this */
            ldc "error.module.descriptor.not.found"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.error:(Ljava/lang/String;)V
        end local 3 // boolean found
       212: .line 433
            goto 232
      StackMap locals: sun.tools.jar.Main java.lang.String[] java.io.File
      StackMap stack: java.io.IOException
       213: astore 3 /* e */
        start local 3 // java.io.IOException e
       214: .line 434
            aload 0 /* this */
            aload 3 /* e */
            invokevirtual sun.tools.jar.Main.fatalError:(Ljava/lang/Exception;)V
       215: .line 435
            aload 0 /* this */
            iconst_0
            putfield sun.tools.jar.Main.ok:Z
        end local 3 // java.io.IOException e
       216: .line 443
            aload 2 /* tmpFile */
            ifnull 234
            aload 2 /* tmpFile */
            invokevirtual java.io.File.exists:()Z
            ifeq 234
       217: .line 444
            aload 2 /* tmpFile */
            invokevirtual java.io.File.delete:()Z
            pop
            goto 234
       218: .line 436
      StackMap locals:
      StackMap stack: java.lang.Error
            astore 3 /* ee */
        start local 3 // java.lang.Error ee
       219: .line 437
            aload 3 /* ee */
            invokevirtual java.lang.Error.printStackTrace:()V
       220: .line 438
            aload 0 /* this */
            iconst_0
            putfield sun.tools.jar.Main.ok:Z
        end local 3 // java.lang.Error ee
       221: .line 443
            aload 2 /* tmpFile */
            ifnull 234
            aload 2 /* tmpFile */
            invokevirtual java.io.File.exists:()Z
            ifeq 234
       222: .line 444
            aload 2 /* tmpFile */
            invokevirtual java.io.File.delete:()Z
            pop
            goto 234
       223: .line 439
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 3 /* t */
        start local 3 // java.lang.Throwable t
       224: .line 440
            aload 3 /* t */
            invokevirtual java.lang.Throwable.printStackTrace:()V
       225: .line 441
            aload 0 /* this */
            iconst_0
            putfield sun.tools.jar.Main.ok:Z
        end local 3 // java.lang.Throwable t
       226: .line 443
            aload 2 /* tmpFile */
            ifnull 234
            aload 2 /* tmpFile */
            invokevirtual java.io.File.exists:()Z
            ifeq 234
       227: .line 444
            aload 2 /* tmpFile */
            invokevirtual java.io.File.delete:()Z
            pop
            goto 234
       228: .line 442
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 14
       229: .line 443
            aload 2 /* tmpFile */
            ifnull 231
            aload 2 /* tmpFile */
            invokevirtual java.io.File.exists:()Z
            ifeq 231
       230: .line 444
            aload 2 /* tmpFile */
            invokevirtual java.io.File.delete:()Z
            pop
       231: .line 445
      StackMap locals: sun.tools.jar.Main java.lang.String[] java.io.File top top top top top top top top top top top java.lang.Throwable
      StackMap stack:
            aload 14
            athrow
       232: .line 443
      StackMap locals: sun.tools.jar.Main java.lang.String[] java.io.File
      StackMap stack:
            aload 2 /* tmpFile */
            ifnull 234
            aload 2 /* tmpFile */
            invokevirtual java.io.File.exists:()Z
            ifeq 234
       233: .line 444
            aload 2 /* tmpFile */
            invokevirtual java.io.File.delete:()Z
            pop
       234: .line 446
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.out:Ljava/io/PrintWriter;
            invokevirtual java.io.PrintWriter.flush:()V
       235: .line 447
            aload 0 /* this */
            getfield sun.tools.jar.Main.err:Ljava/io/PrintWriter;
            invokevirtual java.io.PrintWriter.flush:()V
       236: .line 448
            aload 0 /* this */
            getfield sun.tools.jar.Main.ok:Z
            ireturn
        end local 2 // java.io.File tmpFile
        end local 1 // java.lang.String[] args
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0  237     0       this  Lsun/tools/jar/Main;
            0  237     1       args  [Ljava/lang/String;
            4  237     2    tmpFile  Ljava/io/File;
           11  112     3   manifest  Ljava/util/jar/Manifest;
           15   18     6         in  Ljava/io/InputStream;
           36   45     4   jentries  Ljava/util/Set<Ljava/lang/String;>;
           37   45     5   packages  Ljava/util/Set<Ljava/lang/String;>;
           56  112     4    tmpbase  Ljava/lang/String;
           59   62     7        out  Ljava/io/OutputStream;
           70  111     5   packFile  Ljava/io/File;
           71  107     6     packer  Ljava/util/jar/Pack200$Packer;
           72  107     7          p  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
           75   84    10    jarFile  Ljava/util/jar/JarFile;
           76   79    11       pack  Ljava/io/OutputStream;
           93  103    10        out  Ljava/io/OutputStream;
           94   98    11        jos  Ljava/util/jar/JarOutputStream;
           95   96    12   unpacker  Ljava/util/jar/Pack200$Unpacker;
          115  153     3  inputFile  Ljava/io/File;
          126  148     6         in  Ljava/io/FileInputStream;
          127  143     7        out  Ljava/io/FileOutputStream;
          131  138     8   manifest  Ljava/io/InputStream;
          134  136     9   updateOk  Z
          157  167     3      files  [Ljava/lang/String;
          161  167     4         in  Ljava/io/InputStream;
          171  185     3      files  [Ljava/lang/String;
          178  185     4         in  Ljava/io/InputStream;
          188  189     3      files  [Ljava/lang/String;
          195  196     3      found  Z
          204  205     3      found  Z
          210  212     3      found  Z
          194  197     6         zf  Ljava/util/zip/ZipFile;
          203  206     6        fin  Ljava/io/FileInputStream;
          214  216     3          e  Ljava/io/IOException;
          219  221     3         ee  Ljava/lang/Error;
          224  226     3          t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          15    16      17  any
          14    19      19  any
          59    60      61  any
          58    63      63  any
          76    77      78  any
          75    80      81  any
          74    85      85  any
          94    96      97  any
          93    99     100  any
          92   104     104  any
          70   107     107  any
         131   136     137  any
         127   139     140  any
         126   144     145  any
         123   149     149  any
         161   163     163  any
         178   181     181  any
         194   195     196  any
         193   198     198  any
         203   204     205  any
         202   207     207  any
           4    26     213  Class java.io.IOException
          29    42     213  Class java.io.IOException
          45    47     213  Class java.io.IOException
          50   212     213  Class java.io.IOException
           4    26     218  Class java.lang.Error
          29    42     218  Class java.lang.Error
          45    47     218  Class java.lang.Error
          50   212     218  Class java.lang.Error
           4    26     223  Class java.lang.Throwable
          29    42     223  Class java.lang.Throwable
          45    47     223  Class java.lang.Throwable
          50   212     223  Class java.lang.Throwable
           4    26     228  any
          29    42     228  any
          45    47     228  any
          50   216     228  any
         218   221     228  any
         223   226     228  any
    MethodParameters:
      Name  Flags
      args  

  private void validateAndClose(java.io.File);
    descriptor: (Ljava/io/File;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=5, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.io.File tmpfile
         0: .line 452
            aload 0 /* this */
            getfield sun.tools.jar.Main.ok:Z
            ifeq 14
            aload 0 /* this */
            getfield sun.tools.jar.Main.isMultiRelease:Z
            ifeq 14
         1: .line 453
            aconst_null
            astore 2
            aconst_null
            astore 3
         2: new java.util.zip.ZipFile
            dup
            aload 1 /* tmpfile */
            invokespecial java.util.zip.ZipFile.<init>:(Ljava/io/File;)V
            astore 4 /* zf */
        start local 4 // java.util.zip.ZipFile zf
         3: .line 454
            aload 0 /* this */
            aload 0 /* this */
            aload 4 /* zf */
            invokestatic sun.tools.jar.Validator.validate:(Lsun/tools/jar/Main;Ljava/util/zip/ZipFile;)Z
            putfield sun.tools.jar.Main.ok:Z
         4: .line 455
            aload 0 /* this */
            getfield sun.tools.jar.Main.ok:Z
            ifne 6
         5: .line 456
            aload 0 /* this */
            ldc "error.validator.jarfile.invalid"
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.error:(Ljava/lang/String;)V
         6: .line 458
      StackMap locals: java.lang.Throwable java.lang.Throwable java.util.zip.ZipFile
      StackMap stack:
            aload 4 /* zf */
            ifnull 14
            aload 4 /* zf */
            invokevirtual java.util.zip.ZipFile.close:()V
            goto 14
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: astore 2
            aload 4 /* zf */
            ifnull 8
            aload 4 /* zf */
            invokevirtual java.util.zip.ZipFile.close:()V
        end local 4 // java.util.zip.ZipFile zf
      StackMap locals:
      StackMap stack:
         8: aload 2
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
         9: astore 3
            aload 2
            ifnonnull 10
            aload 3
            astore 2
            goto 11
      StackMap locals:
      StackMap stack:
        10: aload 2
            aload 3
            if_acmpeq 11
            aload 2
            aload 3
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        11: aload 2
            athrow
      StackMap locals: sun.tools.jar.Main java.io.File
      StackMap stack: java.io.IOException
        12: astore 2 /* e */
        start local 2 // java.io.IOException e
        13: .line 459
            aload 0 /* this */
            ldc "error.validator.jarfile.exception"
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            aload 2 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokestatic sun.tools.jar.Main.formatMsg2:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.error:(Ljava/lang/String;)V
        end local 2 // java.io.IOException e
        14: .line 462
      StackMap locals:
      StackMap stack:
            aload 1 /* tmpfile */
            invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
            astore 2 /* path */
        start local 2 // java.nio.file.Path path
        15: .line 464
            aload 0 /* this */
            getfield sun.tools.jar.Main.ok:Z
            ifeq 24
        16: .line 465
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            ifnull 19
        17: .line 466
            aload 2 /* path */
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            iconst_0
            anewarray java.lang.String
            invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
            iconst_1
            anewarray java.nio.file.CopyOption
            dup
            iconst_0
            getstatic java.nio.file.StandardCopyOption.REPLACE_EXISTING:Ljava/nio/file/StandardCopyOption;
            aastore
            invokestatic java.nio.file.Files.move:(Ljava/nio/file/Path;Ljava/nio/file/Path;[Ljava/nio/file/CopyOption;)Ljava/nio/file/Path;
            pop
        18: .line 467
            goto 24
        19: .line 468
      StackMap locals: java.nio.file.Path
      StackMap stack:
            aload 2 /* path */
            new java.io.FileOutputStream
            dup
            getstatic java.io.FileDescriptor.out:Ljava/io/FileDescriptor;
            invokespecial java.io.FileOutputStream.<init>:(Ljava/io/FileDescriptor;)V
            invokestatic java.nio.file.Files.copy:(Ljava/nio/file/Path;Ljava/io/OutputStream;)J
            pop2
        20: .line 471
            goto 24
      StackMap locals:
      StackMap stack: java.lang.Throwable
        21: astore 3
        22: .line 472
            aload 2 /* path */
            invokestatic java.nio.file.Files.deleteIfExists:(Ljava/nio/file/Path;)Z
            pop
        23: .line 473
            aload 3
            athrow
        24: .line 472
      StackMap locals:
      StackMap stack:
            aload 2 /* path */
            invokestatic java.nio.file.Files.deleteIfExists:(Ljava/nio/file/Path;)Z
            pop
        25: .line 474
            return
        end local 2 // java.nio.file.Path path
        end local 1 // java.io.File tmpfile
        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  tmpfile  Ljava/io/File;
            3    8     4       zf  Ljava/util/zip/ZipFile;
           13   14     2        e  Ljava/io/IOException;
           15   26     2     path  Ljava/nio/file/Path;
      Exception table:
        from    to  target  type
           3     6       7  any
           2     9       9  any
           1    12      12  Class java.io.IOException
          15    21      21  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      tmpfile  

  private java.lang.String[] filesMapToFiles(java.util.Map<java.lang.Integer, java.lang.String[]>);
    descriptor: (Ljava/util/Map;)[Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.util.Map filesMap
         0: .line 477
            aload 1 /* filesMap */
            invokeinterface java.util.Map.isEmpty:()Z
            ifeq 1
            aconst_null
            areturn
         1: .line 478
      StackMap locals:
      StackMap stack:
            aload 1 /* filesMap */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
         2: .line 479
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         3: .line 480
            aload 0 /* this */
            invokedynamic apply(Lsun/tools/jar/Main;)Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  sun/tools/jar/Main.filesToEntryNames(Ljava/util/Map$Entry;)Ljava/util/stream/Stream; (5)
                  (Ljava/util/Map$Entry;)Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         4: .line 481
            invokedynamic apply()Ljava/util/function/IntFunction;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (I)Ljava/lang/Object;
                  sun/tools/jar/Main.lambda$5(I)[Ljava/lang/String; (6)
                  (I)[Ljava/lang/String;
            invokeinterface java.util.stream.Stream.toArray:(Ljava/util/function/IntFunction;)[Ljava/lang/Object;
            checkcast java.lang.String[]
         5: .line 478
            areturn
        end local 1 // java.util.Map filesMap
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lsun/tools/jar/Main;
            0    6     1  filesMap  Ljava/util/Map<Ljava/lang/Integer;[Ljava/lang/String;>;
    Signature: (Ljava/util/Map<Ljava/lang/Integer;[Ljava/lang/String;>;)[Ljava/lang/String;
    MethodParameters:
          Name  Flags
      filesMap  

  java.util.stream.Stream<java.lang.String> filesToEntryNames(java.util.Map$Entry<java.lang.Integer, java.lang.String[]>);
    descriptor: (Ljava/util/Map$Entry;)Ljava/util/stream/Stream;
    flags: (0x0000) 
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.util.Map$Entry fileEntries
         0: .line 485
            aload 1 /* fileEntries */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            istore 2 /* version */
        start local 2 // int version
         1: .line 486
            aload 0 /* this */
            getfield sun.tools.jar.Main.pathsMap:Ljava/util/Map;
            iload 2 /* version */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Set
            astore 3 /* cpaths */
        start local 3 // java.util.Set cpaths
         2: .line 487
            aload 1 /* fileEntries */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.lang.String[]
            invokestatic java.util.stream.Stream.of:([Ljava/lang/Object;)Ljava/util/stream/Stream;
         3: .line 488
            aload 0 /* this */
            aload 3 /* cpaths */
            iload 2 /* version */
            invokedynamic apply(Lsun/tools/jar/Main;Ljava/util/Set;I)Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  sun/tools/jar/Main.lambda$6(Ljava/util/Set;ILjava/lang/String;)Ljava/lang/String; (7)
                  (Ljava/lang/String;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         4: .line 487
            areturn
        end local 3 // java.util.Set cpaths
        end local 2 // int version
        end local 1 // java.util.Map$Entry fileEntries
        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  fileEntries  Ljava/util/Map$Entry<Ljava/lang/Integer;[Ljava/lang/String;>;
            1    5     2      version  I
            2    5     3       cpaths  Ljava/util/Set<Ljava/lang/String;>;
    Signature: (Ljava/util/Map$Entry<Ljava/lang/Integer;[Ljava/lang/String;>;)Ljava/util/stream/Stream<Ljava/lang/String;>;
    MethodParameters:
             Name  Flags
      fileEntries  

  boolean parseArgs(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)Z
    flags: (0x0000) 
    Code:
      stack=5, locals=10, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.String[] args
         0: .line 497
            aload 1 /* args */
            invokestatic sun.tools.jar.CommandLine.parse:([Ljava/lang/String;)[Ljava/lang/String;
            astore 1 /* args */
         1: .line 498
            goto 8
      StackMap locals:
      StackMap stack: java.io.FileNotFoundException
         2: astore 2 /* e */
        start local 2 // java.io.FileNotFoundException e
         3: .line 499
            aload 0 /* this */
            ldc "error.cant.open"
            aload 2 /* e */
            invokevirtual java.io.FileNotFoundException.getMessage:()Ljava/lang/String;
            invokestatic 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 500
            iconst_0
            ireturn
        end local 2 // java.io.FileNotFoundException e
         5: .line 501
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 2 /* e */
        start local 2 // java.io.IOException e
         6: .line 502
            aload 0 /* this */
            aload 2 /* e */
            invokevirtual sun.tools.jar.Main.fatalError:(Ljava/lang/Exception;)V
         7: .line 503
            iconst_0
            ireturn
        end local 2 // java.io.IOException e
         8: .line 506
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 2 /* count */
        start local 2 // int count
         9: .line 508
            aload 1 /* args */
            iconst_0
            aaload
            astore 3 /* flags */
        start local 3 // java.lang.String flags
        10: .line 513
            aload 3 /* flags */
            ldc "--"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 12
        11: .line 514
            aload 3 /* flags */
            ldc "-"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 24
            aload 3 /* flags */
            invokevirtual java.lang.String.length:()I
            iconst_2
            if_icmpne 24
        12: .line 516
      StackMap locals: int java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 1 /* args */
            invokestatic sun.tools.jar.GNUStyleOptions.parseOptions:(Lsun/tools/jar/Main;[Ljava/lang/String;)I
            istore 2 /* count */
        13: .line 517
            goto 21
      StackMap locals:
      StackMap stack: sun.tools.jar.GNUStyleOptions$BadArgs
        14: astore 4 /* x */
        start local 4 // sun.tools.jar.GNUStyleOptions$BadArgs x
        15: .line 518
            aload 0 /* this */
            getfield sun.tools.jar.Main.info:Ljava/util/function/Consumer;
            ifnonnull 21
        16: .line 519
            aload 4 /* x */
            getfield sun.tools.jar.GNUStyleOptions$BadArgs.showUsage:Z
            ifeq 19
        17: .line 520
            aload 0 /* this */
            aload 4 /* x */
            invokevirtual sun.tools.jar.GNUStyleOptions$BadArgs.getMessage:()Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.usageError:(Ljava/lang/String;)V
        18: .line 521
            goto 20
        19: .line 522
      StackMap locals: sun.tools.jar.GNUStyleOptions$BadArgs
      StackMap stack:
            aload 0 /* this */
            aload 4 /* x */
            invokevirtual sun.tools.jar.GNUStyleOptions$BadArgs.getMessage:()Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.error:(Ljava/lang/String;)V
        20: .line 524
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 4 // sun.tools.jar.GNUStyleOptions$BadArgs x
        21: .line 527
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.info:Ljava/util/function/Consumer;
            ifnull 81
        22: .line 528
            aload 0 /* this */
            getfield sun.tools.jar.Main.info:Ljava/util/function/Consumer;
            aload 0 /* this */
            getfield sun.tools.jar.Main.out:Ljava/io/PrintWriter;
            invokeinterface java.util.function.Consumer.accept:(Ljava/lang/Object;)V
        23: .line 529
            iconst_1
            ireturn
        24: .line 533
      StackMap locals:
      StackMap stack:
            aload 3 /* flags */
            ldc "-"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 26
        25: .line 534
            aload 3 /* flags */
            iconst_1
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 3 /* flags */
        26: .line 536
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        27: goto 76
        28: .line 537
      StackMap locals: int
      StackMap stack:
            aload 3 /* flags */
            iload 4 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            lookupswitch { // 13
                   48: 57
                   77: 49
                   80: 69
                   99: 29
                  101: 67
                  102: 53
                  105: 59
                  109: 55
                  110: 65
                  116: 44
                  117: 34
                  118: 51
                  120: 39
              default: 71
          }
        29: .line 539
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.xflag:Z
            ifne 30
            aload 0 /* this */
            getfield sun.tools.jar.Main.tflag:Z
            ifne 30
            aload 0 /* this */
            getfield sun.tools.jar.Main.uflag:Z
            ifne 30
            aload 0 /* this */
            getfield sun.tools.jar.Main.iflag:Z
            ifeq 32
        30: .line 540
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "error.multiple.main.operations"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.usageError:(Ljava/lang/String;)V
        31: .line 541
            iconst_0
            ireturn
        32: .line 543
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.tools.jar.Main.cflag:Z
        33: .line 544
            goto 75
        34: .line 546
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.cflag:Z
            ifne 35
            aload 0 /* this */
            getfield sun.tools.jar.Main.xflag:Z
            ifne 35
            aload 0 /* this */
            getfield sun.tools.jar.Main.tflag:Z
            ifne 35
            aload 0 /* this */
            getfield sun.tools.jar.Main.iflag:Z
            ifeq 37
        35: .line 547
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "error.multiple.main.operations"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.usageError:(Ljava/lang/String;)V
        36: .line 548
            iconst_0
            ireturn
        37: .line 550
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.tools.jar.Main.uflag:Z
        38: .line 551
            goto 75
        39: .line 553
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.cflag:Z
            ifne 40
            aload 0 /* this */
            getfield sun.tools.jar.Main.uflag:Z
            ifne 40
            aload 0 /* this */
            getfield sun.tools.jar.Main.tflag:Z
            ifne 40
            aload 0 /* this */
            getfield sun.tools.jar.Main.iflag:Z
            ifeq 42
        40: .line 554
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "error.multiple.main.operations"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.usageError:(Ljava/lang/String;)V
        41: .line 555
            iconst_0
            ireturn
        42: .line 557
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.tools.jar.Main.xflag:Z
        43: .line 558
            goto 75
        44: .line 560
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.cflag:Z
            ifne 45
            aload 0 /* this */
            getfield sun.tools.jar.Main.uflag:Z
            ifne 45
            aload 0 /* this */
            getfield sun.tools.jar.Main.xflag:Z
            ifne 45
            aload 0 /* this */
            getfield sun.tools.jar.Main.iflag:Z
            ifeq 47
        45: .line 561
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "error.multiple.main.operations"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.usageError:(Ljava/lang/String;)V
        46: .line 562
            iconst_0
            ireturn
        47: .line 564
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.tools.jar.Main.tflag:Z
        48: .line 565
            goto 75
        49: .line 567
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.tools.jar.Main.Mflag:Z
        50: .line 568
            goto 75
        51: .line 570
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.tools.jar.Main.vflag:Z
        52: .line 571
            goto 75
        53: .line 573
      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;
        54: .line 574
            goto 75
        55: .line 576
      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;
        56: .line 577
            goto 75
        57: .line 579
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.tools.jar.Main.flag0:Z
        58: .line 580
            goto 75
        59: .line 582
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.cflag:Z
            ifne 60
            aload 0 /* this */
            getfield sun.tools.jar.Main.uflag:Z
            ifne 60
            aload 0 /* this */
            getfield sun.tools.jar.Main.xflag:Z
            ifne 60
            aload 0 /* this */
            getfield sun.tools.jar.Main.tflag:Z
            ifeq 62
        60: .line 583
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "error.multiple.main.operations"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.usageError:(Ljava/lang/String;)V
        61: .line 584
            iconst_0
            ireturn
        62: .line 587
      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;
        63: .line 588
            aload 0 /* this */
            iconst_1
            putfield sun.tools.jar.Main.iflag:Z
        64: .line 589
            goto 75
        65: .line 591
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.tools.jar.Main.nflag:Z
        66: .line 592
            goto 75
        67: .line 594
      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;
        68: .line 595
            goto 75
        69: .line 597
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.tools.jar.Main.pflag:Z
        70: .line 598
            goto 75
        71: .line 600
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "error.illegal.option"
        72: .line 601
            aload 3 /* flags */
            iload 4 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic java.lang.String.valueOf:(C)Ljava/lang/String;
        73: .line 600
            invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.usageError:(Ljava/lang/String;)V
        74: .line 602
            iconst_0
            ireturn
        75: .line 536
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        76: iload 4 /* i */
            aload 3 /* flags */
            invokevirtual java.lang.String.length:()I
            if_icmplt 28
        end local 4 // int i
        end local 3 // java.lang.String flags
        77: .line 606
            goto 81
      StackMap locals: sun.tools.jar.Main java.lang.String[] int
      StackMap stack: java.lang.ArrayIndexOutOfBoundsException
        78: pop
        79: .line 607
            aload 0 /* this */
            ldc "main.usage.summary"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.usageError:(Ljava/lang/String;)V
        80: .line 608
            iconst_0
            ireturn
        81: .line 610
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.cflag:Z
            ifne 84
            aload 0 /* this */
            getfield sun.tools.jar.Main.tflag:Z
            ifne 84
            aload 0 /* this */
            getfield sun.tools.jar.Main.xflag:Z
            ifne 84
            aload 0 /* this */
            getfield sun.tools.jar.Main.uflag:Z
            ifne 84
            aload 0 /* this */
            getfield sun.tools.jar.Main.iflag:Z
            ifne 84
            aload 0 /* this */
            getfield sun.tools.jar.Main.dflag:Z
            ifne 84
        82: .line 611
            aload 0 /* this */
            ldc "error.bad.option"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.usageError:(Ljava/lang/String;)V
        83: .line 612
            iconst_0
            ireturn
        84: .line 616
      StackMap locals:
      StackMap stack:
            aload 1 /* args */
            arraylength
            iload 2 /* count */
            isub
            istore 3 /* n */
        start local 3 // int n
        85: .line 617
            iload 3 /* n */
            ifle 153
        86: .line 618
            iconst_0
            istore 4 /* version */
        start local 4 // int version
        87: .line 619
            iconst_0
            istore 5 /* k */
        start local 5 // int k
        88: .line 620
            iload 3 /* n */
            anewarray java.lang.String
            astore 6 /* nameBuf */
        start local 6 // java.lang.String[] nameBuf
        89: .line 621
            aload 0 /* this */
            getfield sun.tools.jar.Main.pathsMap:Ljava/util/Map;
            iload 4 /* version */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        90: .line 623
            iload 2 /* count */
            istore 7 /* i */
        start local 7 // int i
        91: goto 140
        92: .line 624
      StackMap locals: sun.tools.jar.Main java.lang.String[] int int int int java.lang.String[] int
      StackMap stack:
            aload 1 /* args */
            iload 7 /* i */
            aaload
            ldc "-C"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 113
        93: .line 625
            aload 0 /* this */
            getfield sun.tools.jar.Main.dflag:Z
            ifeq 96
        94: .line 628
            aload 0 /* this */
            ldc "error.bad.dflag"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.usageError:(Ljava/lang/String;)V
        95: .line 629
            iconst_0
            ireturn
        96: .line 632
      StackMap locals:
      StackMap stack:
            aload 1 /* args */
            iinc 7 /* i */ 1
            iload 7 /* i */
            aaload
            astore 8 /* dir */
        start local 8 // java.lang.String dir
        97: .line 633
            aload 8 /* dir */
            getstatic java.io.File.separator:Ljava/lang/String;
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 99
        98: .line 634
            aload 8 /* dir */
            goto 100
      StackMap locals: java.lang.String
      StackMap stack:
        99: new java.lang.StringBuilder
            dup
            aload 8 /* 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;
       100: .line 633
      StackMap locals:
      StackMap stack: java.lang.String
            astore 8 /* dir */
       101: .line 635
            aload 8 /* dir */
            getstatic java.io.File.separatorChar:C
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            astore 8 /* dir */
       102: .line 637
            getstatic java.io.File.separatorChar:C
            bipush 92
            if_icmpne 103
            aload 8 /* dir */
            ldc "//"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 103
            iconst_1
            goto 104
      StackMap locals:
      StackMap stack:
       103: iconst_0
      StackMap locals:
      StackMap stack: int
       104: istore 9 /* hasUNC */
        start local 9 // boolean hasUNC
       105: .line 638
            goto 107
       106: .line 639
      StackMap locals: int
      StackMap stack:
            aload 8 /* dir */
            ldc "//"
            ldc "/"
            invokevirtual java.lang.String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
            astore 8 /* dir */
       107: .line 638
      StackMap locals:
      StackMap stack:
            aload 8 /* dir */
            ldc "//"
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            iconst_m1
            if_icmpgt 106
       108: .line 641
            iload 9 /* hasUNC */
            ifeq 110
       109: .line 642
            new java.lang.StringBuilder
            dup
            ldc "/"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 8 /* dir */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 8 /* dir */
       110: .line 644
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.pathsMap:Ljava/util/Map;
            iload 4 /* version */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Set
            aload 8 /* dir */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
       111: .line 645
            aload 6 /* nameBuf */
            iload 5 /* k */
            iinc 5 /* k */ 1
            new java.lang.StringBuilder
            dup
            aload 8 /* 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 7 /* i */ 1
            iload 7 /* i */
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aastore
        end local 9 // boolean hasUNC
        end local 8 // java.lang.String dir
       112: .line 646
            goto 139
      StackMap locals:
      StackMap stack:
       113: aload 1 /* args */
            iload 7 /* i */
            aaload
            ldc "--release"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 135
       114: .line 647
            iconst_0
            istore 8 /* v */
        start local 8 // int v
       115: .line 649
            aload 1 /* args */
            iinc 7 /* i */ 1
            iload 7 /* i */
            aaload
            invokestatic java.lang.Integer.valueOf:(Ljava/lang/String;)Ljava/lang/Integer;
            invokevirtual java.lang.Integer.intValue:()I
            istore 8 /* v */
       116: .line 650
            goto 119
      StackMap locals: sun.tools.jar.Main java.lang.String[] int int int int java.lang.String[] int int
      StackMap stack: java.lang.NumberFormatException
       117: pop
       118: .line 651
            aload 0 /* this */
            ldc "error.release.value.notnumber"
            aload 1 /* args */
            iload 7 /* i */
            aaload
            invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.error:(Ljava/lang/String;)V
       119: .line 654
      StackMap locals:
      StackMap stack:
            iload 8 /* v */
            bipush 9
            if_icmpge 122
       120: .line 655
            aload 0 /* this */
            ldc "error.release.value.toosmall"
            iload 8 /* v */
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
            invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.usageError:(Ljava/lang/String;)V
       121: .line 656
            iconst_0
            ireturn
       122: .line 659
      StackMap locals:
      StackMap stack:
            iload 5 /* k */
            ifle 129
       123: .line 660
            iload 5 /* k */
            anewarray java.lang.String
            astore 9 /* files */
        start local 9 // java.lang.String[] files
       124: .line 661
            aload 6 /* nameBuf */
            iconst_0
            aload 9 /* files */
            iconst_0
            iload 5 /* k */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
       125: .line 662
            aload 0 /* this */
            getfield sun.tools.jar.Main.filesMap:Ljava/util/Map;
            iload 4 /* version */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 9 /* files */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
       126: .line 663
            aload 0 /* this */
            iload 4 /* version */
            ifle 127
            iconst_1
            goto 128
      StackMap locals: sun.tools.jar.Main java.lang.String[] int int int int java.lang.String[] int int java.lang.String[]
      StackMap stack: sun.tools.jar.Main
       127: iconst_0
      StackMap locals: sun.tools.jar.Main java.lang.String[] int int int int java.lang.String[] int int java.lang.String[]
      StackMap stack: sun.tools.jar.Main int
       128: putfield sun.tools.jar.Main.isMultiRelease:Z
        end local 9 // java.lang.String[] files
       129: .line 666
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 5 /* k */
       130: .line 667
            iload 3 /* n */
            anewarray java.lang.String
            astore 6 /* nameBuf */
       131: .line 668
            iload 8 /* v */
            istore 4 /* version */
       132: .line 669
            aload 0 /* this */
            iload 4 /* version */
            putfield sun.tools.jar.Main.releaseValue:I
       133: .line 670
            aload 0 /* this */
            getfield sun.tools.jar.Main.pathsMap:Ljava/util/Map;
            iload 4 /* version */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 8 // int v
       134: .line 671
            goto 139
       135: .line 672
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.dflag:Z
            ifeq 138
       136: .line 675
            aload 0 /* this */
            ldc "error.bad.dflag"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.usageError:(Ljava/lang/String;)V
       137: .line 676
            iconst_0
            ireturn
       138: .line 678
      StackMap locals:
      StackMap stack:
            aload 6 /* nameBuf */
            iload 5 /* k */
            iinc 5 /* k */ 1
            aload 1 /* args */
            iload 7 /* i */
            aaload
            aastore
       139: .line 623
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
       140: iload 7 /* i */
            aload 1 /* args */
            arraylength
            if_icmplt 92
        end local 7 // int i
       141: .line 681
            goto 145
      StackMap locals: sun.tools.jar.Main java.lang.String[] int int int int java.lang.String[]
      StackMap stack: java.lang.ArrayIndexOutOfBoundsException
       142: pop
       143: .line 682
            aload 0 /* this */
            ldc "error.bad.file.arg"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.usageError:(Ljava/lang/String;)V
       144: .line 683
            iconst_0
            ireturn
       145: .line 686
      StackMap locals:
      StackMap stack:
            iload 5 /* k */
            ifle 161
       146: .line 687
            iload 5 /* k */
            anewarray java.lang.String
            astore 7 /* files */
        start local 7 // java.lang.String[] files
       147: .line 688
            aload 6 /* nameBuf */
            iconst_0
            aload 7 /* files */
            iconst_0
            iload 5 /* k */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
       148: .line 689
            aload 0 /* this */
            getfield sun.tools.jar.Main.filesMap:Ljava/util/Map;
            iload 4 /* version */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 7 /* files */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
       149: .line 690
            aload 0 /* this */
            iload 4 /* version */
            ifle 150
            iconst_1
            goto 151
      StackMap locals: sun.tools.jar.Main java.lang.String[] int int int int java.lang.String[] java.lang.String[]
      StackMap stack: sun.tools.jar.Main
       150: iconst_0
      StackMap locals: sun.tools.jar.Main java.lang.String[] int int int int java.lang.String[] java.lang.String[]
      StackMap stack: sun.tools.jar.Main int
       151: putfield sun.tools.jar.Main.isMultiRelease:Z
        end local 7 // java.lang.String[] files
        end local 6 // java.lang.String[] nameBuf
        end local 5 // int k
        end local 4 // int version
       152: .line 692
            goto 161
      StackMap locals: sun.tools.jar.Main java.lang.String[] int int
      StackMap stack:
       153: aload 0 /* this */
            getfield sun.tools.jar.Main.cflag:Z
            ifeq 156
            aload 0 /* this */
            getfield sun.tools.jar.Main.mname:Ljava/lang/String;
            ifnonnull 156
       154: .line 693
            aload 0 /* this */
            ldc "error.bad.cflag"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.usageError:(Ljava/lang/String;)V
       155: .line 694
            iconst_0
            ireturn
       156: .line 695
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.uflag:Z
            ifeq 161
       157: .line 696
            aload 0 /* this */
            getfield sun.tools.jar.Main.mname:Ljava/lang/String;
            ifnonnull 158
            aload 0 /* this */
            getfield sun.tools.jar.Main.ename:Ljava/lang/String;
            ifnull 159
       158: .line 698
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
       159: .line 700
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "error.bad.uflag"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.usageError:(Ljava/lang/String;)V
       160: .line 701
            iconst_0
            ireturn
       161: .line 704
      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  162     0     this  Lsun/tools/jar/Main;
            0  162     1     args  [Ljava/lang/String;
            3    5     2        e  Ljava/io/FileNotFoundException;
            6    8     2        e  Ljava/io/IOException;
            9  162     2    count  I
           10   77     3    flags  Ljava/lang/String;
           15   21     4        x  Lsun/tools/jar/GNUStyleOptions$BadArgs;
           27   77     4        i  I
           85  162     3        n  I
           87  152     4  version  I
           88  152     5        k  I
           89  152     6  nameBuf  [Ljava/lang/String;
           91  141     7        i  I
           97  112     8      dir  Ljava/lang/String;
          105  112     9   hasUNC  Z
          115  134     8        v  I
          124  129     9    files  [Ljava/lang/String;
          147  152     7    files  [Ljava/lang/String;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.FileNotFoundException
           0     1       5  Class java.io.IOException
          12    13      14  Class sun.tools.jar.GNUStyleOptions$BadArgs
           9    20      78  Class java.lang.ArrayIndexOutOfBoundsException
          21    23      78  Class java.lang.ArrayIndexOutOfBoundsException
          24    31      78  Class java.lang.ArrayIndexOutOfBoundsException
          32    36      78  Class java.lang.ArrayIndexOutOfBoundsException
          37    41      78  Class java.lang.ArrayIndexOutOfBoundsException
          42    46      78  Class java.lang.ArrayIndexOutOfBoundsException
          47    61      78  Class java.lang.ArrayIndexOutOfBoundsException
          62    74      78  Class java.lang.ArrayIndexOutOfBoundsException
          75    77      78  Class java.lang.ArrayIndexOutOfBoundsException
         115   116     117  Class java.lang.NumberFormatException
          90    95     142  Class java.lang.ArrayIndexOutOfBoundsException
          96   121     142  Class java.lang.ArrayIndexOutOfBoundsException
         122   137     142  Class java.lang.ArrayIndexOutOfBoundsException
         138   141     142  Class java.lang.ArrayIndexOutOfBoundsException
    MethodParameters:
      Name  Flags
      args  

  void addPackageIfNamed(java.util.Set<java.lang.String>, java.lang.String);
    descriptor: (Ljava/util/Set;Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.util.Set packages
        start local 2 // java.lang.String name
         0: .line 712
            aload 2 /* name */
            ldc "META-INF/versions/"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 13
         1: .line 714
            getstatic sun.tools.jar.Main.VERSIONS_DIR_LENGTH:I
            istore 3 /* i0 */
        start local 3 // int i0
         2: .line 715
            aload 2 /* name */
            bipush 47
            iload 3 /* i0 */
            invokevirtual java.lang.String.indexOf:(II)I
            istore 4 /* i */
        start local 4 // int i
         3: .line 716
            iload 4 /* i */
            ifgt 11
         4: .line 717
            aload 0 /* this */
            ldc "warn.release.unexpected.versioned.entry"
            aload 2 /* name */
            invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.warn:(Ljava/lang/String;)V
         5: .line 718
            return
         6: .line 721
      StackMap locals: int int
      StackMap stack:
            aload 2 /* name */
            iload 3 /* i0 */
            invokevirtual java.lang.String.charAt:(I)C
            istore 5 /* c */
        start local 5 // char c
         7: .line 722
            iload 5 /* c */
            bipush 48
            if_icmplt 8
            iload 5 /* c */
            bipush 57
            if_icmple 10
         8: .line 723
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            ldc "warn.release.unexpected.versioned.entry"
            aload 2 /* name */
            invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.warn:(Ljava/lang/String;)V
         9: .line 724
            return
        10: .line 726
      StackMap locals:
      StackMap stack:
            iinc 3 /* i0 */ 1
        end local 5 // char c
        11: .line 720
      StackMap locals:
      StackMap stack:
            iload 3 /* i0 */
            iload 4 /* i */
            if_icmplt 6
        12: .line 728
            aload 2 /* name */
            iload 4 /* i */
            iconst_1
            iadd
            aload 2 /* name */
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 2 /* name */
        end local 4 // int i
        end local 3 // int i0
        13: .line 730
      StackMap locals:
      StackMap stack:
            aload 2 /* name */
            invokestatic sun.tools.jar.Main.toPackageName:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* pn */
        start local 3 // java.lang.String pn
        14: .line 732
            aload 3 /* pn */
            invokestatic jdk.internal.module.Checks.isPackageName:(Ljava/lang/String;)Z
            ifeq 16
        15: .line 733
            aload 1 /* packages */
            aload 3 /* pn */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        16: .line 735
      StackMap locals: java.lang.String
      StackMap stack:
            return
        end local 3 // java.lang.String pn
        end local 2 // java.lang.String name
        end local 1 // java.util.Set packages
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   17     0      this  Lsun/tools/jar/Main;
            0   17     1  packages  Ljava/util/Set<Ljava/lang/String;>;
            0   17     2      name  Ljava/lang/String;
            2   13     3        i0  I
            3   13     4         i  I
            7   11     5         c  C
           14   17     3        pn  Ljava/lang/String;
    Signature: (Ljava/util/Set<Ljava/lang/String;>;Ljava/lang/String;)V
    MethodParameters:
          Name  Flags
      packages  
      name      

  private java.lang.String toEntryName(java.lang.String, java.util.Set<java.lang.String>, boolean);
    descriptor: (Ljava/lang/String;Ljava/util/Set;Z)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=7, args_size=4
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.String name
        start local 2 // java.util.Set cpaths
        start local 3 // boolean isDir
         0: .line 738
            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 739
            iload 3 /* isDir */
            ifeq 5
         2: .line 740
            aload 1 /* name */
            ldc "/"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 3
            aload 1 /* name */
            goto 4
      StackMap locals:
      StackMap stack:
         3: new java.lang.StringBuilder
            dup
            aload 1 /* name */
            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;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
         4: astore 1 /* name */
         5: .line 742
      StackMap locals:
      StackMap stack:
            ldc ""
            astore 4 /* matchPath */
        start local 4 // java.lang.String matchPath
         6: .line 743
            aload 2 /* cpaths */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 6
            goto 10
      StackMap locals: sun.tools.jar.Main java.lang.String java.util.Set int java.lang.String top java.util.Iterator
      StackMap stack:
         7: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 5 /* path */
        start local 5 // java.lang.String path
         8: .line 744
            aload 1 /* name */
            aload 5 /* path */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 10
            aload 5 /* path */
            invokevirtual java.lang.String.length:()I
            aload 4 /* matchPath */
            invokevirtual java.lang.String.length:()I
            if_icmple 10
         9: .line 745
            aload 5 /* path */
            astore 4 /* matchPath */
        end local 5 // java.lang.String path
        10: .line 743
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        11: .line 748
            aload 0 /* this */
            aload 1 /* name */
            aload 4 /* matchPath */
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.safeName:(Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* name */
        12: .line 751
            aload 1 /* name */
            ldc "./"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 14
        13: .line 752
            aload 1 /* name */
            iconst_2
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 1 /* name */
        14: .line 754
      StackMap locals: sun.tools.jar.Main java.lang.String java.util.Set int java.lang.String
      StackMap stack:
            aload 1 /* name */
            areturn
        end local 4 // java.lang.String matchPath
        end local 3 // boolean isDir
        end local 2 // java.util.Set cpaths
        end local 1 // java.lang.String name
        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       name  Ljava/lang/String;
            0   15     2     cpaths  Ljava/util/Set<Ljava/lang/String;>;
            0   15     3      isDir  Z
            6   15     4  matchPath  Ljava/lang/String;
            8   10     5       path  Ljava/lang/String;
    Signature: (Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;Z)Ljava/lang/String;
    MethodParameters:
        Name  Flags
      name    
      cpaths  
      isDir   

  private static java.lang.String toVersionedName(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.String name
        start local 1 // int version
         0: .line 758
            iload 1 /* version */
            ifle 2
         1: .line 759
            new java.lang.StringBuilder
            dup
            ldc "META-INF/versions/"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* version */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "/"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            goto 3
      StackMap locals:
      StackMap stack:
         2: aload 0 /* name */
         3: .line 758
      StackMap locals:
      StackMap stack: java.lang.String
            areturn
        end local 1 // int version
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     name  Ljava/lang/String;
            0    4     1  version  I
    MethodParameters:
         Name  Flags
      name     
      version  

  private static java.lang.String toPackageName(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.lang.String path
         0: .line 763
            aload 0 /* path */
            bipush 47
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 1 /* index */
        start local 1 // int index
         1: .line 764
            iload 1 /* index */
            iconst_m1
            if_icmpeq 3
         2: .line 765
            aload 0 /* path */
            iconst_0
            iload 1 /* index */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            bipush 47
            bipush 46
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            areturn
         3: .line 767
      StackMap locals: int
      StackMap stack:
            ldc ""
            areturn
        end local 1 // int index
        end local 0 // java.lang.String path
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   path  Ljava/lang/String;
            1    4     1  index  I
    MethodParameters:
      Name  Flags
      path  

  private void expand();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // sun.tools.jar.Main this
         0: .line 772
            aload 0 /* this */
            getfield sun.tools.jar.Main.filesMap:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 2
            goto 4
      StackMap locals: sun.tools.jar.Main top java.util.Iterator
      StackMap stack:
         1: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            istore 1 /* version */
        start local 1 // int version
         2: .line 773
            aload 0 /* this */
            getfield sun.tools.jar.Main.filesMap:Ljava/util/Map;
            iload 1 /* version */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String[]
            astore 3 /* files */
        start local 3 // java.lang.String[] files
         3: .line 774
            aload 0 /* this */
            aconst_null
            aload 3 /* files */
            aload 0 /* this */
            getfield sun.tools.jar.Main.pathsMap:Ljava/util/Map;
            iload 1 /* version */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Set
            iload 1 /* version */
            invokevirtual sun.tools.jar.Main.expand:(Ljava/io/File;[Ljava/lang/String;Ljava/util/Set;I)V
        end local 3 // java.lang.String[] files
        end local 1 // int version
         4: .line 772
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         5: .line 776
            return
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lsun/tools/jar/Main;
            2    4     1  version  I
            3    4     3    files  [Ljava/lang/String;
    Exceptions:
      throws java.io.IOException

  private void expand(java.io.File, java.lang.String[], java.util.Set<java.lang.String>, );
    descriptor: (Ljava/io/File;[Ljava/lang/String;Ljava/util/Set;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=10, args_size=5
        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 // java.util.Set cpaths
        start local 4 // int version
         0: .line 790
            aload 2 /* files */
            ifnonnull 2
         1: .line 791
            return
         2: .line 793
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         3: goto 41
         4: .line 795
      StackMap locals: int
      StackMap stack:
            aload 1 /* dir */
            ifnonnull 7
         5: .line 796
            new java.io.File
            dup
            aload 2 /* files */
            iload 5 /* i */
            aaload
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 6 /* f */
        start local 6 // java.io.File f
         6: goto 8
        end local 6 // java.io.File f
         7: .line 798
      StackMap locals:
      StackMap stack:
            new java.io.File
            dup
            aload 1 /* dir */
            aload 2 /* files */
            iload 5 /* i */
            aaload
            invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
            astore 6 /* f */
        start local 6 // java.io.File f
         8: .line 800
      StackMap locals: java.io.File
      StackMap stack:
            aload 6 /* f */
            invokevirtual java.io.File.isDirectory:()Z
            istore 7 /* isDir */
        start local 7 // boolean isDir
         9: .line 801
            aload 0 /* this */
            aload 6 /* f */
            invokevirtual java.io.File.getPath:()Ljava/lang/String;
            aload 3 /* cpaths */
            iload 7 /* isDir */
            invokevirtual sun.tools.jar.Main.toEntryName:(Ljava/lang/String;Ljava/util/Set;Z)Ljava/lang/String;
            astore 8 /* name */
        start local 8 // java.lang.String name
        10: .line 803
            iload 4 /* version */
            ifeq 18
        11: .line 804
            aload 8 /* name */
            ldc "META-INF/versions/"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 17
        12: .line 808
            aload 0 /* this */
            ldc "error.release.unexpected.versioned.entry"
        13: .line 809
            aload 8 /* name */
            iload 4 /* version */
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
        14: .line 808
            invokestatic sun.tools.jar.Main.formatMsg2:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.error:(Ljava/lang/String;)V
        15: .line 810
            aload 0 /* this */
            iconst_0
            putfield sun.tools.jar.Main.ok:Z
        16: .line 811
            return
        17: .line 813
      StackMap locals: int java.lang.String
      StackMap stack:
            aload 8 /* name */
            iload 4 /* version */
            invokestatic sun.tools.jar.Main.toVersionedName:(Ljava/lang/String;I)Ljava/lang/String;
            astore 8 /* name */
        18: .line 816
      StackMap locals:
      StackMap stack:
            aload 6 /* f */
            invokevirtual java.io.File.isFile:()Z
            ifeq 29
        19: .line 817
            new sun.tools.jar.Main$Entry
            dup
            aload 6 /* f */
            aload 8 /* name */
            iconst_0
            invokespecial sun.tools.jar.Main$Entry.<init>:(Ljava/io/File;Ljava/lang/String;Z)V
            astore 9 /* e */
        start local 9 // sun.tools.jar.Main$Entry e
        20: .line 818
            aload 8 /* name */
            invokestatic sun.tools.jar.Main.isModuleInfoEntry:(Ljava/lang/String;)Z
            ifeq 25
        21: .line 819
            aload 0 /* this */
            getfield sun.tools.jar.Main.moduleInfos:Ljava/util/Map;
            aload 8 /* name */
            aload 6 /* f */
            invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
            invokestatic java.nio.file.Files.readAllBytes:(Ljava/nio/file/Path;)[B
            invokeinterface java.util.Map.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        22: .line 820
            aload 0 /* this */
            getfield sun.tools.jar.Main.uflag:Z
            ifeq 40
        23: .line 821
            aload 0 /* this */
            getfield sun.tools.jar.Main.entryMap:Ljava/util/Map;
            aload 8 /* name */
            aload 9 /* e */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        24: .line 822
            goto 40
      StackMap locals: sun.tools.jar.Main$Entry
      StackMap stack:
        25: aload 0 /* this */
            getfield sun.tools.jar.Main.entries:Ljava/util/Set;
            aload 9 /* e */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            ifeq 40
        26: .line 823
            aload 0 /* this */
            getfield sun.tools.jar.Main.uflag:Z
            ifeq 40
        27: .line 824
            aload 0 /* this */
            getfield sun.tools.jar.Main.entryMap:Ljava/util/Map;
            aload 8 /* name */
            aload 9 /* e */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 9 // sun.tools.jar.Main$Entry e
        28: .line 826
            goto 40
      StackMap locals:
      StackMap stack:
        29: iload 7 /* isDir */
            ifeq 38
        30: .line 827
            new sun.tools.jar.Main$Entry
            dup
            aload 6 /* f */
            aload 8 /* name */
            iconst_1
            invokespecial sun.tools.jar.Main$Entry.<init>:(Ljava/io/File;Ljava/lang/String;Z)V
            astore 9 /* e */
        start local 9 // sun.tools.jar.Main$Entry e
        31: .line 828
            aload 0 /* this */
            getfield sun.tools.jar.Main.entries:Ljava/util/Set;
            aload 9 /* e */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            ifeq 40
        32: .line 835
            aload 0 /* this */
            getfield sun.tools.jar.Main.entryMap:Ljava/util/Map;
            aload 8 /* name */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 35
        33: .line 836
            aload 0 /* this */
            getfield sun.tools.jar.Main.entries:Ljava/util/Set;
            aload 9 /* e */
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
        34: .line 837
            goto 36
        35: .line 838
      StackMap locals: sun.tools.jar.Main$Entry
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.entryMap:Ljava/util/Map;
            aload 8 /* name */
            aload 9 /* e */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        36: .line 840
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 6 /* f */
            aload 6 /* f */
            invokevirtual java.io.File.list:()[Ljava/lang/String;
            aload 3 /* cpaths */
            iload 4 /* version */
            invokevirtual sun.tools.jar.Main.expand:(Ljava/io/File;[Ljava/lang/String;Ljava/util/Set;I)V
        end local 9 // sun.tools.jar.Main$Entry e
        37: .line 842
            goto 40
        38: .line 843
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "error.nosuch.fileordir"
            aload 6 /* f */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.error:(Ljava/lang/String;)V
        39: .line 844
            aload 0 /* this */
            iconst_0
            putfield sun.tools.jar.Main.ok:Z
        end local 8 // java.lang.String name
        end local 7 // boolean isDir
        end local 6 // java.io.File f
        40: .line 793
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        41: iload 5 /* i */
            aload 2 /* files */
            arraylength
            if_icmplt 4
        end local 5 // int i
        42: .line 847
            return
        end local 4 // int version
        end local 3 // java.util.Set cpaths
        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   43     0     this  Lsun/tools/jar/Main;
            0   43     1      dir  Ljava/io/File;
            0   43     2    files  [Ljava/lang/String;
            0   43     3   cpaths  Ljava/util/Set<Ljava/lang/String;>;
            0   43     4  version  I
            3   42     5        i  I
            6    7     6        f  Ljava/io/File;
            8   40     6        f  Ljava/io/File;
            9   40     7    isDir  Z
           10   40     8     name  Ljava/lang/String;
           20   28     9        e  Lsun/tools/jar/Main$Entry;
           31   37     9        e  Lsun/tools/jar/Main$Entry;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/io/File;[Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;I)V
    MethodParameters:
         Name  Flags
      dir      
      files    
      cpaths   
      version  

  void create(java.io.OutputStream, java.util.jar.Manifest);
    descriptor: (Ljava/io/OutputStream;Ljava/util/jar/Manifest;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=8, 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 854
            aconst_null
            astore 3
            aconst_null
            astore 4
         1: new java.util.jar.JarOutputStream
            dup
            aload 1 /* out */
            invokespecial java.util.jar.JarOutputStream.<init>:(Ljava/io/OutputStream;)V
            astore 5 /* zos */
        start local 5 // java.util.zip.ZipOutputStream zos
         2: .line 855
            aload 0 /* this */
            getfield sun.tools.jar.Main.flag0:Z
            ifeq 4
         3: .line 856
            aload 5 /* zos */
            iconst_0
            invokevirtual java.util.zip.ZipOutputStream.setMethod:(I)V
         4: .line 859
      StackMap locals: java.lang.Throwable java.lang.Throwable java.util.zip.ZipOutputStream
      StackMap stack:
            aload 2 /* manifest */
            ifnull 19
         5: .line 860
            aload 0 /* this */
            getfield sun.tools.jar.Main.vflag:Z
            ifeq 7
         6: .line 861
            aload 0 /* this */
            ldc "out.added.manifest"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
         7: .line 863
      StackMap locals:
      StackMap stack:
            new java.util.zip.ZipEntry
            dup
            ldc "META-INF/"
            invokespecial java.util.zip.ZipEntry.<init>:(Ljava/lang/String;)V
            astore 6 /* e */
        start local 6 // java.util.zip.ZipEntry e
         8: .line 864
            aload 6 /* e */
            invokestatic java.lang.System.currentTimeMillis:()J
            invokevirtual java.util.zip.ZipEntry.setTime:(J)V
         9: .line 865
            aload 6 /* e */
            lconst_0
            invokevirtual java.util.zip.ZipEntry.setSize:(J)V
        10: .line 866
            aload 6 /* e */
            lconst_0
            invokevirtual java.util.zip.ZipEntry.setCrc:(J)V
        11: .line 867
            aload 5 /* zos */
            aload 6 /* e */
            invokevirtual java.util.zip.ZipOutputStream.putNextEntry:(Ljava/util/zip/ZipEntry;)V
        12: .line 868
            new java.util.zip.ZipEntry
            dup
            ldc "META-INF/MANIFEST.MF"
            invokespecial java.util.zip.ZipEntry.<init>:(Ljava/lang/String;)V
            astore 6 /* e */
        13: .line 869
            aload 6 /* e */
            invokestatic java.lang.System.currentTimeMillis:()J
            invokevirtual java.util.zip.ZipEntry.setTime:(J)V
        14: .line 870
            aload 0 /* this */
            getfield sun.tools.jar.Main.flag0:Z
            ifeq 16
        15: .line 871
            aload 0 /* this */
            aload 6 /* e */
            aload 2 /* manifest */
            invokevirtual sun.tools.jar.Main.crc32Manifest:(Ljava/util/zip/ZipEntry;Ljava/util/jar/Manifest;)V
        16: .line 873
      StackMap locals: java.util.zip.ZipEntry
      StackMap stack:
            aload 5 /* zos */
            aload 6 /* e */
            invokevirtual java.util.zip.ZipOutputStream.putNextEntry:(Ljava/util/zip/ZipEntry;)V
        17: .line 874
            aload 2 /* manifest */
            aload 5 /* zos */
            invokevirtual java.util.jar.Manifest.write:(Ljava/io/OutputStream;)V
        18: .line 875
            aload 5 /* zos */
            invokevirtual java.util.zip.ZipOutputStream.closeEntry:()V
        end local 6 // java.util.zip.ZipEntry e
        19: .line 877
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.tools.jar.Main.moduleInfos:Ljava/util/Map;
            aload 5 /* zos */
            invokevirtual sun.tools.jar.Main.updateModuleInfo:(Ljava/util/Map;Ljava/util/zip/ZipOutputStream;)V
        20: .line 878
            aload 0 /* this */
            getfield sun.tools.jar.Main.entries:Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 7
            goto 23
      StackMap locals: sun.tools.jar.Main java.io.OutputStream java.util.jar.Manifest java.lang.Throwable java.lang.Throwable java.util.zip.ZipOutputStream top java.util.Iterator
      StackMap stack:
        21: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.tools.jar.Main$Entry
            astore 6 /* entry */
        start local 6 // sun.tools.jar.Main$Entry entry
        22: .line 879
            aload 0 /* this */
            aload 5 /* zos */
            aload 6 /* entry */
            invokevirtual sun.tools.jar.Main.addFile:(Ljava/util/zip/ZipOutputStream;Lsun/tools/jar/Main$Entry;)V
        end local 6 // sun.tools.jar.Main$Entry entry
        23: .line 878
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 21
        24: .line 881
            aload 5 /* zos */
            ifnull 30
            aload 5 /* zos */
            invokevirtual java.util.zip.ZipOutputStream.close:()V
            goto 30
      StackMap locals: sun.tools.jar.Main java.io.OutputStream java.util.jar.Manifest java.lang.Throwable java.lang.Throwable java.util.zip.ZipOutputStream
      StackMap stack: java.lang.Throwable
        25: astore 3
            aload 5 /* zos */
            ifnull 26
            aload 5 /* zos */
            invokevirtual java.util.zip.ZipOutputStream.close:()V
        end local 5 // java.util.zip.ZipOutputStream zos
      StackMap locals:
      StackMap stack:
        26: aload 3
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        27: astore 4
            aload 3
            ifnonnull 28
            aload 4
            astore 3
            goto 29
      StackMap locals:
      StackMap stack:
        28: aload 3
            aload 4
            if_acmpeq 29
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        29: aload 3
            athrow
        30: .line 882
      StackMap locals:
      StackMap stack:
            return
        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   31     0      this  Lsun/tools/jar/Main;
            0   31     1       out  Ljava/io/OutputStream;
            0   31     2  manifest  Ljava/util/jar/Manifest;
            2   26     5       zos  Ljava/util/zip/ZipOutputStream;
            8   19     6         e  Ljava/util/zip/ZipEntry;
           22   23     6     entry  Lsun/tools/jar/Main$Entry;
      Exception table:
        from    to  target  type
           2    24      25  any
           1    27      27  any
    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 885
            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 895
            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 897
      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 898
            iconst_0
            ireturn
         4: .line 899
      StackMap locals: int
      StackMap stack:
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         5: goto 11
         6: .line 900
      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 901
            aload 2 /* upper */
            iload 4 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            istore 6 /* c2 */
        start local 6 // char c2
         8: .line 902
            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 903
            iconst_0
            ireturn
        end local 6 // char c2
        end local 5 // char c1
        10: .line 899
      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 905
            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, java.util.Map<java.lang.String, byte[]>, jdk.internal.util.jar.JarIndex);
    descriptor: (Ljava/io/InputStream;Ljava/io/OutputStream;Ljava/io/InputStream;Ljava/util/Map;Ljdk/internal/util/jar/JarIndex;)Z
    flags: (0x0000) 
    Code:
      stack=4, locals=17, args_size=6
        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 // java.util.Map moduleInfos
        start local 5 // jdk.internal.util.jar.JarIndex jarIndex
         0: .line 916
            new java.util.zip.ZipInputStream
            dup
            aload 1 /* in */
            invokespecial java.util.zip.ZipInputStream.<init>:(Ljava/io/InputStream;)V
            astore 6 /* zis */
        start local 6 // java.util.zip.ZipInputStream zis
         1: .line 917
            new java.util.jar.JarOutputStream
            dup
            aload 2 /* out */
            invokespecial java.util.jar.JarOutputStream.<init>:(Ljava/io/OutputStream;)V
            astore 7 /* zos */
        start local 7 // java.util.zip.ZipOutputStream zos
         2: .line 918
            aconst_null
            astore 8 /* e */
        start local 8 // java.util.zip.ZipEntry e
         3: .line 919
            iconst_0
            istore 9 /* foundManifest */
        start local 9 // boolean foundManifest
         4: .line 920
            iconst_1
            istore 10 /* updateOk */
        start local 10 // boolean updateOk
         5: .line 924
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 11 /* jentries */
        start local 11 // java.util.Set jentries
         6: .line 926
            aload 5 /* jarIndex */
            ifnull 52
         7: .line 927
            aload 0 /* this */
            aload 5 /* jarIndex */
            aload 7 /* zos */
            invokevirtual sun.tools.jar.Main.addIndex:(Ljdk/internal/util/jar/JarIndex;Ljava/util/zip/ZipOutputStream;)V
         8: .line 931
            goto 52
         9: .line 932
      StackMap locals: sun.tools.jar.Main java.io.InputStream java.io.OutputStream java.io.InputStream java.util.Map jdk.internal.util.jar.JarIndex java.util.zip.ZipInputStream java.util.zip.ZipOutputStream java.util.zip.ZipEntry int int java.util.Set
      StackMap stack:
            aload 8 /* e */
            invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
            astore 12 /* name */
        start local 12 // java.lang.String name
        10: .line 934
            aload 0 /* this */
            aload 12 /* name */
            ldc "META-INF/MANIFEST.MF"
            invokevirtual sun.tools.jar.Main.equalsIgnoreCase:(Ljava/lang/String;Ljava/lang/String;)Z
            istore 13 /* isManifestEntry */
        start local 13 // boolean isManifestEntry
        11: .line 935
            aload 12 /* name */
            invokestatic sun.tools.jar.Main.isModuleInfoEntry:(Ljava/lang/String;)Z
            istore 14 /* isModuleInfoEntry */
        start local 14 // boolean isModuleInfoEntry
        12: .line 937
            aload 5 /* jarIndex */
            ifnull 13
            aload 0 /* this */
            aload 12 /* name */
            ldc "META-INF/INDEX.LIST"
            invokevirtual sun.tools.jar.Main.equalsIgnoreCase:(Ljava/lang/String;Ljava/lang/String;)Z
            ifne 52
        13: .line 938
      StackMap locals: java.lang.String int int
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.Mflag:Z
            ifeq 15
            iload 13 /* isManifestEntry */
            ifeq 15
        14: .line 939
            goto 52
        15: .line 940
      StackMap locals:
      StackMap stack:
            iload 13 /* isManifestEntry */
            ifeq 29
            aload 3 /* newManifest */
            ifnonnull 17
        16: .line 941
            aload 0 /* this */
            getfield sun.tools.jar.Main.ename:Ljava/lang/String;
            ifnonnull 17
            aload 0 /* this */
            getfield sun.tools.jar.Main.isMultiRelease:Z
            ifeq 29
        17: .line 942
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 9 /* foundManifest */
        18: .line 943
            aload 3 /* newManifest */
            ifnull 24
        19: .line 947
            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 15 /* fis */
        start local 15 // java.io.FileInputStream fis
        20: .line 948
            aload 0 /* this */
            new java.util.jar.Manifest
            dup
            aload 15 /* fis */
            invokespecial java.util.jar.Manifest.<init>:(Ljava/io/InputStream;)V
            invokevirtual sun.tools.jar.Main.isAmbiguousMainClass:(Ljava/util/jar/Manifest;)Z
            istore 16 /* ambiguous */
        start local 16 // boolean ambiguous
        21: .line 949
            aload 15 /* fis */
            invokevirtual java.io.FileInputStream.close:()V
        22: .line 950
            iload 16 /* ambiguous */
            ifeq 24
        23: .line 951
            iconst_0
            ireturn
        end local 16 // boolean ambiguous
        end local 15 // java.io.FileInputStream fis
        24: .line 955
      StackMap locals:
      StackMap stack:
            new java.util.jar.Manifest
            dup
            aload 6 /* zis */
            invokespecial java.util.jar.Manifest.<init>:(Ljava/io/InputStream;)V
            astore 15 /* old */
        start local 15 // java.util.jar.Manifest old
        25: .line 956
            aload 3 /* newManifest */
            ifnull 27
        26: .line 957
            aload 15 /* old */
            aload 3 /* newManifest */
            invokevirtual java.util.jar.Manifest.read:(Ljava/io/InputStream;)V
        27: .line 959
      StackMap locals: java.util.jar.Manifest
      StackMap stack:
            aload 0 /* this */
            aload 15 /* old */
            aload 7 /* zos */
            invokevirtual sun.tools.jar.Main.updateManifest:(Ljava/util/jar/Manifest;Ljava/util/zip/ZipOutputStream;)Z
            ifne 52
        28: .line 960
            iconst_0
            ireturn
        end local 15 // java.util.jar.Manifest old
        29: .line 962
      StackMap locals:
      StackMap stack:
            aload 4 /* moduleInfos */
            ifnull 32
            iload 14 /* isModuleInfoEntry */
            ifeq 32
        30: .line 963
            aload 4 /* moduleInfos */
            aload 12 /* name */
            aload 6 /* zis */
            invokevirtual java.util.zip.ZipInputStream.readAllBytes:()[B
            invokeinterface java.util.Map.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        31: .line 964
            goto 52
        32: .line 965
      StackMap locals:
      StackMap stack:
            aload 8 /* e */
            invokevirtual java.util.zip.ZipEntry.isDirectory:()Z
            istore 15 /* isDir */
        start local 15 // boolean isDir
        33: .line 966
            aload 0 /* this */
            getfield sun.tools.jar.Main.entryMap:Ljava/util/Map;
            aload 12 /* name */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifne 45
        34: .line 968
            new java.util.zip.ZipEntry
            dup
            aload 12 /* name */
            invokespecial java.util.zip.ZipEntry.<init>:(Ljava/lang/String;)V
            astore 16 /* e2 */
        start local 16 // java.util.zip.ZipEntry e2
        35: .line 969
            aload 16 /* e2 */
            aload 8 /* e */
            invokevirtual java.util.zip.ZipEntry.getMethod:()I
            invokevirtual java.util.zip.ZipEntry.setMethod:(I)V
        36: .line 970
            aload 16 /* e2 */
            aload 8 /* e */
            invokevirtual java.util.zip.ZipEntry.getTime:()J
            invokevirtual java.util.zip.ZipEntry.setTime:(J)V
        37: .line 971
            aload 16 /* e2 */
            aload 8 /* e */
            invokevirtual java.util.zip.ZipEntry.getComment:()Ljava/lang/String;
            invokevirtual java.util.zip.ZipEntry.setComment:(Ljava/lang/String;)V
        38: .line 972
            aload 16 /* e2 */
            aload 8 /* e */
            invokevirtual java.util.zip.ZipEntry.getExtra:()[B
            invokevirtual java.util.zip.ZipEntry.setExtra:([B)V
        39: .line 973
            aload 8 /* e */
            invokevirtual java.util.zip.ZipEntry.getMethod:()I
            ifne 42
        40: .line 974
            aload 16 /* e2 */
            aload 8 /* e */
            invokevirtual java.util.zip.ZipEntry.getSize:()J
            invokevirtual java.util.zip.ZipEntry.setSize:(J)V
        41: .line 975
            aload 16 /* e2 */
            aload 8 /* e */
            invokevirtual java.util.zip.ZipEntry.getCrc:()J
            invokevirtual java.util.zip.ZipEntry.setCrc:(J)V
        42: .line 977
      StackMap locals: int java.util.zip.ZipEntry
      StackMap stack:
            aload 7 /* zos */
            aload 16 /* e2 */
            invokevirtual java.util.zip.ZipOutputStream.putNextEntry:(Ljava/util/zip/ZipEntry;)V
        43: .line 978
            aload 0 /* this */
            aload 6 /* zis */
            aload 7 /* zos */
            invokevirtual sun.tools.jar.Main.copy:(Ljava/io/InputStream;Ljava/io/OutputStream;)V
        end local 16 // java.util.zip.ZipEntry e2
        44: .line 979
            goto 50
        45: .line 980
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.entryMap:Ljava/util/Map;
            aload 12 /* name */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast sun.tools.jar.Main$Entry
            astore 16 /* ent */
        start local 16 // sun.tools.jar.Main$Entry ent
        46: .line 981
            aload 0 /* this */
            aload 7 /* zos */
            aload 16 /* ent */
            invokevirtual sun.tools.jar.Main.addFile:(Ljava/util/zip/ZipOutputStream;Lsun/tools/jar/Main$Entry;)V
        47: .line 982
            aload 0 /* this */
            getfield sun.tools.jar.Main.entryMap:Ljava/util/Map;
            aload 12 /* name */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        48: .line 983
            aload 0 /* this */
            getfield sun.tools.jar.Main.entries:Ljava/util/Set;
            aload 16 /* ent */
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
        49: .line 984
            aload 16 /* ent */
            getfield sun.tools.jar.Main$Entry.isDir:Z
            istore 15 /* isDir */
        end local 16 // sun.tools.jar.Main$Entry ent
        50: .line 986
      StackMap locals:
      StackMap stack:
            iload 15 /* isDir */
            ifne 52
        51: .line 987
            aload 11 /* jentries */
            aload 12 /* name */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 15 // boolean isDir
        end local 14 // boolean isModuleInfoEntry
        end local 13 // boolean isManifestEntry
        end local 12 // java.lang.String name
        52: .line 931
      StackMap locals: sun.tools.jar.Main java.io.InputStream java.io.OutputStream java.io.InputStream java.util.Map jdk.internal.util.jar.JarIndex java.util.zip.ZipInputStream java.util.zip.ZipOutputStream java.util.zip.ZipEntry int int java.util.Set
      StackMap stack:
            aload 6 /* zis */
            invokevirtual java.util.zip.ZipInputStream.getNextEntry:()Ljava/util/zip/ZipEntry;
            dup
            astore 8 /* e */
            ifnonnull 9
        53: .line 993
            aload 0 /* this */
            getfield sun.tools.jar.Main.entries:Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 13
            goto 58
      StackMap locals: sun.tools.jar.Main java.io.InputStream java.io.OutputStream java.io.InputStream java.util.Map jdk.internal.util.jar.JarIndex java.util.zip.ZipInputStream java.util.zip.ZipOutputStream java.util.zip.ZipEntry int int java.util.Set top java.util.Iterator
      StackMap stack:
        54: aload 13
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.tools.jar.Main$Entry
            astore 12 /* entry */
        start local 12 // sun.tools.jar.Main$Entry entry
        55: .line 994
            aload 0 /* this */
            aload 7 /* zos */
            aload 12 /* entry */
            invokevirtual sun.tools.jar.Main.addFile:(Ljava/util/zip/ZipOutputStream;Lsun/tools/jar/Main$Entry;)V
        56: .line 995
            aload 12 /* entry */
            getfield sun.tools.jar.Main$Entry.isDir:Z
            ifne 58
        57: .line 996
            aload 11 /* jentries */
            aload 12 /* entry */
            getfield sun.tools.jar.Main$Entry.name:Ljava/lang/String;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 12 // sun.tools.jar.Main$Entry entry
        58: .line 993
      StackMap locals:
      StackMap stack:
            aload 13
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 54
        59: .line 999
            iload 9 /* foundManifest */
            ifne 72
        60: .line 1000
            aload 3 /* newManifest */
            ifnull 69
        61: .line 1001
            new java.util.jar.Manifest
            dup
            aload 3 /* newManifest */
            invokespecial java.util.jar.Manifest.<init>:(Ljava/io/InputStream;)V
            astore 12 /* m */
        start local 12 // java.util.jar.Manifest m
        62: .line 1002
            aload 0 /* this */
            aload 12 /* m */
            invokevirtual sun.tools.jar.Main.isAmbiguousMainClass:(Ljava/util/jar/Manifest;)Z
            ifeq 63
            iconst_0
            goto 64
      StackMap locals: sun.tools.jar.Main java.io.InputStream java.io.OutputStream java.io.InputStream java.util.Map jdk.internal.util.jar.JarIndex java.util.zip.ZipInputStream java.util.zip.ZipOutputStream java.util.zip.ZipEntry int int java.util.Set java.util.jar.Manifest
      StackMap stack:
        63: iconst_1
      StackMap locals:
      StackMap stack: int
        64: istore 10 /* updateOk */
        65: .line 1003
            iload 10 /* updateOk */
            ifeq 72
        66: .line 1004
            aload 0 /* this */
            aload 12 /* m */
            aload 7 /* zos */
            invokevirtual sun.tools.jar.Main.updateManifest:(Ljava/util/jar/Manifest;Ljava/util/zip/ZipOutputStream;)Z
            ifne 72
        67: .line 1005
            iconst_0
            istore 10 /* updateOk */
        end local 12 // java.util.jar.Manifest m
        68: .line 1008
            goto 72
      StackMap locals:
      StackMap stack:
        69: aload 0 /* this */
            getfield sun.tools.jar.Main.ename:Ljava/lang/String;
            ifnull 72
        70: .line 1009
            aload 0 /* this */
            new java.util.jar.Manifest
            dup
            invokespecial java.util.jar.Manifest.<init>:()V
            aload 7 /* zos */
            invokevirtual sun.tools.jar.Main.updateManifest:(Ljava/util/jar/Manifest;Ljava/util/zip/ZipOutputStream;)Z
            ifne 72
        71: .line 1010
            iconst_0
            istore 10 /* updateOk */
        72: .line 1014
      StackMap locals:
      StackMap stack:
            iload 10 /* updateOk */
            ifeq 83
        73: .line 1015
            aload 4 /* moduleInfos */
            ifnull 80
            aload 4 /* moduleInfos */
            invokeinterface java.util.Map.isEmpty:()Z
            ifne 80
        74: .line 1016
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 12 /* pkgs */
        start local 12 // java.util.Set pkgs
        75: .line 1017
            aload 11 /* jentries */
            aload 0 /* this */
            aload 12 /* pkgs */
            invokedynamic accept(Lsun/tools/jar/Main;Ljava/util/Set;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  sun/tools/jar/Main.lambda$7(Ljava/util/Set;Ljava/lang/String;)V (7)
                  (Ljava/lang/String;)V
            invokeinterface java.util.Set.forEach:(Ljava/util/function/Consumer;)V
        76: .line 1018
            aload 0 /* this */
            aload 4 /* moduleInfos */
            aload 12 /* pkgs */
            invokevirtual sun.tools.jar.Main.addExtendedModuleAttributes:(Ljava/util/Map;Ljava/util/Set;)V
        77: .line 1019
            aload 0 /* this */
            aload 4 /* moduleInfos */
            ldc "module-info.class"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast byte[]
            aload 11 /* jentries */
            invokevirtual sun.tools.jar.Main.checkModuleInfo:([BLjava/util/Set;)Z
            istore 10 /* updateOk */
        78: .line 1020
            aload 0 /* this */
            aload 4 /* moduleInfos */
            aload 7 /* zos */
            invokevirtual sun.tools.jar.Main.updateModuleInfo:(Ljava/util/Map;Ljava/util/zip/ZipOutputStream;)V
        end local 12 // java.util.Set pkgs
        79: .line 1022
            goto 83
      StackMap locals:
      StackMap stack:
        80: aload 0 /* this */
            getfield sun.tools.jar.Main.moduleVersion:Ljava/lang/module/ModuleDescriptor$Version;
            ifnonnull 81
            aload 0 /* this */
            getfield sun.tools.jar.Main.modulesToHash:Ljava/util/regex/Pattern;
            ifnull 83
        81: .line 1023
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "error.module.options.without.info"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.error:(Ljava/lang/String;)V
        82: .line 1024
            iconst_0
            istore 10 /* updateOk */
        83: .line 1027
      StackMap locals:
      StackMap stack:
            aload 6 /* zis */
            invokevirtual java.util.zip.ZipInputStream.close:()V
        84: .line 1028
            aload 7 /* zos */
            invokevirtual java.util.zip.ZipOutputStream.close:()V
        85: .line 1029
            iload 10 /* updateOk */
            ireturn
        end local 11 // java.util.Set jentries
        end local 10 // boolean updateOk
        end local 9 // boolean foundManifest
        end local 8 // java.util.zip.ZipEntry e
        end local 7 // java.util.zip.ZipOutputStream zos
        end local 6 // java.util.zip.ZipInputStream zis
        end local 5 // jdk.internal.util.jar.JarIndex jarIndex
        end local 4 // java.util.Map moduleInfos
        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   86     0               this  Lsun/tools/jar/Main;
            0   86     1                 in  Ljava/io/InputStream;
            0   86     2                out  Ljava/io/OutputStream;
            0   86     3        newManifest  Ljava/io/InputStream;
            0   86     4        moduleInfos  Ljava/util/Map<Ljava/lang/String;[B>;
            0   86     5           jarIndex  Ljdk/internal/util/jar/JarIndex;
            1   86     6                zis  Ljava/util/zip/ZipInputStream;
            2   86     7                zos  Ljava/util/zip/ZipOutputStream;
            3   86     8                  e  Ljava/util/zip/ZipEntry;
            4   86     9      foundManifest  Z
            5   86    10           updateOk  Z
            6   86    11           jentries  Ljava/util/Set<Ljava/lang/String;>;
           10   52    12               name  Ljava/lang/String;
           11   52    13    isManifestEntry  Z
           12   52    14  isModuleInfoEntry  Z
           20   24    15                fis  Ljava/io/FileInputStream;
           21   24    16          ambiguous  Z
           25   29    15                old  Ljava/util/jar/Manifest;
           33   52    15              isDir  Z
           35   44    16                 e2  Ljava/util/zip/ZipEntry;
           46   50    16                ent  Lsun/tools/jar/Main$Entry;
           55   58    12              entry  Lsun/tools/jar/Main$Entry;
           62   68    12                  m  Ljava/util/jar/Manifest;
           75   79    12               pkgs  Ljava/util/Set<Ljava/lang/String;>;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/io/InputStream;Ljava/io/OutputStream;Ljava/io/InputStream;Ljava/util/Map<Ljava/lang/String;[B>;Ljdk/internal/util/jar/JarIndex;)Z
    MethodParameters:
             Name  Flags
      in           
      out          
      newManifest  
      moduleInfos  
      jarIndex     

  private void addIndex(jdk.internal.util.jar.JarIndex, java.util.zip.ZipOutputStream);
    descriptor: (Ljdk/internal/util/jar/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 // jdk.internal.util.jar.JarIndex index
        start local 2 // java.util.zip.ZipOutputStream zos
         0: .line 1035
            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 1036
            aload 3 /* e */
            invokestatic java.lang.System.currentTimeMillis:()J
            invokevirtual java.util.zip.ZipEntry.setTime:(J)V
         2: .line 1037
            aload 0 /* this */
            getfield sun.tools.jar.Main.flag0:Z
            ifeq 6
         3: .line 1038
            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 1039
            aload 1 /* index */
            aload 4 /* os */
            invokevirtual jdk.internal.util.jar.JarIndex.write:(Ljava/io/OutputStream;)V
         5: .line 1040
            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 1042
      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 1043
            aload 1 /* index */
            aload 2 /* zos */
            invokevirtual jdk.internal.util.jar.JarIndex.write:(Ljava/io/OutputStream;)V
         8: .line 1044
            aload 2 /* zos */
            invokevirtual java.util.zip.ZipOutputStream.closeEntry:()V
         9: .line 1045
            return
        end local 3 // java.util.zip.ZipEntry e
        end local 2 // java.util.zip.ZipOutputStream zos
        end local 1 // jdk.internal.util.jar.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  Ljdk/internal/util/jar/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 updateModuleInfo(java.util.Map<java.lang.String, byte[]>, java.util.zip.ZipOutputStream);
    descriptor: (Ljava/util/Map;Ljava/util/zip/ZipOutputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=9, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.util.Map moduleInfos
        start local 2 // java.util.zip.ZipOutputStream zos
         0: .line 1050
            aload 0 /* this */
            getfield sun.tools.jar.Main.uflag:Z
            ifeq 1
            ldc "out.update.module-info"
            goto 2
      StackMap locals:
      StackMap stack:
         1: ldc "out.added.module-info"
      StackMap locals:
      StackMap stack: java.lang.String
         2: astore 3 /* fmt */
        start local 3 // java.lang.String fmt
         3: .line 1051
            aload 1 /* moduleInfos */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 16
      StackMap locals: sun.tools.jar.Main java.util.Map java.util.zip.ZipOutputStream java.lang.String top java.util.Iterator
      StackMap stack:
         4: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 4 /* mi */
        start local 4 // java.util.Map$Entry mi
         5: .line 1052
            aload 4 /* mi */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 6 /* name */
        start local 6 // java.lang.String name
         6: .line 1053
            aload 4 /* mi */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast byte[]
            astore 7 /* bytes */
        start local 7 // byte[] bytes
         7: .line 1054
            new java.util.zip.ZipEntry
            dup
            aload 6 /* name */
            invokespecial java.util.zip.ZipEntry.<init>:(Ljava/lang/String;)V
            astore 8 /* e */
        start local 8 // java.util.zip.ZipEntry e
         8: .line 1055
            aload 8 /* e */
            invokestatic java.lang.System.currentTimeMillis:()J
            invokevirtual java.util.zip.ZipEntry.setTime:(J)V
         9: .line 1056
            aload 0 /* this */
            getfield sun.tools.jar.Main.flag0:Z
            ifeq 11
        10: .line 1057
            aload 0 /* this */
            aload 8 /* e */
            aload 7 /* bytes */
            invokevirtual sun.tools.jar.Main.crc32ModuleInfo:(Ljava/util/zip/ZipEntry;[B)V
        11: .line 1059
      StackMap locals: sun.tools.jar.Main java.util.Map java.util.zip.ZipOutputStream java.lang.String java.util.Map$Entry java.util.Iterator java.lang.String byte[] java.util.zip.ZipEntry
      StackMap stack:
            aload 2 /* zos */
            aload 8 /* e */
            invokevirtual java.util.zip.ZipOutputStream.putNextEntry:(Ljava/util/zip/ZipEntry;)V
        12: .line 1060
            aload 2 /* zos */
            aload 7 /* bytes */
            invokevirtual java.util.zip.ZipOutputStream.write:([B)V
        13: .line 1061
            aload 2 /* zos */
            invokevirtual java.util.zip.ZipOutputStream.closeEntry:()V
        14: .line 1062
            aload 0 /* this */
            getfield sun.tools.jar.Main.vflag:Z
            ifeq 16
        15: .line 1063
            aload 0 /* this */
            aload 3 /* fmt */
            aload 6 /* name */
            invokestatic 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 8 // java.util.zip.ZipEntry e
        end local 7 // byte[] bytes
        end local 6 // java.lang.String name
        end local 4 // java.util.Map$Entry mi
        16: .line 1051
      StackMap locals: sun.tools.jar.Main java.util.Map java.util.zip.ZipOutputStream java.lang.String top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        17: .line 1066
            return
        end local 3 // java.lang.String fmt
        end local 2 // java.util.zip.ZipOutputStream zos
        end local 1 // java.util.Map moduleInfos
        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  moduleInfos  Ljava/util/Map<Ljava/lang/String;[B>;
            0   18     2          zos  Ljava/util/zip/ZipOutputStream;
            3   18     3          fmt  Ljava/lang/String;
            5   16     4           mi  Ljava/util/Map$Entry<Ljava/lang/String;[B>;
            6   16     6         name  Ljava/lang/String;
            7   16     7        bytes  [B
            8   16     8            e  Ljava/util/zip/ZipEntry;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/util/Map<Ljava/lang/String;[B>;Ljava/util/zip/ZipOutputStream;)V
    MethodParameters:
             Name  Flags
      moduleInfos  
      zos          

  private boolean updateManifest(java.util.jar.Manifest, java.util.zip.ZipOutputStream);
    descriptor: (Ljava/util/jar/Manifest;Ljava/util/zip/ZipOutputStream;)Z
    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 1071
            aload 0 /* this */
            aload 1 /* m */
            invokevirtual sun.tools.jar.Main.addVersion:(Ljava/util/jar/Manifest;)V
         1: .line 1072
            aload 0 /* this */
            aload 1 /* m */
            invokevirtual sun.tools.jar.Main.addCreatedBy:(Ljava/util/jar/Manifest;)V
         2: .line 1073
            aload 0 /* this */
            getfield sun.tools.jar.Main.ename:Ljava/lang/String;
            ifnull 4
         3: .line 1074
            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 1076
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.isMultiRelease:Z
            ifeq 6
         5: .line 1077
            aload 0 /* this */
            aload 1 /* m */
            invokevirtual sun.tools.jar.Main.addMultiRelease:(Ljava/util/jar/Manifest;)V
         6: .line 1079
      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
         7: .line 1080
            aload 3 /* e */
            invokestatic java.lang.System.currentTimeMillis:()J
            invokevirtual java.util.zip.ZipEntry.setTime:(J)V
         8: .line 1081
            aload 0 /* this */
            getfield sun.tools.jar.Main.flag0:Z
            ifeq 10
         9: .line 1082
            aload 0 /* this */
            aload 3 /* e */
            aload 1 /* m */
            invokevirtual sun.tools.jar.Main.crc32Manifest:(Ljava/util/zip/ZipEntry;Ljava/util/jar/Manifest;)V
        10: .line 1084
      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
        11: .line 1085
            aload 1 /* m */
            aload 2 /* zos */
            invokevirtual java.util.jar.Manifest.write:(Ljava/io/OutputStream;)V
        12: .line 1086
            aload 0 /* this */
            getfield sun.tools.jar.Main.vflag:Z
            ifeq 14
        13: .line 1087
            aload 0 /* this */
            ldc "out.update.manifest"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
        14: .line 1089
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        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   15     0  this  Lsun/tools/jar/Main;
            0   15     1     m  Ljava/util/jar/Manifest;
            0   15     2   zos  Ljava/util/zip/ZipOutputStream;
            7   15     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 1093
            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 1097
            aload 0 /* this */
            getfield sun.tools.jar.Main.pflag:Z
            ifne 25
         1: .line 1098
            aload 1 /* name */
            invokevirtual java.lang.String.length:()I
            istore 2 /* len */
        start local 2 // int len
         2: .line 1099
            aload 1 /* name */
            ldc "../"
            invokevirtual java.lang.String.lastIndexOf:(Ljava/lang/String;)I
            istore 3 /* i */
        start local 3 // int i
         3: .line 1100
            iload 3 /* i */
            iconst_m1
            if_icmpne 6
         4: .line 1101
            iconst_0
            istore 3 /* i */
         5: .line 1102
            goto 7
         6: .line 1103
      StackMap locals: int int
      StackMap stack:
            iinc 3 /* i */ 3
         7: .line 1105
      StackMap locals:
      StackMap stack:
            getstatic java.io.File.separatorChar:C
            bipush 92
            if_icmpne 22
         8: .line 1108
            goto 19
         9: .line 1109
      StackMap locals:
      StackMap stack:
            iload 3 /* i */
            istore 4 /* off */
        start local 4 // int off
        10: .line 1110
            iload 3 /* i */
            iconst_1
            iadd
            iload 2 /* len */
            if_icmpge 16
        11: .line 1111
            aload 1 /* name */
            iload 3 /* i */
            iconst_1
            iadd
            invokevirtual java.lang.String.charAt:(I)C
            bipush 58
            if_icmpne 16
        12: .line 1112
            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 1113
            iinc 3 /* i */ 2
        14: .line 1115
            goto 16
        15: .line 1116
      StackMap locals: int
      StackMap stack:
            iinc 3 /* i */ 1
        16: .line 1115
      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 1118
      StackMap locals:
      StackMap stack:
            iload 3 /* i */
            iload 4 /* off */
            if_icmpne 19
        18: .line 1119
            goto 23
        end local 4 // int off
        19: .line 1108
      StackMap locals:
      StackMap stack:
            iload 3 /* i */
            iload 2 /* len */
            if_icmplt 9
        20: .line 1122
            goto 23
        21: .line 1124
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
        22: .line 1123
      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 1127
      StackMap locals:
      StackMap stack:
            iload 3 /* i */
            ifeq 25
        24: .line 1128
            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 1131
      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 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 1135
            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 1136
            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 1137
            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 1139
      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 1142
            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 1143
            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 1144
            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 1145
            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 1146
            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 1147
            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 1146
            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 1149
      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 1152
            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 1155
            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 1156
            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 void addMultiRelease(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 1159
            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 1160
            aload 2 /* global */
            getstatic java.util.jar.Attributes$Name.MULTI_RELEASE:Ljava/util/jar/Attributes$Name;
            ldc "true"
            invokevirtual java.util.jar.Attributes.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 1161
            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    3     0    this  Lsun/tools/jar/Main;
            0    3     1       m  Ljava/util/jar/Manifest;
            1    3     2  global  Ljava/util/jar/Attributes;
    MethodParameters:
      Name  Flags
      m     

  private boolean isAmbiguousMainClass(java.util.jar.Manifest);
    descriptor: (Ljava/util/jar/Manifest;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.util.jar.Manifest m
         0: .line 1164
            aload 0 /* this */
            getfield sun.tools.jar.Main.ename:Ljava/lang/String;
            ifnull 5
         1: .line 1165
            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 1166
            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 5
         3: .line 1167
            aload 0 /* this */
            ldc "error.bad.eflag"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.usageError:(Ljava/lang/String;)V
         4: .line 1168
            iconst_1
            ireturn
        end local 2 // java.util.jar.Attributes global
         5: .line 1171
      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    6     0    this  Lsun/tools/jar/Main;
            0    6     1       m  Ljava/util/jar/Manifest;
            2    5     2  global  Ljava/util/jar/Attributes;
    MethodParameters:
      Name  Flags
      m     

  void addFile(java.util.zip.ZipOutputStream, sun.tools.jar.Main$Entry);
    descriptor: (Ljava/util/zip/ZipOutputStream;Lsun/tools/jar/Main$Entry;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=13, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.util.zip.ZipOutputStream zos
        start local 2 // sun.tools.jar.Main$Entry entry
         0: .line 1179
            aload 2 /* entry */
            getfield sun.tools.jar.Main$Entry.file:Ljava/io/File;
            astore 3 /* file */
        start local 3 // java.io.File file
         1: .line 1180
            aload 2 /* entry */
            getfield sun.tools.jar.Main$Entry.name:Ljava/lang/String;
            astore 4 /* name */
        start local 4 // java.lang.String name
         2: .line 1181
            aload 2 /* entry */
            getfield sun.tools.jar.Main$Entry.isDir:Z
            istore 5 /* isDir */
        start local 5 // boolean isDir
         3: .line 1183
            aload 4 /* name */
            ldc ""
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 4
            aload 4 /* name */
            ldc "."
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 4
            aload 4 /* name */
            aload 0 /* this */
            getfield sun.tools.jar.Main.zname:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 5
         4: .line 1184
      StackMap locals: java.io.File java.lang.String int
      StackMap stack:
            return
         5: .line 1185
      StackMap locals:
      StackMap stack:
            aload 4 /* name */
            ldc "META-INF/"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 6
            aload 4 /* name */
            ldc "META-INF/MANIFEST.MF"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 10
         6: .line 1186
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.Mflag:Z
            ifne 10
         7: .line 1187
            aload 0 /* this */
            getfield sun.tools.jar.Main.vflag:Z
            ifeq 9
         8: .line 1188
            aload 0 /* this */
            ldc "out.ignore.entry"
            aload 4 /* name */
            invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
         9: .line 1190
      StackMap locals:
      StackMap stack:
            return
        10: .line 1191
      StackMap locals:
      StackMap stack:
            aload 4 /* name */
            ldc "module-info.class"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 12
        11: .line 1192
            new java.lang.Error
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unexpected module info: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        12: .line 1195
      StackMap locals:
      StackMap stack:
            iload 5 /* isDir */
            ifeq 13
            lconst_0
            goto 14
      StackMap locals:
      StackMap stack:
        13: aload 3 /* file */
            invokevirtual java.io.File.length:()J
      StackMap locals:
      StackMap stack: long
        14: lstore 6 /* size */
        start local 6 // long size
        15: .line 1197
            aload 0 /* this */
            getfield sun.tools.jar.Main.vflag:Z
            ifeq 17
        16: .line 1198
            aload 0 /* this */
            getfield sun.tools.jar.Main.out:Ljava/io/PrintWriter;
            ldc "out.adding"
            aload 4 /* name */
            invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
        17: .line 1200
      StackMap locals: long
      StackMap stack:
            new java.util.zip.ZipEntry
            dup
            aload 4 /* name */
            invokespecial java.util.zip.ZipEntry.<init>:(Ljava/lang/String;)V
            astore 8 /* e */
        start local 8 // java.util.zip.ZipEntry e
        18: .line 1201
            aload 8 /* e */
            aload 3 /* file */
            invokevirtual java.io.File.lastModified:()J
            invokevirtual java.util.zip.ZipEntry.setTime:(J)V
        19: .line 1202
            lload 6 /* size */
            lconst_0
            lcmp
            ifne 24
        20: .line 1203
            aload 8 /* e */
            iconst_0
            invokevirtual java.util.zip.ZipEntry.setMethod:(I)V
        21: .line 1204
            aload 8 /* e */
            lconst_0
            invokevirtual java.util.zip.ZipEntry.setSize:(J)V
        22: .line 1205
            aload 8 /* e */
            lconst_0
            invokevirtual java.util.zip.ZipEntry.setCrc:(J)V
        23: .line 1206
            goto 26
      StackMap locals: java.util.zip.ZipEntry
      StackMap stack:
        24: aload 0 /* this */
            getfield sun.tools.jar.Main.flag0:Z
            ifeq 26
        25: .line 1207
            aload 0 /* this */
            aload 8 /* e */
            aload 3 /* file */
            invokevirtual sun.tools.jar.Main.crc32File:(Ljava/util/zip/ZipEntry;Ljava/io/File;)V
        26: .line 1209
      StackMap locals:
      StackMap stack:
            aload 1 /* zos */
            aload 8 /* e */
            invokevirtual java.util.zip.ZipOutputStream.putNextEntry:(Ljava/util/zip/ZipEntry;)V
        27: .line 1210
            iload 5 /* isDir */
            ifne 29
        28: .line 1211
            aload 0 /* this */
            aload 3 /* file */
            aload 1 /* zos */
            invokevirtual sun.tools.jar.Main.copy:(Ljava/io/File;Ljava/io/OutputStream;)V
        29: .line 1213
      StackMap locals:
      StackMap stack:
            aload 1 /* zos */
            invokevirtual java.util.zip.ZipOutputStream.closeEntry:()V
        30: .line 1215
            aload 0 /* this */
            getfield sun.tools.jar.Main.vflag:Z
            ifeq 43
        31: .line 1216
            aload 8 /* e */
            invokevirtual java.util.zip.ZipEntry.getSize:()J
            lstore 6 /* size */
        32: .line 1217
            aload 8 /* e */
            invokevirtual java.util.zip.ZipEntry.getCompressedSize:()J
            lstore 9 /* csize */
        start local 9 // long csize
        33: .line 1218
            aload 0 /* this */
            getfield sun.tools.jar.Main.out:Ljava/io/PrintWriter;
            ldc "out.size"
            lload 6 /* size */
            invokestatic java.lang.String.valueOf:(J)Ljava/lang/String;
        34: .line 1219
            lload 9 /* csize */
            invokestatic java.lang.String.valueOf:(J)Ljava/lang/String;
        35: .line 1218
            invokestatic sun.tools.jar.Main.formatMsg2:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
        36: .line 1220
            aload 8 /* e */
            invokevirtual java.util.zip.ZipEntry.getMethod:()I
            bipush 8
            if_icmpne 42
        37: .line 1221
            lconst_0
            lstore 11 /* ratio */
        start local 11 // long ratio
        38: .line 1222
            lload 6 /* size */
            lconst_0
            lcmp
            ifeq 40
        39: .line 1223
            lload 6 /* size */
            lload 9 /* csize */
            lsub
            ldc 100
            lmul
            lload 6 /* size */
            ldiv
            lstore 11 /* ratio */
        40: .line 1225
      StackMap locals: long long
      StackMap stack:
            aload 0 /* this */
            ldc "out.deflated"
            lload 11 /* ratio */
            invokestatic java.lang.String.valueOf:(J)Ljava/lang/String;
            invokestatic 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 11 // long ratio
        41: .line 1226
            goto 43
        42: .line 1227
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "out.stored"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
        end local 9 // long csize
        43: .line 1230
      StackMap locals:
      StackMap stack:
            return
        end local 8 // java.util.zip.ZipEntry e
        end local 6 // long size
        end local 5 // boolean isDir
        end local 4 // java.lang.String name
        end local 3 // java.io.File file
        end local 2 // sun.tools.jar.Main$Entry entry
        end local 1 // java.util.zip.ZipOutputStream zos
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   44     0   this  Lsun/tools/jar/Main;
            0   44     1    zos  Ljava/util/zip/ZipOutputStream;
            0   44     2  entry  Lsun/tools/jar/Main$Entry;
            1   44     3   file  Ljava/io/File;
            2   44     4   name  Ljava/lang/String;
            3   44     5  isDir  Z
           15   44     6   size  J
           18   44     8      e  Ljava/util/zip/ZipEntry;
           33   43     9  csize  J
           38   41    11  ratio  J
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      zos    
      entry  

  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 1249
            goto 2
        start local 3 // int n
         1: .line 1250
      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 1249
      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 1251
            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=6, 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 1262
            aconst_null
            astore 3
            aconst_null
            astore 4
         1: new java.io.FileInputStream
            dup
            aload 1 /* from */
            invokespecial java.io.FileInputStream.<init>:(Ljava/io/File;)V
            astore 5 /* in */
        start local 5 // java.io.InputStream in
         2: .line 1263
            aload 0 /* this */
            aload 5 /* in */
            aload 2 /* to */
            invokevirtual sun.tools.jar.Main.copy:(Ljava/io/InputStream;Ljava/io/OutputStream;)V
         3: .line 1264
            aload 5 /* in */
            ifnull 9
            aload 5 /* in */
            invokevirtual java.io.InputStream.close:()V
            goto 9
      StackMap locals: sun.tools.jar.Main java.io.File java.io.OutputStream java.lang.Throwable java.lang.Throwable java.io.InputStream
      StackMap stack: java.lang.Throwable
         4: astore 3
            aload 5 /* in */
            ifnull 5
            aload 5 /* in */
            invokevirtual java.io.InputStream.close:()V
        end local 5 // java.io.InputStream in
      StackMap locals:
      StackMap stack:
         5: aload 3
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: astore 4
            aload 3
            ifnonnull 7
            aload 4
            astore 3
            goto 8
      StackMap locals:
      StackMap stack:
         7: aload 3
            aload 4
            if_acmpeq 8
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
         8: aload 3
            athrow
         9: .line 1265
      StackMap locals:
      StackMap stack:
            return
        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   10     0  this  Lsun/tools/jar/Main;
            0   10     1  from  Ljava/io/File;
            0   10     2    to  Ljava/io/OutputStream;
            2    5     5    in  Ljava/io/InputStream;
      Exception table:
        from    to  target  type
           2     3       4  any
           1     6       6  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=6, 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 1276
            aconst_null
            astore 3
            aconst_null
            astore 4
         1: new java.io.FileOutputStream
            dup
            aload 2 /* to */
            invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;)V
            astore 5 /* out */
        start local 5 // java.io.OutputStream out
         2: .line 1277
            aload 0 /* this */
            aload 1 /* from */
            aload 5 /* out */
            invokevirtual sun.tools.jar.Main.copy:(Ljava/io/InputStream;Ljava/io/OutputStream;)V
         3: .line 1278
            aload 5 /* out */
            ifnull 9
            aload 5 /* out */
            invokevirtual java.io.OutputStream.close:()V
            goto 9
      StackMap locals: sun.tools.jar.Main java.io.InputStream java.io.File java.lang.Throwable java.lang.Throwable java.io.OutputStream
      StackMap stack: java.lang.Throwable
         4: astore 3
            aload 5 /* out */
            ifnull 5
            aload 5 /* out */
            invokevirtual java.io.OutputStream.close:()V
        end local 5 // java.io.OutputStream out
      StackMap locals:
      StackMap stack:
         5: aload 3
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: astore 4
            aload 3
            ifnonnull 7
            aload 4
            astore 3
            goto 8
      StackMap locals:
      StackMap stack:
         7: aload 3
            aload 4
            if_acmpeq 8
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
         8: aload 3
            athrow
         9: .line 1279
      StackMap locals:
      StackMap stack:
            return
        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   10     0  this  Lsun/tools/jar/Main;
            0   10     1  from  Ljava/io/InputStream;
            0   10     2    to  Ljava/io/File;
            2    5     5   out  Ljava/io/OutputStream;
      Exception table:
        from    to  target  type
           2     3       4  any
           1     6       6  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      from  
      to    

  private void crc32ModuleInfo(java.util.zip.ZipEntry, byte[]);
    descriptor: (Ljava/util/zip/ZipEntry;[B)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.util.zip.ZipEntry e
        start local 2 // byte[] bytes
         0: .line 1286
            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 1287
            new java.io.ByteArrayInputStream
            dup
            aload 2 /* bytes */
            invokespecial java.io.ByteArrayInputStream.<init>:([B)V
            astore 4 /* in */
        start local 4 // java.io.ByteArrayInputStream in
         2: .line 1288
            aload 4 /* in */
            aload 3 /* os */
            invokevirtual java.io.ByteArrayInputStream.transferTo:(Ljava/io/OutputStream;)J
            pop2
         3: .line 1289
            aload 3 /* os */
            aload 1 /* e */
            invokevirtual sun.tools.jar.Main$CRC32OutputStream.updateEntry:(Ljava/util/zip/ZipEntry;)V
         4: .line 1290
            return
        end local 4 // java.io.ByteArrayInputStream in
        end local 3 // sun.tools.jar.Main$CRC32OutputStream os
        end local 2 // byte[] bytes
        end local 1 // java.util.zip.ZipEntry e
        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      e  Ljava/util/zip/ZipEntry;
            0    5     2  bytes  [B
            1    5     3     os  Lsun/tools/jar/Main$CRC32OutputStream;
            2    5     4     in  Ljava/io/ByteArrayInputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      e      
      bytes  

  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 1297
            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 1298
            aload 2 /* m */
            aload 3 /* os */
            invokevirtual java.util.jar.Manifest.write:(Ljava/io/OutputStream;)V
         2: .line 1299
            aload 3 /* os */
            aload 1 /* e */
            invokevirtual sun.tools.jar.Main$CRC32OutputStream.updateEntry:(Ljava/util/zip/ZipEntry;)V
         3: .line 1300
            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=4, 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 1307
            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 1308
            aload 0 /* this */
            aload 2 /* f */
            aload 3 /* os */
            invokevirtual sun.tools.jar.Main.copy:(Ljava/io/File;Ljava/io/OutputStream;)V
         2: .line 1309
            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 1310
            new sun.tools.jar.JarException
            dup
         4: .line 1311
            ldc "error.incorrect.length"
            aload 2 /* f */
            invokevirtual java.io.File.getPath:()Ljava/lang/String;
         5: .line 1310
            invokestatic 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 1313
      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 1314
            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.util.Map<java.lang.Integer, java.lang.String[]>);
    descriptor: (Ljava/util/Map;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.util.Map filesMap
         0: .line 1317
            aload 1 /* filesMap */
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            aload 1 /* filesMap */
            invokedynamic accept(Ljava/util/Map;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  sun/tools/jar/Main.lambda$8(Ljava/util/Map;Ljava/lang/Integer;)V (6)
                  (Ljava/lang/Integer;)V
            invokeinterface java.util.Set.forEach:(Ljava/util/function/Consumer;)V
         1: .line 1325
            return
        end local 1 // java.util.Map filesMap
        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  filesMap  Ljava/util/Map<Ljava/lang/Integer;[Ljava/lang/String;>;
    Signature: (Ljava/util/Map<Ljava/lang/Integer;[Ljava/lang/String;>;)V
    MethodParameters:
          Name  Flags
      filesMap  

  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 1329
            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 1336
            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 1337
            aload 2 /* ze */
            invokevirtual java.util.zip.ZipEntry.getTime:()J
            lstore 4 /* lastModified */
        start local 4 // long lastModified
         3: .line 1338
            lload 4 /* lastModified */
            ldc -1
            lcmp
            ifeq 8
         4: .line 1339
            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 1340
            aload 6 /* name */
            invokevirtual java.lang.String.length:()I
            ifeq 8
         6: .line 1341
            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 1342
            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 1336
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         9: .line 1346
            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   

  boolean extract(java.io.InputStream, java.lang.String[]);
    descriptor: (Ljava/io/InputStream;[Ljava/lang/String;)Z
    flags: (0x0000) 
    Code:
      stack=4, locals=12, 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 1355
            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 1359
            iconst_0
            istore 5 /* entriesFound */
        start local 5 // boolean entriesFound
         2: .line 1360
            aload 0 /* this */
            invokevirtual sun.tools.jar.Main.newDirSet:()Ljava/util/Set;
            astore 6 /* dirs */
        start local 6 // java.util.Set dirs
         3: .line 1361
            goto 16
        start local 4 // java.util.zip.ZipEntry e
         4: .line 1362
      StackMap locals: sun.tools.jar.Main java.io.InputStream java.lang.String[] java.util.zip.ZipInputStream java.util.zip.ZipEntry int java.util.Set
      StackMap stack:
            iconst_1
            istore 5 /* entriesFound */
         5: .line 1363
            aload 2 /* files */
            ifnonnull 8
         6: .line 1364
            aload 6 /* 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
         7: .line 1365
            goto 16
         8: .line 1366
      StackMap locals:
      StackMap stack:
            aload 4 /* e */
            invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
            astore 7 /* name */
        start local 7 // java.lang.String name
         9: .line 1367
            aload 2 /* files */
            dup
            astore 11
            arraylength
            istore 10
            iconst_0
            istore 9
            goto 15
      StackMap locals: sun.tools.jar.Main java.io.InputStream java.lang.String[] java.util.zip.ZipInputStream java.util.zip.ZipEntry int java.util.Set 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 1368
            aload 7 /* name */
            aload 8 /* file */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 14
        12: .line 1369
            aload 6 /* 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
        13: .line 1370
            goto 16
        end local 8 // java.lang.String file
        14: .line 1367
      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 4 // java.util.zip.ZipEntry e
        16: .line 1361
      StackMap locals: sun.tools.jar.Main java.io.InputStream java.lang.String[] java.util.zip.ZipInputStream top int 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
        17: ifnonnull 4
        18: .line 1380
            aload 0 /* this */
            aload 6 /* dirs */
            invokevirtual sun.tools.jar.Main.updateLastModifiedTime:(Ljava/util/Set;)V
        19: .line 1382
            iload 5 /* entriesFound */
            ireturn
        end local 6 // java.util.Set dirs
        end local 5 // boolean entriesFound
        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   20     0          this  Lsun/tools/jar/Main;
            0   20     1            in  Ljava/io/InputStream;
            0   20     2         files  [Ljava/lang/String;
            1   20     3           zis  Ljava/util/zip/ZipInputStream;
            4   16     4             e  Ljava/util/zip/ZipEntry;
           17   20     4             e  Ljava/util/zip/ZipEntry;
            2   20     5  entriesFound  Z
            3   20     6          dirs  Ljava/util/Set<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
      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 1389
            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 1390
            aload 0 /* this */
            invokevirtual sun.tools.jar.Main.newDirSet:()Ljava/util/Set;
            astore 4 /* dirs */
        start local 4 // java.util.Set dirs
         2: .line 1391
            aload 3 /* zf */
            invokevirtual java.util.zip.ZipFile.entries:()Ljava/util/Enumeration;
            astore 5 /* zes */
        start local 5 // java.util.Enumeration zes
         3: .line 1392
            goto 16
         4: .line 1393
      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 1394
            aload 2 /* files */
            ifnonnull 8
         6: .line 1395
            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 1396
            goto 16
         8: .line 1397
      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 1398
            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 1399
            aload 7 /* name */
            aload 8 /* file */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 14
        12: .line 1400
            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 1401
            goto 16
        end local 8 // java.lang.String file
        14: .line 1398
      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 1392
      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 1406
            aload 3 /* zf */
            invokevirtual java.util.zip.ZipFile.close:()V
        18: .line 1407
            aload 0 /* this */
            aload 4 /* dirs */
            invokevirtual sun.tools.jar.Main.updateLastModifiedTime:(Ljava/util/Set;)V
        19: .line 1408
            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 1416
            aconst_null
            astore 3 /* rc */
        start local 3 // java.util.zip.ZipEntry rc
         1: .line 1422
            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 1423
            aload 4 /* name */
            invokevirtual java.lang.String.length:()I
            ifne 4
         3: .line 1424
            aload 3 /* rc */
            areturn
         4: .line 1426
      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 1427
            aload 2 /* e */
            invokevirtual java.util.zip.ZipEntry.isDirectory:()Z
            ifeq 19
         6: .line 1428
            aload 5 /* f */
            invokevirtual java.io.File.exists:()Z
            ifeq 11
         7: .line 1429
            aload 5 /* f */
            invokevirtual java.io.File.isDirectory:()Z
            ifne 16
         8: .line 1430
            new java.io.IOException
            dup
            ldc "error.create.dir"
         9: .line 1431
            aload 5 /* f */
            invokevirtual java.io.File.getPath:()Ljava/lang/String;
        10: .line 1430
            invokestatic 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 1434
      StackMap locals: java.io.File
      StackMap stack:
            aload 5 /* f */
            invokevirtual java.io.File.mkdirs:()Z
            ifne 15
        12: .line 1435
            new java.io.IOException
            dup
            ldc "error.create.dir"
        13: .line 1436
            aload 5 /* f */
            invokevirtual java.io.File.getPath:()Ljava/lang/String;
        14: .line 1435
            invokestatic 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 1438
      StackMap locals:
      StackMap stack:
            aload 2 /* e */
            astore 3 /* rc */
        16: .line 1442
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.vflag:Z
            ifeq 41
        17: .line 1443
            aload 0 /* this */
            ldc "out.create"
            aload 4 /* name */
            invokestatic 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 1445
            goto 41
        19: .line 1446
      StackMap locals:
      StackMap stack:
            aload 5 /* f */
            invokevirtual java.io.File.getParent:()Ljava/lang/String;
            ifnull 26
        20: .line 1447
            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 1448
            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 1449
      StackMap locals:
      StackMap stack:
            new java.io.IOException
            dup
        24: .line 1450
            ldc "error.create.dir"
            aload 6 /* d */
            invokevirtual java.io.File.getPath:()Ljava/lang/String;
        25: .line 1449
            invokestatic 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 1454
      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 1455
            goto 33
      StackMap locals:
      StackMap stack: java.lang.Throwable
        28: astore 6
        29: .line 1456
            aload 1 /* is */
            instanceof java.util.zip.ZipInputStream
            ifeq 31
        30: .line 1457
            aload 1 /* is */
            checkcast java.util.zip.ZipInputStream
            invokevirtual java.util.zip.ZipInputStream.closeEntry:()V
            goto 32
        31: .line 1459
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 1 /* is */
            invokevirtual java.io.InputStream.close:()V
        32: .line 1460
      StackMap locals:
      StackMap stack:
            aload 6
            athrow
        33: .line 1456
      StackMap locals:
      StackMap stack:
            aload 1 /* is */
            instanceof java.util.zip.ZipInputStream
            ifeq 35
        34: .line 1457
            aload 1 /* is */
            checkcast java.util.zip.ZipInputStream
            invokevirtual java.util.zip.ZipInputStream.closeEntry:()V
            goto 36
        35: .line 1459
      StackMap locals:
      StackMap stack:
            aload 1 /* is */
            invokevirtual java.io.InputStream.close:()V
        36: .line 1461
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.vflag:Z
            ifeq 41
        37: .line 1462
            aload 2 /* e */
            invokevirtual java.util.zip.ZipEntry.getMethod:()I
            bipush 8
            if_icmpne 40
        38: .line 1463
            aload 0 /* this */
            ldc "out.inflated"
            aload 4 /* name */
            invokestatic 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 1464
            goto 41
        40: .line 1465
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "out.extracted"
            aload 4 /* name */
            invokestatic 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 1469
      StackMap locals:
      StackMap stack:
            getstatic sun.tools.jar.Main.useExtractionTime:Z
            ifne 45
        42: .line 1470
            aload 2 /* e */
            invokevirtual java.util.zip.ZipEntry.getTime:()J
            lstore 6 /* lastModified */
        start local 6 // long lastModified
        43: .line 1471
            lload 6 /* lastModified */
            ldc -1
            lcmp
            ifeq 45
        44: .line 1472
            aload 5 /* f */
            lload 6 /* lastModified */
            invokevirtual java.io.File.setLastModified:(J)Z
            pop
        end local 6 // long lastModified
        45: .line 1475
      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 1482
            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 1484
            goto 4
        start local 4 // java.util.zip.ZipEntry e
         2: .line 1491
      StackMap locals: java.util.zip.ZipInputStream java.util.zip.ZipEntry
      StackMap stack:
            aload 3 /* zis */
            invokevirtual java.util.zip.ZipInputStream.closeEntry:()V
         3: .line 1492
            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 1484
      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 1494
            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 1500
            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 1501
            aload 3 /* zf */
            invokevirtual java.util.zip.ZipFile.entries:()Ljava/util/Enumeration;
            astore 4 /* zes */
        start local 4 // java.util.Enumeration zes
         2: .line 1502
            goto 4
         3: .line 1503
      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 1502
      StackMap locals:
      StackMap stack:
            aload 4 /* zes */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 3
         5: .line 1505
            aload 3 /* zf */
            invokevirtual java.util.zip.ZipFile.close:()V
         6: .line 1506
            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, jdk.internal.util.jar.JarIndex);
    descriptor: (Ljava/lang/String;Ljdk/internal/util/jar/JarIndex;)V
    flags: (0x0000) 
    Code:
      stack=6, locals=8, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.String rootjar
        start local 2 // jdk.internal.util.jar.JarIndex index
         0: .line 1513
            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 1514
            aload 3 /* jarFile */
            invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
            astore 4 /* jarPath */
        start local 4 // java.nio.file.Path jarPath
         2: .line 1515
            aload 3 /* jarFile */
            invokestatic sun.tools.jar.Main.createTempFileInSameDirectoryAs:(Ljava/io/File;)Ljava/io/File;
            invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
            astore 5 /* tmpPath */
        start local 5 // java.nio.file.Path tmpPath
         3: .line 1517
            aload 0 /* this */
            aload 4 /* jarPath */
            iconst_0
            anewarray java.nio.file.OpenOption
            invokestatic java.nio.file.Files.newInputStream:(Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)Ljava/io/InputStream;
         4: .line 1518
            aload 5 /* tmpPath */
            iconst_0
            anewarray java.nio.file.OpenOption
            invokestatic java.nio.file.Files.newOutputStream:(Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)Ljava/io/OutputStream;
         5: .line 1519
            aconst_null
            aconst_null
            aload 2 /* index */
         6: .line 1517
            invokevirtual sun.tools.jar.Main.update:(Ljava/io/InputStream;Ljava/io/OutputStream;Ljava/io/InputStream;Ljava/util/Map;Ljdk/internal/util/jar/JarIndex;)Z
         7: .line 1519
            ifeq 15
         8: .line 1521
            aload 5 /* tmpPath */
            aload 4 /* jarPath */
            iconst_1
            anewarray java.nio.file.CopyOption
            dup
            iconst_0
            getstatic java.nio.file.StandardCopyOption.REPLACE_EXISTING:Ljava/nio/file/StandardCopyOption;
            aastore
            invokestatic java.nio.file.Files.move:(Ljava/nio/file/Path;Ljava/nio/file/Path;[Ljava/nio/file/CopyOption;)Ljava/nio/file/Path;
            pop
         9: .line 1522
            goto 15
      StackMap locals: sun.tools.jar.Main java.lang.String jdk.internal.util.jar.JarIndex java.io.File java.nio.file.Path java.nio.file.Path
      StackMap stack: java.io.IOException
        10: astore 6 /* e */
        start local 6 // java.io.IOException e
        11: .line 1523
            new java.io.IOException
            dup
            ldc "error.write.file"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            aload 6 /* e */
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 6 // java.io.IOException e
        12: .line 1526
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 7
        13: .line 1527
            aload 5 /* tmpPath */
            invokestatic java.nio.file.Files.deleteIfExists:(Ljava/nio/file/Path;)Z
            pop
        14: .line 1528
            aload 7
            athrow
        15: .line 1527
      StackMap locals:
      StackMap stack:
            aload 5 /* tmpPath */
            invokestatic java.nio.file.Files.deleteIfExists:(Ljava/nio/file/Path;)Z
            pop
        16: .line 1529
            return
        end local 5 // java.nio.file.Path tmpPath
        end local 4 // java.nio.file.Path jarPath
        end local 3 // java.io.File jarFile
        end local 2 // jdk.internal.util.jar.JarIndex index
        end local 1 // java.lang.String rootjar
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   17     0     this  Lsun/tools/jar/Main;
            0   17     1  rootjar  Ljava/lang/String;
            0   17     2    index  Ljdk/internal/util/jar/JarIndex;
            1   17     3  jarFile  Ljava/io/File;
            2   17     4  jarPath  Ljava/nio/file/Path;
            3   17     5  tmpPath  Ljava/nio/file/Path;
           11   12     6        e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           8     9      10  Class java.io.IOException
           3    12      12  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 1538
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* files */
        start local 2 // java.util.List files
         1: .line 1539
            aload 2 /* files */
            aload 1 /* jar */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         2: .line 1540
            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 1543
            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 1548
            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 1550
            aload 4 /* rf */
            ifnull 20
         6: .line 1551
            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 1552
            aload 5 /* man */
            ifnull 20
         8: .line 1553
            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 1554
            aload 6 /* attr */
            ifnull 20
        10: .line 1555
            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 1556
            aload 7 /* value */
            ifnull 20
        12: .line 1557
            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 1558
            goto 19
        14: .line 1559
      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 1560
            aload 9 /* ajar */
            ldc "/"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifne 19
        16: .line 1561
            aload 3 /* path */
            aload 9 /* ajar */
            invokevirtual java.lang.String.concat:(Ljava/lang/String;)Ljava/lang/String;
            astore 9 /* ajar */
        17: .line 1563
            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 1564
            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 1558
      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 1572
      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 1573
            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 1580
            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 1581
            aload 3 /* jars */
            invokeinterface java.util.List.size:()I
            istore 4 /* njars */
        start local 4 // int njars
         2: .line 1584
            iload 4 /* njars */
            iconst_1
            if_icmpne 9
            aload 2 /* files */
            ifnull 9
         3: .line 1587
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         4: goto 7
         5: .line 1588
      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 1587
            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 1590
            aload 3 /* jars */
            invokeinterface java.util.List.size:()I
            istore 4 /* njars */
         9: .line 1592
      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 1593
            new jdk.internal.util.jar.JarIndex
            dup
            aload 5 /* jarfiles */
            invokespecial jdk.internal.util.jar.JarIndex.<init>:([Ljava/lang/String;)V
            astore 6 /* index */
        start local 6 // jdk.internal.util.jar.JarIndex index
        11: .line 1594
            aload 0 /* this */
            aload 1 /* rootjar */
            aload 6 /* index */
            invokevirtual sun.tools.jar.Main.dumpIndex:(Ljava/lang/String;Ljdk/internal/util/jar/JarIndex;)V
        12: .line 1595
            return
        end local 6 // jdk.internal.util.jar.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  Ljdk/internal/util/jar/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 1601
            aload 2 /* files */
            ifnonnull 3
         1: .line 1602
            aload 0 /* this */
            aload 1 /* e */
            invokevirtual sun.tools.jar.Main.printEntry:(Ljava/util/zip/ZipEntry;)V
         2: .line 1603
            goto 11
         3: .line 1604
      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 1605
            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 1606
            aload 3 /* name */
            aload 4 /* file */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 9
         7: .line 1607
            aload 0 /* this */
            aload 1 /* e */
            invokevirtual sun.tools.jar.Main.printEntry:(Ljava/util/zip/ZipEntry;)V
         8: .line 1608
            return
        end local 4 // java.lang.String file
         9: .line 1605
      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 1612
      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 1618
            aload 0 /* this */
            getfield sun.tools.jar.Main.vflag:Z
            ifeq 12
         1: .line 1619
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 2 /* sb */
        start local 2 // java.lang.StringBuilder sb
         2: .line 1620
            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 1621
            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 1622
      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 1621
            iinc 4 /* i */ -1
      StackMap locals:
      StackMap stack:
         7: iload 4 /* i */
            ifgt 5
        end local 4 // int i
         8: .line 1624
            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 1625
            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 1626
            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 1627
            goto 13
        12: .line 1628
      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 1630
      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(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0000) 
    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 1636
            aload 0 /* this */
            getfield sun.tools.jar.Main.err:Ljava/io/PrintWriter;
            aload 1 /* s */
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
         1: .line 1637
            aload 0 /* this */
            getfield sun.tools.jar.Main.err:Ljava/io/PrintWriter;
            ldc "main.usage.summary.try"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
         2: .line 1638
            return
        end local 1 // java.lang.String s
        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     s  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      s     

  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 1644
            aload 1 /* e */
            invokevirtual java.lang.Exception.printStackTrace:()V
         1: .line 1645
            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 1652
            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 1653
            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 1659
            aload 0 /* this */
            getfield sun.tools.jar.Main.out:Ljava/io/PrintWriter;
            aload 1 /* s */
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
         1: .line 1660
            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     

  void error(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0000) 
    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 1666
            aload 0 /* this */
            getfield sun.tools.jar.Main.err:Ljava/io/PrintWriter;
            aload 1 /* s */
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
         1: .line 1667
            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     

  void warn(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0000) 
    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 1673
            aload 0 /* this */
            getfield sun.tools.jar.Main.err:Ljava/io/PrintWriter;
            aload 1 /* s */
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
         1: .line 1674
            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 1680
            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 1681
            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 1682
            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  

  private java.io.File createTemporaryFile(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.String tmpbase
        start local 2 // java.lang.String suffix
         0: .line 1721
            aconst_null
            astore 3 /* tmpfile */
        start local 3 // java.io.File tmpfile
         1: .line 1724
            aload 1 /* tmpbase */
            aload 2 /* suffix */
            invokestatic java.io.File.createTempFile:(Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;
            astore 3 /* tmpfile */
         2: .line 1725
            goto 4
      StackMap locals: sun.tools.jar.Main java.lang.String java.lang.String java.io.File
      StackMap stack: java.lang.Exception
         3: pop
         4: .line 1728
      StackMap locals:
      StackMap stack:
            aload 3 /* tmpfile */
            ifnonnull 13
         5: .line 1730
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            ifnull 12
         6: .line 1732
            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
            invokevirtual java.io.File.getAbsoluteFile:()Ljava/io/File;
            invokevirtual java.io.File.getParentFile:()Ljava/io/File;
            astore 4 /* tmpfolder */
        start local 4 // java.io.File tmpfolder
         7: .line 1733
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            new java.lang.StringBuilder
            dup
            ldc ".tmp"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* suffix */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 4 /* tmpfolder */
            invokestatic java.io.File.createTempFile:(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Ljava/io/File;
            astore 3 /* tmpfile */
        end local 4 // java.io.File tmpfolder
         8: .line 1734
            goto 13
      StackMap locals:
      StackMap stack: java.io.IOException
         9: astore 4 /* ioe */
        start local 4 // java.io.IOException ioe
        10: .line 1736
            aload 0 /* this */
            aload 4 /* ioe */
            invokevirtual sun.tools.jar.Main.fatalError:(Ljava/lang/Exception;)V
        end local 4 // java.io.IOException ioe
        11: .line 1738
            goto 13
        12: .line 1740
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new java.io.IOException
            dup
            ldc "error.create.tempfile"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            invokevirtual sun.tools.jar.Main.fatalError:(Ljava/lang/Exception;)V
        13: .line 1743
      StackMap locals:
      StackMap stack:
            aload 3 /* tmpfile */
            areturn
        end local 3 // java.io.File tmpfile
        end local 2 // java.lang.String suffix
        end local 1 // java.lang.String tmpbase
        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    tmpbase  Ljava/lang/String;
            0   14     2     suffix  Ljava/lang/String;
            1   14     3    tmpfile  Ljava/io/File;
            7    8     4  tmpfolder  Ljava/io/File;
           10   11     4        ioe  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           1     2       3  Class java.io.IOException
           1     2       3  Class java.lang.SecurityException
           6     8       9  Class java.io.IOException
    MethodParameters:
         Name  Flags
      tmpbase  
      suffix   

  private boolean describeModule(java.util.zip.ZipFile);
    descriptor: (Ljava/util/zip/ZipFile;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=8, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.util.zip.ZipFile zipFile
         0: .line 1796
            aload 1 /* zipFile */
            invokevirtual java.util.zip.ZipFile.stream:()Ljava/util/stream/Stream;
         1: .line 1797
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  sun/tools/jar/Main.lambda$9(Ljava/util/zip/ZipEntry;)Z (6)
                  (Ljava/util/zip/ZipEntry;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
         2: .line 1798
            getstatic sun.tools.jar.Main.ENTRY_COMPARATOR:Ljava/util/Comparator;
            invokeinterface java.util.stream.Stream.sorted:(Ljava/util/Comparator;)Ljava/util/stream/Stream;
         3: .line 1799
            aload 1 /* zipFile */
            invokedynamic apply(Ljava/util/zip/ZipFile;)Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  sun/tools/jar/Main.lambda$10(Ljava/util/zip/ZipFile;Ljava/util/zip/ZipEntry;)Lsun/tools/jar/Main$ZipFileModuleInfoEntry; (6)
                  (Ljava/util/zip/ZipEntry;)Lsun/tools/jar/Main$ZipFileModuleInfoEntry;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         4: .line 1800
            invokedynamic apply()Ljava/util/function/IntFunction;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (I)Ljava/lang/Object;
                  sun/tools/jar/Main.lambda$11(I)[Lsun/tools/jar/Main$ZipFileModuleInfoEntry; (6)
                  (I)[Lsun/tools/jar/Main$ZipFileModuleInfoEntry;
            invokeinterface java.util.stream.Stream.toArray:(Ljava/util/function/IntFunction;)[Ljava/lang/Object;
            checkcast sun.tools.jar.Main$ZipFileModuleInfoEntry[]
         5: .line 1796
            astore 2 /* infos */
        start local 2 // sun.tools.jar.Main$ZipFileModuleInfoEntry[] infos
         6: .line 1802
            aload 2 /* infos */
            arraylength
            ifne 24
         7: .line 1804
            aload 1 /* zipFile */
            invokevirtual java.util.zip.ZipFile.getName:()Ljava/lang/String;
            astore 3 /* fn */
        start local 3 // java.lang.String fn
         8: .line 1805
            iconst_1
            anewarray java.nio.file.Path
            dup
            iconst_0
            aload 3 /* fn */
            iconst_0
            anewarray java.lang.String
            invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
            aastore
            invokestatic java.lang.module.ModuleFinder.of:([Ljava/nio/file/Path;)Ljava/lang/module/ModuleFinder;
            astore 4 /* mf */
        start local 4 // java.lang.module.ModuleFinder mf
         9: .line 1807
            aload 4 /* mf */
            invokeinterface java.lang.module.ModuleFinder.findAll:()Ljava/util/Set;
            astore 5 /* mref */
        start local 5 // java.util.Set mref
        10: .line 1808
            aload 5 /* mref */
            invokeinterface java.util.Set.isEmpty:()Z
            ifeq 13
        11: .line 1809
            aload 0 /* this */
            ldc "error.unable.derive.automodule"
            aload 3 /* fn */
            invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
        12: .line 1810
            iconst_1
            ireturn
        13: .line 1812
      StackMap locals: sun.tools.jar.Main java.util.zip.ZipFile sun.tools.jar.Main$ZipFileModuleInfoEntry[] java.lang.String java.lang.module.ModuleFinder java.util.Set
      StackMap stack:
            aload 5 /* mref */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.module.ModuleReference
            invokevirtual java.lang.module.ModuleReference.descriptor:()Ljava/lang/module/ModuleDescriptor;
            astore 6 /* md */
        start local 6 // java.lang.module.ModuleDescriptor md
        14: .line 1813
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "out.automodule"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
        15: .line 1814
            aload 0 /* this */
            aload 6 /* md */
            aconst_null
            aconst_null
            ldc ""
            invokevirtual sun.tools.jar.Main.describeModule:(Ljava/lang/module/ModuleDescriptor;Ljdk/internal/module/ModuleTarget;Ljdk/internal/module/ModuleHashes;Ljava/lang/String;)V
        end local 6 // java.lang.module.ModuleDescriptor md
        end local 5 // java.util.Set mref
        16: .line 1815
            goto 25
      StackMap locals: sun.tools.jar.Main java.util.zip.ZipFile sun.tools.jar.Main$ZipFileModuleInfoEntry[] java.lang.String java.lang.module.ModuleFinder
      StackMap stack: java.lang.module.FindException
        17: astore 5 /* e */
        start local 5 // java.lang.module.FindException e
        18: .line 1816
            ldc "error.unable.derive.automodule"
            aload 3 /* fn */
            invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 6 /* msg */
        start local 6 // java.lang.String msg
        19: .line 1817
            aload 5 /* e */
            invokevirtual java.lang.module.FindException.getCause:()Ljava/lang/Throwable;
            astore 7 /* t */
        start local 7 // java.lang.Throwable t
        20: .line 1818
            aload 7 /* t */
            ifnull 22
        21: .line 1819
            new java.lang.StringBuilder
            dup
            aload 6 /* msg */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 7 /* t */
            invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 6 /* msg */
        22: .line 1820
      StackMap locals: java.lang.module.FindException java.lang.String java.lang.Throwable
      StackMap stack:
            aload 0 /* this */
            aload 6 /* msg */
            invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
        end local 7 // java.lang.Throwable t
        end local 6 // java.lang.String msg
        end local 5 // java.lang.module.FindException e
        end local 4 // java.lang.module.ModuleFinder mf
        end local 3 // java.lang.String fn
        23: .line 1822
            goto 25
        24: .line 1823
      StackMap locals: sun.tools.jar.Main java.util.zip.ZipFile sun.tools.jar.Main$ZipFileModuleInfoEntry[]
      StackMap stack:
            aload 0 /* this */
            aload 2 /* infos */
            invokevirtual sun.tools.jar.Main.describeModuleFromEntries:([Lsun/tools/jar/Main$ModuleInfoEntry;)Z
            ireturn
        25: .line 1825
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 2 // sun.tools.jar.Main$ZipFileModuleInfoEntry[] infos
        end local 1 // java.util.zip.ZipFile zipFile
        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  zipFile  Ljava/util/zip/ZipFile;
            6   26     2    infos  [Lsun/tools/jar/Main$ZipFileModuleInfoEntry;
            8   23     3       fn  Ljava/lang/String;
            9   23     4       mf  Ljava/lang/module/ModuleFinder;
           10   16     5     mref  Ljava/util/Set<Ljava/lang/module/ModuleReference;>;
           14   16     6       md  Ljava/lang/module/ModuleDescriptor;
           18   23     5        e  Ljava/lang/module/FindException;
           19   23     6      msg  Ljava/lang/String;
           20   23     7        t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           9    12      17  Class java.lang.module.FindException
          13    16      17  Class java.lang.module.FindException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      zipFile  

  private boolean describeModuleFromStream(java.io.FileInputStream);
    descriptor: (Ljava/io/FileInputStream;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=9, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.io.FileInputStream fis
         0: .line 1831
            new java.util.LinkedList
            dup
            invokespecial java.util.LinkedList.<init>:()V
            astore 2 /* infos */
        start local 2 // java.util.List infos
         1: .line 1833
            aconst_null
            astore 3
            aconst_null
            astore 4
         2: new java.io.BufferedInputStream
            dup
            aload 1 /* fis */
            invokespecial java.io.BufferedInputStream.<init>:(Ljava/io/InputStream;)V
            astore 5 /* bis */
        start local 5 // java.io.BufferedInputStream bis
         3: .line 1834
            new java.util.zip.ZipInputStream
            dup
            aload 5 /* bis */
            invokespecial java.util.zip.ZipInputStream.<init>:(Ljava/io/InputStream;)V
            astore 6 /* zis */
        start local 6 // java.util.zip.ZipInputStream zis
         4: .line 1836
            goto 8
        start local 7 // java.util.zip.ZipEntry e
         5: .line 1837
      StackMap locals: sun.tools.jar.Main java.io.FileInputStream java.util.List java.lang.Throwable java.lang.Throwable java.io.BufferedInputStream java.util.zip.ZipInputStream java.util.zip.ZipEntry
      StackMap stack:
            aload 7 /* e */
            invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
            astore 8 /* ename */
        start local 8 // java.lang.String ename
         6: .line 1838
            aload 8 /* ename */
            invokestatic sun.tools.jar.Main.isModuleInfoEntry:(Ljava/lang/String;)Z
            ifeq 8
         7: .line 1839
            aload 2 /* infos */
            new sun.tools.jar.Main$StreamedModuleInfoEntry
            dup
            aload 8 /* ename */
            aload 6 /* zis */
            invokevirtual java.util.zip.ZipInputStream.readAllBytes:()[B
            invokespecial sun.tools.jar.Main$StreamedModuleInfoEntry.<init>:(Ljava/lang/String;[B)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 8 // java.lang.String ename
        end local 7 // java.util.zip.ZipEntry e
         8: .line 1836
      StackMap locals:
      StackMap stack:
            aload 6 /* zis */
            invokevirtual java.util.zip.ZipInputStream.getNextEntry:()Ljava/util/zip/ZipEntry;
            dup
            astore 7 /* e */
        start local 7 // java.util.zip.ZipEntry e
         9: ifnonnull 5
        end local 7 // java.util.zip.ZipEntry e
        10: .line 1842
            aload 6 /* zis */
            ifnull 13
            aload 6 /* zis */
            invokevirtual java.util.zip.ZipInputStream.close:()V
            goto 13
      StackMap locals:
      StackMap stack: java.lang.Throwable
        11: astore 3
            aload 6 /* zis */
            ifnull 12
            aload 6 /* zis */
            invokevirtual java.util.zip.ZipInputStream.close:()V
        end local 6 // java.util.zip.ZipInputStream zis
      StackMap locals:
      StackMap stack:
        12: aload 3
            athrow
      StackMap locals:
      StackMap stack:
        13: aload 5 /* bis */
            ifnull 21
            aload 5 /* bis */
            invokevirtual java.io.BufferedInputStream.close:()V
            goto 21
      StackMap locals:
      StackMap stack: java.lang.Throwable
        14: astore 4
            aload 3
            ifnonnull 15
            aload 4
            astore 3
            goto 16
      StackMap locals:
      StackMap stack:
        15: aload 3
            aload 4
            if_acmpeq 16
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        16: aload 5 /* bis */
            ifnull 17
            aload 5 /* bis */
            invokevirtual java.io.BufferedInputStream.close:()V
        end local 5 // java.io.BufferedInputStream bis
      StackMap locals:
      StackMap stack:
        17: aload 3
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        18: astore 4
            aload 3
            ifnonnull 19
            aload 4
            astore 3
            goto 20
      StackMap locals:
      StackMap stack:
        19: aload 3
            aload 4
            if_acmpeq 20
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        20: aload 3
            athrow
        21: .line 1844
      StackMap locals:
      StackMap stack:
            aload 2 /* infos */
            invokeinterface java.util.List.size:()I
            ifne 23
        22: .line 1845
            iconst_0
            ireturn
        23: .line 1847
      StackMap locals:
      StackMap stack:
            aload 2 /* infos */
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
        24: .line 1848
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  sun/tools/jar/Main$ModuleInfoEntry.name()Ljava/lang/String; (9 itf)
                  (Lsun/tools/jar/Main$ModuleInfoEntry;)Ljava/lang/String;
            getstatic sun.tools.jar.Main.ENTRYNAME_COMPARATOR:Ljava/util/Comparator;
            invokestatic java.util.Comparator.comparing:(Ljava/util/function/Function;Ljava/util/Comparator;)Ljava/util/Comparator;
            invokeinterface java.util.stream.Stream.sorted:(Ljava/util/Comparator;)Ljava/util/stream/Stream;
        25: .line 1849
            invokedynamic apply()Ljava/util/function/IntFunction;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (I)Ljava/lang/Object;
                  sun/tools/jar/Main.lambda$13(I)[Lsun/tools/jar/Main$ModuleInfoEntry; (6)
                  (I)[Lsun/tools/jar/Main$ModuleInfoEntry;
            invokeinterface java.util.stream.Stream.toArray:(Ljava/util/function/IntFunction;)[Ljava/lang/Object;
            checkcast sun.tools.jar.Main$ModuleInfoEntry[]
        26: .line 1847
            astore 3 /* sorted */
        start local 3 // sun.tools.jar.Main$ModuleInfoEntry[] sorted
        27: .line 1851
            aload 0 /* this */
            aload 3 /* sorted */
            invokevirtual sun.tools.jar.Main.describeModuleFromEntries:([Lsun/tools/jar/Main$ModuleInfoEntry;)Z
            ireturn
        end local 3 // sun.tools.jar.Main$ModuleInfoEntry[] sorted
        end local 2 // java.util.List infos
        end local 1 // java.io.FileInputStream fis
        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     fis  Ljava/io/FileInputStream;
            1   28     2   infos  Ljava/util/List<Lsun/tools/jar/Main$ModuleInfoEntry;>;
            3   17     5     bis  Ljava/io/BufferedInputStream;
            4   12     6     zis  Ljava/util/zip/ZipInputStream;
            5    8     7       e  Ljava/util/zip/ZipEntry;
            9   10     7       e  Ljava/util/zip/ZipEntry;
            6    8     8   ename  Ljava/lang/String;
           27   28     3  sorted  [Lsun/tools/jar/Main$ModuleInfoEntry;
      Exception table:
        from    to  target  type
           4    10      11  any
           3    13      14  any
           2    18      18  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      fis   

  private boolean lessThanEqualReleaseValue(sun.tools.jar.Main$ModuleInfoEntry);
    descriptor: (Lsun/tools/jar/Main$ModuleInfoEntry;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // sun.tools.jar.Main$ModuleInfoEntry entry
         0: .line 1855
            aload 1 /* entry */
            invokestatic sun.tools.jar.Main.intVersionFromEntry:(Lsun/tools/jar/Main$ModuleInfoEntry;)I
            aload 0 /* this */
            getfield sun.tools.jar.Main.releaseValue:I
            if_icmpgt 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 1 // sun.tools.jar.Main$ModuleInfoEntry entry
        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  entry  Lsun/tools/jar/Main$ModuleInfoEntry;
    MethodParameters:
       Name  Flags
      entry  

  private static java.lang.String versionFromEntryName(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // java.lang.String name
         0: .line 1859
            aload 0 /* name */
            getstatic sun.tools.jar.Main.VERSIONS_DIR_LENGTH:I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 1 /* s */
        start local 1 // java.lang.String s
         1: .line 1860
            aload 1 /* s */
            iconst_0
            aload 1 /* s */
            ldc "/"
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            areturn
        end local 1 // java.lang.String s
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  name  Ljava/lang/String;
            1    2     1     s  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  private static int intVersionFromEntry(sun.tools.jar.Main$ModuleInfoEntry);
    descriptor: (Lsun/tools/jar/Main$ModuleInfoEntry;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // sun.tools.jar.Main$ModuleInfoEntry entry
         0: .line 1864
            aload 0 /* entry */
            invokeinterface sun.tools.jar.Main$ModuleInfoEntry.name:()Ljava/lang/String;
            astore 1 /* name */
        start local 1 // java.lang.String name
         1: .line 1865
            aload 1 /* name */
            ldc "META-INF/versions/"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 3
         2: .line 1866
            iconst_0
            ireturn
         3: .line 1868
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* name */
            getstatic sun.tools.jar.Main.VERSIONS_DIR_LENGTH:I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 2 /* s */
        start local 2 // java.lang.String s
         4: .line 1869
            aload 2 /* s */
            iconst_0
            aload 2 /* s */
            bipush 47
            invokevirtual java.lang.String.indexOf:(I)I
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 2 /* s */
         5: .line 1870
            aload 2 /* s */
            invokestatic java.lang.Integer.valueOf:(Ljava/lang/String;)Ljava/lang/Integer;
            invokevirtual java.lang.Integer.intValue:()I
            ireturn
        end local 2 // java.lang.String s
        end local 1 // java.lang.String name
        end local 0 // sun.tools.jar.Main$ModuleInfoEntry entry
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0  entry  Lsun/tools/jar/Main$ModuleInfoEntry;
            1    6     1   name  Ljava/lang/String;
            4    6     2      s  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      entry  

  private boolean describeModuleFromEntries(sun.tools.jar.Main$ModuleInfoEntry[]);
    descriptor: ([Lsun/tools/jar/Main$ModuleInfoEntry;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=9, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // sun.tools.jar.Main$ModuleInfoEntry[] infos
         0: .line 1881
            getstatic sun.tools.jar.Main.$assertionsDisabled:Z
            ifne 1
            aload 1 /* infos */
            arraylength
            ifgt 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 1884
      StackMap locals:
      StackMap stack:
            aload 1 /* infos */
            invokestatic java.util.Arrays.stream:([Ljava/lang/Object;)Ljava/util/stream/Stream;
         2: .line 1885
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  sun/tools/jar/Main.lambda$14(Lsun/tools/jar/Main$ModuleInfoEntry;)Z (6)
                  (Lsun/tools/jar/Main$ModuleInfoEntry;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
         3: .line 1886
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  sun/tools/jar/Main$ModuleInfoEntry.name()Ljava/lang/String; (9 itf)
                  (Lsun/tools/jar/Main$ModuleInfoEntry;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         4: .line 1887
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  sun/tools/jar/Main.versionFromEntryName(Ljava/lang/String;)Ljava/lang/String; (6)
                  (Ljava/lang/String;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         5: .line 1888
            ldc " "
            invokestatic java.util.stream.Collectors.joining:(Ljava/lang/CharSequence;)Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.lang.String
         6: .line 1884
            astore 2 /* releases */
        start local 2 // java.lang.String releases
         7: .line 1889
            aload 2 /* releases */
            ldc ""
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 9
         8: .line 1890
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "releases: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* releases */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
         9: .line 1893
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.releaseValue:I
            iconst_m1
            if_icmpeq 31
        10: .line 1894
            aconst_null
            astore 3 /* entry */
        start local 3 // sun.tools.jar.Main$ModuleInfoEntry entry
        11: .line 1895
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        12: .line 1896
            goto 15
        13: .line 1897
      StackMap locals: sun.tools.jar.Main$ModuleInfoEntry int
      StackMap stack:
            aload 1 /* infos */
            iload 4 /* i */
            aaload
            astore 3 /* entry */
        14: .line 1898
            iinc 4 /* i */ 1
        15: .line 1896
      StackMap locals:
      StackMap stack:
            iload 4 /* i */
            aload 1 /* infos */
            arraylength
            if_icmpge 16
            aload 0 /* this */
            aload 1 /* infos */
            iload 4 /* i */
            aaload
            invokevirtual sun.tools.jar.Main.lessThanEqualReleaseValue:(Lsun/tools/jar/Main$ModuleInfoEntry;)Z
            ifne 13
        16: .line 1901
      StackMap locals:
      StackMap stack:
            aload 3 /* entry */
            ifnonnull 21
        17: .line 1902
            aload 0 /* this */
            ldc "error.no.operative.descriptor"
        18: .line 1903
            aload 0 /* this */
            getfield sun.tools.jar.Main.releaseValue:I
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
        19: .line 1902
            invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
        20: .line 1904
            iconst_0
            ireturn
        21: .line 1907
      StackMap locals:
      StackMap stack:
            aload 3 /* entry */
            invokeinterface sun.tools.jar.Main$ModuleInfoEntry.uriString:()Ljava/util/Optional;
            ldc ""
            invokevirtual java.util.Optional.orElse:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 5 /* uriString */
        start local 5 // java.lang.String uriString
        22: .line 1908
            aconst_null
            astore 6
            aconst_null
            astore 7
        23: aload 3 /* entry */
            invokeinterface sun.tools.jar.Main$ModuleInfoEntry.bytes:()Ljava/io/InputStream;
            astore 8 /* is */
        start local 8 // java.io.InputStream is
        24: .line 1909
            aload 0 /* this */
            aload 8 /* is */
            aload 5 /* uriString */
            invokevirtual sun.tools.jar.Main.describeModule:(Ljava/io/InputStream;Ljava/lang/String;)V
        25: .line 1910
            aload 8 /* is */
            ifnull 43
            aload 8 /* is */
            invokevirtual java.io.InputStream.close:()V
            goto 43
      StackMap locals: sun.tools.jar.Main sun.tools.jar.Main$ModuleInfoEntry[] java.lang.String sun.tools.jar.Main$ModuleInfoEntry int java.lang.String java.lang.Throwable java.lang.Throwable java.io.InputStream
      StackMap stack: java.lang.Throwable
        26: astore 6
            aload 8 /* is */
            ifnull 27
            aload 8 /* is */
            invokevirtual java.io.InputStream.close:()V
        end local 8 // java.io.InputStream is
      StackMap locals:
      StackMap stack:
        27: aload 6
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        28: astore 7
            aload 6
            ifnonnull 29
            aload 7
            astore 6
            goto 30
      StackMap locals:
      StackMap stack:
        29: aload 6
            aload 7
            if_acmpeq 30
            aload 6
            aload 7
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        30: aload 6
            athrow
        end local 5 // java.lang.String uriString
        end local 4 // int i
        end local 3 // sun.tools.jar.Main$ModuleInfoEntry entry
        31: .line 1913
      StackMap locals: sun.tools.jar.Main sun.tools.jar.Main$ModuleInfoEntry[] java.lang.String
      StackMap stack:
            aload 1 /* infos */
            iconst_0
            aaload
            invokeinterface sun.tools.jar.Main$ModuleInfoEntry.name:()Ljava/lang/String;
            ldc "module-info.class"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 42
        32: .line 1914
            aload 1 /* infos */
            iconst_0
            aaload
            invokeinterface sun.tools.jar.Main$ModuleInfoEntry.uriString:()Ljava/util/Optional;
            ldc ""
            invokevirtual java.util.Optional.orElse:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 3 /* uriString */
        start local 3 // java.lang.String uriString
        33: .line 1915
            aconst_null
            astore 4
            aconst_null
            astore 5
        34: aload 1 /* infos */
            iconst_0
            aaload
            invokeinterface sun.tools.jar.Main$ModuleInfoEntry.bytes:()Ljava/io/InputStream;
            astore 6 /* is */
        start local 6 // java.io.InputStream is
        35: .line 1916
            aload 0 /* this */
            aload 6 /* is */
            aload 3 /* uriString */
            invokevirtual sun.tools.jar.Main.describeModule:(Ljava/io/InputStream;Ljava/lang/String;)V
        36: .line 1917
            aload 6 /* is */
            ifnull 43
            aload 6 /* is */
            invokevirtual java.io.InputStream.close:()V
            goto 43
      StackMap locals: sun.tools.jar.Main sun.tools.jar.Main$ModuleInfoEntry[] java.lang.String java.lang.String java.lang.Throwable java.lang.Throwable java.io.InputStream
      StackMap stack: java.lang.Throwable
        37: astore 4
            aload 6 /* is */
            ifnull 38
            aload 6 /* is */
            invokevirtual java.io.InputStream.close:()V
        end local 6 // java.io.InputStream is
      StackMap locals:
      StackMap stack:
        38: aload 4
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        39: astore 5
            aload 4
            ifnonnull 40
            aload 5
            astore 4
            goto 41
      StackMap locals:
      StackMap stack:
        40: aload 4
            aload 5
            if_acmpeq 41
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        41: aload 4
            athrow
        end local 3 // java.lang.String uriString
        42: .line 1920
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "error.no.root.descriptor"
            invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
        43: .line 1923
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 2 // java.lang.String releases
        end local 1 // sun.tools.jar.Main$ModuleInfoEntry[] infos
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   44     0       this  Lsun/tools/jar/Main;
            0   44     1      infos  [Lsun/tools/jar/Main$ModuleInfoEntry;
            7   44     2   releases  Ljava/lang/String;
           11   31     3      entry  Lsun/tools/jar/Main$ModuleInfoEntry;
           12   31     4          i  I
           22   31     5  uriString  Ljava/lang/String;
           24   27     8         is  Ljava/io/InputStream;
           33   42     3  uriString  Ljava/lang/String;
           35   38     6         is  Ljava/io/InputStream;
      Exception table:
        from    to  target  type
          24    25      26  any
          23    28      28  any
          35    36      37  any
          34    39      39  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      infos  

  static <T> java.lang.String toLowerCaseString(java.util.Collection<T>);
    descriptor: (Ljava/util/Collection;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.util.Collection set
         0: .line 1927
            aload 0 /* set */
            invokeinterface java.util.Collection.isEmpty:()Z
            ifeq 1
            ldc ""
            areturn
         1: .line 1928
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc " "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* set */
            invokeinterface java.util.Collection.stream:()Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  sun/tools/jar/Main.lambda$17(Ljava/lang/Object;)Ljava/lang/String; (6)
                  (Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         2: .line 1929
            invokeinterface java.util.stream.Stream.sorted:()Ljava/util/stream/Stream;
            ldc " "
            invokestatic java.util.stream.Collectors.joining:(Ljava/lang/CharSequence;)Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 1928
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // java.util.Collection set
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0   set  Ljava/util/Collection<TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/util/Collection<TT;>;)Ljava/lang/String;
    MethodParameters:
      Name  Flags
      set   

  static <T> java.lang.String toString(java.util.Collection<T>);
    descriptor: (Ljava/util/Collection;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.util.Collection set
         0: .line 1933
            aload 0 /* set */
            invokeinterface java.util.Collection.isEmpty:()Z
            ifeq 1
            ldc ""
            areturn
         1: .line 1934
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc " "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* set */
            invokeinterface java.util.Collection.stream:()Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  sun/tools/jar/Main.lambda$18(Ljava/lang/Object;)Ljava/lang/String; (6)
                  (Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.sorted:()Ljava/util/stream/Stream;
            ldc " "
            invokestatic java.util.stream.Collectors.joining:(Ljava/lang/CharSequence;)Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // java.util.Collection set
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   set  Ljava/util/Collection<TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/util/Collection<TT;>;)Ljava/lang/String;
    MethodParameters:
      Name  Flags
      set   

  private void describeModule(java.io.InputStream, java.lang.String);
    descriptor: (Ljava/io/InputStream;Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=7, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.io.InputStream entryInputStream
        start local 2 // java.lang.String uriString
         0: .line 1940
            aload 1 /* entryInputStream */
            aconst_null
            invokestatic jdk.internal.module.ModuleInfo.read:(Ljava/io/InputStream;Ljava/util/function/Supplier;)Ljdk/internal/module/ModuleInfo$Attributes;
            astore 3 /* attrs */
        start local 3 // jdk.internal.module.ModuleInfo$Attributes attrs
         1: .line 1941
            aload 3 /* attrs */
            invokevirtual jdk.internal.module.ModuleInfo$Attributes.descriptor:()Ljava/lang/module/ModuleDescriptor;
            astore 4 /* md */
        start local 4 // java.lang.module.ModuleDescriptor md
         2: .line 1942
            aload 3 /* attrs */
            invokevirtual jdk.internal.module.ModuleInfo$Attributes.target:()Ljdk/internal/module/ModuleTarget;
            astore 5 /* target */
        start local 5 // jdk.internal.module.ModuleTarget target
         3: .line 1943
            aload 3 /* attrs */
            invokevirtual jdk.internal.module.ModuleInfo$Attributes.recordedHashes:()Ljdk/internal/module/ModuleHashes;
            astore 6 /* hashes */
        start local 6 // jdk.internal.module.ModuleHashes hashes
         4: .line 1945
            aload 0 /* this */
            aload 4 /* md */
            aload 5 /* target */
            aload 6 /* hashes */
            aload 2 /* uriString */
            invokevirtual sun.tools.jar.Main.describeModule:(Ljava/lang/module/ModuleDescriptor;Ljdk/internal/module/ModuleTarget;Ljdk/internal/module/ModuleHashes;Ljava/lang/String;)V
         5: .line 1946
            return
        end local 6 // jdk.internal.module.ModuleHashes hashes
        end local 5 // jdk.internal.module.ModuleTarget target
        end local 4 // java.lang.module.ModuleDescriptor md
        end local 3 // jdk.internal.module.ModuleInfo$Attributes attrs
        end local 2 // java.lang.String uriString
        end local 1 // java.io.InputStream entryInputStream
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    6     0              this  Lsun/tools/jar/Main;
            0    6     1  entryInputStream  Ljava/io/InputStream;
            0    6     2         uriString  Ljava/lang/String;
            1    6     3             attrs  Ljdk/internal/module/ModuleInfo$Attributes;
            2    6     4                md  Ljava/lang/module/ModuleDescriptor;
            3    6     5            target  Ljdk/internal/module/ModuleTarget;
            4    6     6            hashes  Ljdk/internal/module/ModuleHashes;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                  Name  Flags
      entryInputStream  
      uriString         

  private void describeModule(java.lang.module.ModuleDescriptor, jdk.internal.module.ModuleTarget, jdk.internal.module.ModuleHashes, java.lang.String);
    descriptor: (Ljava/lang/module/ModuleDescriptor;Ljdk/internal/module/ModuleTarget;Ljdk/internal/module/ModuleHashes;Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=10, args_size=5
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.module.ModuleDescriptor md
        start local 2 // jdk.internal.module.ModuleTarget target
        start local 3 // jdk.internal.module.ModuleHashes hashes
        start local 4 // java.lang.String uriString
         0: .line 1954
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 5 /* sb */
        start local 5 // java.lang.StringBuilder sb
         1: .line 1956
            aload 5 /* sb */
            aload 1 /* md */
            invokevirtual java.lang.module.ModuleDescriptor.toNameAndVersion:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 1958
            aload 4 /* uriString */
            ldc ""
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 4
         3: .line 1959
            aload 5 /* sb */
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* uriString */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         4: .line 1960
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
            aload 1 /* md */
            invokevirtual java.lang.module.ModuleDescriptor.isOpen:()Z
            ifeq 6
         5: .line 1961
            aload 5 /* sb */
            ldc " open"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         6: .line 1962
      StackMap locals:
      StackMap stack:
            aload 1 /* md */
            invokevirtual java.lang.module.ModuleDescriptor.isAutomatic:()Z
            ifeq 8
         7: .line 1963
            aload 5 /* sb */
            ldc " automatic"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         8: .line 1964
      StackMap locals:
      StackMap stack:
            aload 5 /* sb */
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         9: .line 1967
            aload 1 /* md */
            invokevirtual java.lang.module.ModuleDescriptor.exports:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
        10: .line 1968
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/lang/module/ModuleDescriptor$Exports.source()Ljava/lang/String; (5)
                  (Ljava/lang/module/ModuleDescriptor$Exports;)Ljava/lang/String;
            invokestatic java.util.Comparator.comparing:(Ljava/util/function/Function;)Ljava/util/Comparator;
            invokeinterface java.util.stream.Stream.sorted:(Ljava/util/Comparator;)Ljava/util/stream/Stream;
        11: .line 1969
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  sun/tools/jar/Main.lambda$20(Ljava/lang/module/ModuleDescriptor$Exports;)Z (6)
                  (Ljava/lang/module/ModuleDescriptor$Exports;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
        12: .line 1970
            aload 5 /* sb */
            invokedynamic accept(Ljava/lang/StringBuilder;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  sun/tools/jar/Main.lambda$21(Ljava/lang/StringBuilder;Ljava/lang/module/ModuleDescriptor$Exports;)V (6)
                  (Ljava/lang/module/ModuleDescriptor$Exports;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        13: .line 1975
            aload 1 /* md */
            invokevirtual java.lang.module.ModuleDescriptor.requires:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.sorted:()Ljava/util/stream/Stream;
        14: .line 1976
            aload 5 /* sb */
            invokedynamic accept(Ljava/lang/StringBuilder;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  sun/tools/jar/Main.lambda$22(Ljava/lang/StringBuilder;Ljava/lang/module/ModuleDescriptor$Requires;)V (6)
                  (Ljava/lang/module/ModuleDescriptor$Requires;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        15: .line 1981
            aload 1 /* md */
            invokevirtual java.lang.module.ModuleDescriptor.uses:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.sorted:()Ljava/util/stream/Stream;
        16: .line 1982
            aload 5 /* sb */
            invokedynamic accept(Ljava/lang/StringBuilder;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  sun/tools/jar/Main.lambda$23(Ljava/lang/StringBuilder;Ljava/lang/String;)V (6)
                  (Ljava/lang/String;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        17: .line 1984
            aload 1 /* md */
            invokevirtual java.lang.module.ModuleDescriptor.provides:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
        18: .line 1985
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/lang/module/ModuleDescriptor$Provides.service()Ljava/lang/String; (5)
                  (Ljava/lang/module/ModuleDescriptor$Provides;)Ljava/lang/String;
            invokestatic java.util.Comparator.comparing:(Ljava/util/function/Function;)Ljava/util/Comparator;
            invokeinterface java.util.stream.Stream.sorted:(Ljava/util/Comparator;)Ljava/util/stream/Stream;
        19: .line 1986
            aload 5 /* sb */
            invokedynamic accept(Ljava/lang/StringBuilder;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  sun/tools/jar/Main.lambda$25(Ljava/lang/StringBuilder;Ljava/lang/module/ModuleDescriptor$Provides;)V (6)
                  (Ljava/lang/module/ModuleDescriptor$Provides;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        20: .line 1992
            aload 1 /* md */
            invokevirtual java.lang.module.ModuleDescriptor.exports:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
        21: .line 1993
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/lang/module/ModuleDescriptor$Exports.source()Ljava/lang/String; (5)
                  (Ljava/lang/module/ModuleDescriptor$Exports;)Ljava/lang/String;
            invokestatic java.util.Comparator.comparing:(Ljava/util/function/Function;)Ljava/util/Comparator;
            invokeinterface java.util.stream.Stream.sorted:(Ljava/util/Comparator;)Ljava/util/stream/Stream;
        22: .line 1994
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  java/lang/module/ModuleDescriptor$Exports.isQualified()Z (5)
                  (Ljava/lang/module/ModuleDescriptor$Exports;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
        23: .line 1995
            aload 5 /* sb */
            invokedynamic accept(Ljava/lang/StringBuilder;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  sun/tools/jar/Main.lambda$28(Ljava/lang/StringBuilder;Ljava/lang/module/ModuleDescriptor$Exports;)V (6)
                  (Ljava/lang/module/ModuleDescriptor$Exports;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        24: .line 2000
            aload 1 /* md */
            invokevirtual java.lang.module.ModuleDescriptor.opens:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
        25: .line 2001
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/lang/module/ModuleDescriptor$Opens.source()Ljava/lang/String; (5)
                  (Ljava/lang/module/ModuleDescriptor$Opens;)Ljava/lang/String;
            invokestatic java.util.Comparator.comparing:(Ljava/util/function/Function;)Ljava/util/Comparator;
            invokeinterface java.util.stream.Stream.sorted:(Ljava/util/Comparator;)Ljava/util/stream/Stream;
        26: .line 2002
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  sun/tools/jar/Main.lambda$30(Ljava/lang/module/ModuleDescriptor$Opens;)Z (6)
                  (Ljava/lang/module/ModuleDescriptor$Opens;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
        27: .line 2003
            aload 5 /* sb */
            invokedynamic accept(Ljava/lang/StringBuilder;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  sun/tools/jar/Main.lambda$31(Ljava/lang/StringBuilder;Ljava/lang/module/ModuleDescriptor$Opens;)V (6)
                  (Ljava/lang/module/ModuleDescriptor$Opens;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        28: .line 2007
            aload 1 /* md */
            invokevirtual java.lang.module.ModuleDescriptor.opens:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
        29: .line 2008
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/lang/module/ModuleDescriptor$Opens.source()Ljava/lang/String; (5)
                  (Ljava/lang/module/ModuleDescriptor$Opens;)Ljava/lang/String;
            invokestatic java.util.Comparator.comparing:(Ljava/util/function/Function;)Ljava/util/Comparator;
            invokeinterface java.util.stream.Stream.sorted:(Ljava/util/Comparator;)Ljava/util/stream/Stream;
        30: .line 2009
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  java/lang/module/ModuleDescriptor$Opens.isQualified()Z (5)
                  (Ljava/lang/module/ModuleDescriptor$Opens;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
        31: .line 2010
            aload 5 /* sb */
            invokedynamic accept(Ljava/lang/StringBuilder;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  sun/tools/jar/Main.lambda$34(Ljava/lang/StringBuilder;Ljava/lang/module/ModuleDescriptor$Opens;)V (6)
                  (Ljava/lang/module/ModuleDescriptor$Opens;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        32: .line 2016
            new java.util.TreeSet
            dup
            aload 1 /* md */
            invokevirtual java.lang.module.ModuleDescriptor.packages:()Ljava/util/Set;
            invokespecial java.util.TreeSet.<init>:(Ljava/util/Collection;)V
            astore 6 /* concealed */
        start local 6 // java.util.Set concealed
        33: .line 2017
            aload 1 /* md */
            invokevirtual java.lang.module.ModuleDescriptor.exports:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/lang/module/ModuleDescriptor$Exports.source()Ljava/lang/String; (5)
                  (Ljava/lang/module/ModuleDescriptor$Exports;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            aload 6 /* concealed */
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic accept(Ljava/util/Set;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  java/util/Set.remove(Ljava/lang/Object;)Z (9 itf)
                  (Ljava/lang/String;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        34: .line 2018
            aload 1 /* md */
            invokevirtual java.lang.module.ModuleDescriptor.opens:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/lang/module/ModuleDescriptor$Opens.source()Ljava/lang/String; (5)
                  (Ljava/lang/module/ModuleDescriptor$Opens;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            aload 6 /* concealed */
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic accept(Ljava/util/Set;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  java/util/Set.remove(Ljava/lang/Object;)Z (9 itf)
                  (Ljava/lang/String;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        35: .line 2019
            aload 6 /* concealed */
            aload 5 /* sb */
            invokedynamic accept(Ljava/lang/StringBuilder;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  sun/tools/jar/Main.lambda$39(Ljava/lang/StringBuilder;Ljava/lang/String;)V (6)
                  (Ljava/lang/String;)V
            invokeinterface java.util.Set.forEach:(Ljava/util/function/Consumer;)V
        36: .line 2021
            aload 1 /* md */
            invokevirtual java.lang.module.ModuleDescriptor.mainClass:()Ljava/util/Optional;
            aload 5 /* sb */
            invokedynamic accept(Ljava/lang/StringBuilder;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  sun/tools/jar/Main.lambda$40(Ljava/lang/StringBuilder;Ljava/lang/String;)V (6)
                  (Ljava/lang/String;)V
            invokevirtual java.util.Optional.ifPresent:(Ljava/util/function/Consumer;)V
        37: .line 2023
            aload 2 /* target */
            ifnull 41
        38: .line 2024
            aload 2 /* target */
            invokevirtual jdk.internal.module.ModuleTarget.targetPlatform:()Ljava/lang/String;
            astore 9 /* targetPlatform */
        start local 9 // java.lang.String targetPlatform
        39: .line 2025
            aload 9 /* targetPlatform */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 41
        40: .line 2026
            aload 5 /* sb */
            ldc "platform "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 9 /* targetPlatform */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 9 // java.lang.String targetPlatform
        41: .line 2029
      StackMap locals: java.util.Set
      StackMap stack:
            aload 3 /* hashes */
            ifnull 45
        42: .line 2030
            aload 3 /* hashes */
            invokevirtual jdk.internal.module.ModuleHashes.names:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.sorted:()Ljava/util/stream/Stream;
        43: .line 2031
            aload 5 /* sb */
            aload 3 /* hashes */
            invokedynamic accept(Ljava/lang/StringBuilder;Ljdk/internal/module/ModuleHashes;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  sun/tools/jar/Main.lambda$41(Ljava/lang/StringBuilder;Ljdk/internal/module/ModuleHashes;Ljava/lang/String;)V (6)
                  (Ljava/lang/String;)V
        44: .line 2030
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        45: .line 2037
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 5 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
        46: .line 2038
            return
        end local 6 // java.util.Set concealed
        end local 5 // java.lang.StringBuilder sb
        end local 4 // java.lang.String uriString
        end local 3 // jdk.internal.module.ModuleHashes hashes
        end local 2 // jdk.internal.module.ModuleTarget target
        end local 1 // java.lang.module.ModuleDescriptor md
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   47     0            this  Lsun/tools/jar/Main;
            0   47     1              md  Ljava/lang/module/ModuleDescriptor;
            0   47     2          target  Ljdk/internal/module/ModuleTarget;
            0   47     3          hashes  Ljdk/internal/module/ModuleHashes;
            0   47     4       uriString  Ljava/lang/String;
            1   47     5              sb  Ljava/lang/StringBuilder;
           33   47     6       concealed  Ljava/util/Set<Ljava/lang/String;>;
           39   41     9  targetPlatform  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      md         
      target     
      hashes     
      uriString  

  private static java.lang.String toHex(byte[]);
    descriptor: ([B)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=6, args_size=1
        start local 0 // byte[] ba
         0: .line 2041
            new java.lang.StringBuilder
            dup
            aload 0 /* ba */
            arraylength
            iconst_1
            ishl
            invokespecial java.lang.StringBuilder.<init>:(I)V
            astore 1 /* sb */
        start local 1 // java.lang.StringBuilder sb
         1: .line 2042
            aload 0 /* ba */
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 5
      StackMap locals: byte[] java.lang.StringBuilder top int int byte[]
      StackMap stack:
         2: aload 5
            iload 3
            baload
            istore 2 /* b */
        start local 2 // byte b
         3: .line 2043
            aload 1 /* sb */
            ldc "%02x"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            iload 2 /* b */
            sipush 255
            iand
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 2 // byte b
         4: .line 2042
            iinc 3 1
      StackMap locals:
      StackMap stack:
         5: iload 3
            iload 4
            if_icmplt 2
         6: .line 2045
            aload 1 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuilder sb
        end local 0 // byte[] ba
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0    ba  [B
            1    7     1    sb  Ljava/lang/StringBuilder;
            3    4     2     b  B
    MethodParameters:
      Name  Flags
      ba    

  static java.lang.String toBinaryName(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // java.lang.String classname
         0: .line 2049
            new java.lang.StringBuilder
            dup
            aload 0 /* classname */
            bipush 46
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".class"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // java.lang.String classname
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0  classname  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      classname  

  private boolean checkModuleInfo(byte[], java.util.Set<java.lang.String>);
    descriptor: ([BLjava/util/Set;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // byte[] moduleInfoBytes
        start local 2 // java.util.Set entries
         0: .line 2055
            iconst_1
            istore 3 /* ok */
        start local 3 // boolean ok
         1: .line 2056
            aload 1 /* moduleInfoBytes */
            ifnull 13
         2: .line 2059
            aload 1 /* moduleInfoBytes */
            invokestatic java.nio.ByteBuffer.wrap:([B)Ljava/nio/ByteBuffer;
            invokestatic java.lang.module.ModuleDescriptor.read:(Ljava/nio/ByteBuffer;)Ljava/lang/module/ModuleDescriptor;
            astore 4 /* md */
        start local 4 // java.lang.module.ModuleDescriptor md
         3: .line 2061
            aload 4 /* md */
            invokevirtual java.lang.module.ModuleDescriptor.provides:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/lang/module/ModuleDescriptor$Provides.providers()Ljava/util/List; (5)
                  (Ljava/lang/module/ModuleDescriptor$Provides;)Ljava/util/List;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/util/Collection.stream()Ljava/util/stream/Stream; (9 itf)
                  (Ljava/util/List;)Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         4: .line 2062
            aload 2 /* entries */
            invokedynamic test(Ljava/util/Set;)Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  sun/tools/jar/Main.lambda$44(Ljava/util/Set;Ljava/lang/String;)Z (6)
                  (Ljava/lang/String;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
         5: .line 2063
            aload 0 /* this */
            invokedynamic accept(Lsun/tools/jar/Main;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  sun/tools/jar/Main.lambda$45(Ljava/lang/String;)V (7)
                  (Ljava/lang/String;)V
            invokeinterface java.util.stream.Stream.peek:(Ljava/util/function/Consumer;)Ljava/util/stream/Stream;
         6: .line 2064
            invokeinterface java.util.stream.Stream.count:()J
            lconst_0
         7: .line 2061
            lcmp
            ifeq 13
         8: .line 2065
            iconst_0
            istore 3 /* ok */
        end local 4 // java.lang.module.ModuleDescriptor md
         9: .line 2067
            goto 13
      StackMap locals: sun.tools.jar.Main byte[] java.util.Set int
      StackMap stack: java.lang.module.InvalidModuleDescriptorException
        10: astore 4 /* x */
        start local 4 // java.lang.module.InvalidModuleDescriptorException x
        11: .line 2068
            aload 0 /* this */
            aload 4 /* x */
            invokevirtual java.lang.module.InvalidModuleDescriptorException.getMessage:()Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.fatalError:(Ljava/lang/String;)V
        12: .line 2069
            iconst_0
            istore 3 /* ok */
        end local 4 // java.lang.module.InvalidModuleDescriptorException x
        13: .line 2072
      StackMap locals:
      StackMap stack:
            iload 3 /* ok */
            ireturn
        end local 3 // boolean ok
        end local 2 // java.util.Set entries
        end local 1 // byte[] moduleInfoBytes
        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  moduleInfoBytes  [B
            0   14     2          entries  Ljava/util/Set<Ljava/lang/String;>;
            1   14     3               ok  Z
            3    9     4               md  Ljava/lang/module/ModuleDescriptor;
           11   13     4                x  Ljava/lang/module/InvalidModuleDescriptorException;
      Exception table:
        from    to  target  type
           2     9      10  Class java.lang.module.InvalidModuleDescriptorException
    Exceptions:
      throws java.io.IOException
    Signature: ([BLjava/util/Set<Ljava/lang/String;>;)Z
    MethodParameters:
                 Name  Flags
      moduleInfoBytes  
      entries          

  private void addExtendedModuleAttributes(java.util.Map<java.lang.String, byte[]>, java.util.Set<java.lang.String>);
    descriptor: (Ljava/util/Map;Ljava/util/Set;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.util.Map moduleInfos
        start local 2 // java.util.Set packages
         0: .line 2083
            aload 1 /* moduleInfos */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 4
      StackMap locals: sun.tools.jar.Main java.util.Map java.util.Set top java.util.Iterator
      StackMap stack:
         1: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 3 /* e */
        start local 3 // java.util.Map$Entry e
         2: .line 2084
            aload 3 /* e */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast byte[]
            invokestatic java.nio.ByteBuffer.wrap:([B)Ljava/nio/ByteBuffer;
            invokestatic java.lang.module.ModuleDescriptor.read:(Ljava/nio/ByteBuffer;)Ljava/lang/module/ModuleDescriptor;
            astore 5 /* md */
        start local 5 // java.lang.module.ModuleDescriptor md
         3: .line 2085
            aload 3 /* e */
            aload 0 /* this */
            aload 5 /* md */
            aload 3 /* e */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast byte[]
            aload 2 /* packages */
            invokevirtual sun.tools.jar.Main.extendedInfoBytes:(Ljava/lang/module/ModuleDescriptor;[BLjava/util/Set;)[B
            invokeinterface java.util.Map$Entry.setValue:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 5 // java.lang.module.ModuleDescriptor md
        end local 3 // java.util.Map$Entry e
         4: .line 2083
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         5: .line 2087
            return
        end local 2 // java.util.Set packages
        end local 1 // java.util.Map moduleInfos
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0         this  Lsun/tools/jar/Main;
            0    6     1  moduleInfos  Ljava/util/Map<Ljava/lang/String;[B>;
            0    6     2     packages  Ljava/util/Set<Ljava/lang/String;>;
            2    4     3            e  Ljava/util/Map$Entry<Ljava/lang/String;[B>;
            3    4     5           md  Ljava/lang/module/ModuleDescriptor;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/util/Map<Ljava/lang/String;[B>;Ljava/util/Set<Ljava/lang/String;>;)V
    MethodParameters:
             Name  Flags
      moduleInfos  
      packages     

  static boolean isModuleInfoEntry(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // java.lang.String name
         0: .line 2091
            aload 0 /* name */
            ldc "module-info.class"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 14
         1: .line 2092
            aload 0 /* name */
            invokevirtual java.lang.String.length:()I
            ldc "module-info.class"
            invokevirtual java.lang.String.length:()I
            isub
            istore 1 /* end */
        start local 1 // int end
         2: .line 2093
            iload 1 /* end */
            ifne 4
         3: .line 2094
            iconst_1
            ireturn
         4: .line 2095
      StackMap locals: int
      StackMap stack:
            aload 0 /* name */
            ldc "META-INF/versions/"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 14
         5: .line 2096
            getstatic sun.tools.jar.Main.VERSIONS_DIR_LENGTH:I
            istore 2 /* off */
        start local 2 // int off
         6: .line 2097
            iload 2 /* off */
            iload 1 /* end */
            if_icmpne 11
         7: .line 2098
            iconst_0
            ireturn
         8: .line 2100
      StackMap locals: int
      StackMap stack:
            aload 0 /* name */
            iload 2 /* off */
            iinc 2 /* off */ 1
            invokevirtual java.lang.String.charAt:(I)C
            istore 3 /* c */
        start local 3 // char c
         9: .line 2101
            iload 3 /* c */
            bipush 48
            if_icmplt 10
            iload 3 /* c */
            bipush 57
            if_icmple 11
        10: .line 2102
      StackMap locals: int
      StackMap stack:
            iconst_0
            ireturn
        end local 3 // char c
        11: .line 2099
      StackMap locals:
      StackMap stack:
            iload 2 /* off */
            iload 1 /* end */
            iconst_1
            isub
            if_icmplt 8
        12: .line 2104
            aload 0 /* name */
            iload 2 /* off */
            invokevirtual java.lang.String.charAt:(I)C
            bipush 47
            if_icmpne 13
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        13: iconst_0
            ireturn
        end local 2 // int off
        end local 1 // int end
        14: .line 2107
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   15     0  name  Ljava/lang/String;
            2   14     1   end  I
            6   14     2   off  I
            9   11     3     c  C
    MethodParameters:
      Name  Flags
      name  

  private byte[] extendedInfoBytes(java.lang.module.ModuleDescriptor, byte[], java.util.Set<java.lang.String>);
    descriptor: (Ljava/lang/module/ModuleDescriptor;[BLjava/util/Set;)[B
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=10, args_size=4
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.module.ModuleDescriptor md
        start local 2 // byte[] miBytes
        start local 3 // java.util.Set packages
         0: .line 2123
            new java.io.ByteArrayOutputStream
            dup
            invokespecial java.io.ByteArrayOutputStream.<init>:()V
            astore 4 /* baos */
        start local 4 // java.io.ByteArrayOutputStream baos
         1: .line 2124
            new java.io.ByteArrayInputStream
            dup
            aload 2 /* miBytes */
            invokespecial java.io.ByteArrayInputStream.<init>:([B)V
            astore 5 /* is */
        start local 5 // java.io.InputStream is
         2: .line 2125
            aload 5 /* is */
            invokestatic jdk.internal.module.ModuleInfoExtender.newExtender:(Ljava/io/InputStream;)Ljdk/internal/module/ModuleInfoExtender;
            astore 6 /* extender */
        start local 6 // jdk.internal.module.ModuleInfoExtender extender
         3: .line 2128
            aload 6 /* extender */
            aload 3 /* packages */
            invokevirtual jdk.internal.module.ModuleInfoExtender.packages:(Ljava/util/Set;)Ljdk/internal/module/ModuleInfoExtender;
            pop
         4: .line 2131
            aload 0 /* this */
            getfield sun.tools.jar.Main.ename:Ljava/lang/String;
            ifnull 6
         5: .line 2132
            aload 6 /* extender */
            aload 0 /* this */
            getfield sun.tools.jar.Main.ename:Ljava/lang/String;
            invokevirtual jdk.internal.module.ModuleInfoExtender.mainClass:(Ljava/lang/String;)Ljdk/internal/module/ModuleInfoExtender;
            pop
         6: .line 2135
      StackMap locals: java.io.ByteArrayOutputStream java.io.InputStream jdk.internal.module.ModuleInfoExtender
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.moduleVersion:Ljava/lang/module/ModuleDescriptor$Version;
            ifnull 8
         7: .line 2136
            aload 6 /* extender */
            aload 0 /* this */
            getfield sun.tools.jar.Main.moduleVersion:Ljava/lang/module/ModuleDescriptor$Version;
            invokevirtual jdk.internal.module.ModuleInfoExtender.version:(Ljava/lang/module/ModuleDescriptor$Version;)Ljdk/internal/module/ModuleInfoExtender;
            pop
         8: .line 2139
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.modulesToHash:Ljava/util/regex/Pattern;
            ifnull 16
         9: .line 2140
            aload 1 /* md */
            invokevirtual java.lang.module.ModuleDescriptor.name:()Ljava/lang/String;
            astore 7 /* mn */
        start local 7 // java.lang.String mn
        10: .line 2141
            new sun.tools.jar.Main$Hasher
            dup
            aload 0 /* this */
            aload 1 /* md */
            aload 0 /* this */
            getfield sun.tools.jar.Main.fname:Ljava/lang/String;
            invokespecial sun.tools.jar.Main$Hasher.<init>:(Lsun/tools/jar/Main;Ljava/lang/module/ModuleDescriptor;Ljava/lang/String;)V
            astore 8 /* hasher */
        start local 8 // sun.tools.jar.Main$Hasher hasher
        11: .line 2142
            aload 8 /* hasher */
            aload 7 /* mn */
            invokevirtual sun.tools.jar.Main$Hasher.computeHashes:(Ljava/lang/String;)Ljdk/internal/module/ModuleHashes;
            astore 9 /* moduleHashes */
        start local 9 // jdk.internal.module.ModuleHashes moduleHashes
        12: .line 2143
            aload 9 /* moduleHashes */
            ifnull 15
        13: .line 2144
            aload 6 /* extender */
            aload 9 /* moduleHashes */
            invokevirtual jdk.internal.module.ModuleInfoExtender.hashes:(Ljdk/internal/module/ModuleHashes;)Ljdk/internal/module/ModuleInfoExtender;
            pop
        14: .line 2145
            goto 16
        15: .line 2146
      StackMap locals: java.lang.String sun.tools.jar.Main$Hasher jdk.internal.module.ModuleHashes
      StackMap stack:
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "warning: no module is recorded in hash in "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* mn */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.warn:(Ljava/lang/String;)V
        end local 9 // jdk.internal.module.ModuleHashes moduleHashes
        end local 8 // sun.tools.jar.Main$Hasher hasher
        end local 7 // java.lang.String mn
        16: .line 2150
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.jar.Main.moduleResolution:Ljdk/internal/module/ModuleResolution;
            invokevirtual jdk.internal.module.ModuleResolution.value:()I
            ifeq 18
        17: .line 2151
            aload 6 /* extender */
            aload 0 /* this */
            getfield sun.tools.jar.Main.moduleResolution:Ljdk/internal/module/ModuleResolution;
            invokevirtual jdk.internal.module.ModuleInfoExtender.moduleResolution:(Ljdk/internal/module/ModuleResolution;)Ljdk/internal/module/ModuleInfoExtender;
            pop
        18: .line 2154
      StackMap locals:
      StackMap stack:
            aload 6 /* extender */
            aload 4 /* baos */
            invokevirtual jdk.internal.module.ModuleInfoExtender.write:(Ljava/io/OutputStream;)V
        19: .line 2155
            aload 4 /* baos */
            invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
            areturn
        end local 6 // jdk.internal.module.ModuleInfoExtender extender
        end local 5 // java.io.InputStream is
        end local 4 // java.io.ByteArrayOutputStream baos
        end local 3 // java.util.Set packages
        end local 2 // byte[] miBytes
        end local 1 // java.lang.module.ModuleDescriptor md
        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            md  Ljava/lang/module/ModuleDescriptor;
            0   20     2       miBytes  [B
            0   20     3      packages  Ljava/util/Set<Ljava/lang/String;>;
            1   20     4          baos  Ljava/io/ByteArrayOutputStream;
            2   20     5            is  Ljava/io/InputStream;
            3   20     6      extender  Ljdk/internal/module/ModuleInfoExtender;
           10   16     7            mn  Ljava/lang/String;
           11   16     8        hasher  Lsun/tools/jar/Main$Hasher;
           12   16     9  moduleHashes  Ljdk/internal/module/ModuleHashes;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/lang/module/ModuleDescriptor;[BLjava/util/Set<Ljava/lang/String;>;)[B
    MethodParameters:
          Name  Flags
      md        
      miBytes   
      packages  

  private static int lambda$0(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)I
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=11, args_size=2
        start local 0 // java.lang.String s1
        start local 1 // java.lang.String s2
         0: .line 2242
            aload 0 /* s1 */
            aload 1 /* s2 */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 1
            iconst_0
            ireturn
         1: .line 2243
      StackMap locals:
      StackMap stack:
            aload 0 /* s1 */
            ldc "META-INF/versions/"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            istore 2 /* b1 */
        start local 2 // boolean b1
         2: .line 2244
            aload 1 /* s2 */
            ldc "META-INF/versions/"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            istore 3 /* b2 */
        start local 3 // boolean b2
         3: .line 2245
            iload 2 /* b1 */
            ifeq 4
            iload 3 /* b2 */
            ifne 4
            iconst_1
            ireturn
         4: .line 2246
      StackMap locals: int int
      StackMap stack:
            iload 2 /* b1 */
            ifne 5
            iload 3 /* b2 */
            ifeq 5
            iconst_m1
            ireturn
         5: .line 2247
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* n */
        start local 4 // int n
         6: .line 2248
            iload 2 /* b1 */
            ifeq 13
            iload 3 /* b2 */
            ifeq 13
         7: .line 2251
            ldc "META-INF/versions/"
            invokevirtual java.lang.String.length:()I
            istore 4 /* n */
         8: .line 2252
            aload 0 /* s1 */
            bipush 47
            iload 4 /* n */
            invokevirtual java.lang.String.indexOf:(II)I
            istore 5 /* i1 */
        start local 5 // int i1
         9: .line 2253
            aload 1 /* s2 */
            bipush 47
            iload 4 /* n */
            invokevirtual java.lang.String.indexOf:(II)I
            istore 6 /* i2 */
        start local 6 // int i2
        10: .line 2254
            iload 5 /* i1 */
            iconst_m1
            if_icmpne 11
            new sun.tools.jar.Validator$InvalidJarException
            dup
            aload 0 /* s1 */
            invokespecial sun.tools.jar.Validator$InvalidJarException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 2255
      StackMap locals: int int int
      StackMap stack:
            iload 6 /* i2 */
            iconst_m1
            if_icmpne 12
            new sun.tools.jar.Validator$InvalidJarException
            dup
            aload 1 /* s2 */
            invokespecial sun.tools.jar.Validator$InvalidJarException.<init>:(Ljava/lang/String;)V
            athrow
        12: .line 2257
      StackMap locals:
      StackMap stack:
            iload 5 /* i1 */
            iload 6 /* i2 */
            if_icmpeq 13
            iload 5 /* i1 */
            iload 6 /* i2 */
            isub
            ireturn
        end local 6 // int i2
        end local 5 // int i1
        13: .line 2260
      StackMap locals:
      StackMap stack:
            aload 0 /* s1 */
            invokevirtual java.lang.String.length:()I
            istore 5 /* l1 */
        start local 5 // int l1
        14: .line 2261
            aload 1 /* s2 */
            invokevirtual java.lang.String.length:()I
            istore 6 /* l2 */
        start local 6 // int l2
        15: .line 2262
            iload 5 /* l1 */
            iload 6 /* l2 */
            invokestatic java.lang.Math.min:(II)I
            istore 7 /* lim */
        start local 7 // int lim
        16: .line 2263
            iload 4 /* n */
            istore 8 /* k */
        start local 8 // int k
        17: goto 25
        18: .line 2264
      StackMap locals: java.lang.String java.lang.String int int int int int int int
      StackMap stack:
            aload 0 /* s1 */
            iload 8 /* k */
            invokevirtual java.lang.String.charAt:(I)C
            istore 9 /* c1 */
        start local 9 // char c1
        19: .line 2265
            aload 1 /* s2 */
            iload 8 /* k */
            invokevirtual java.lang.String.charAt:(I)C
            istore 10 /* c2 */
        start local 10 // char c2
        20: .line 2266
            iload 9 /* c1 */
            iload 10 /* c2 */
            if_icmpeq 24
        21: .line 2269
            iload 9 /* c1 */
            bipush 36
            if_icmpne 22
            iload 10 /* c2 */
            bipush 46
            if_icmpne 22
            iconst_1
            ireturn
        22: .line 2270
      StackMap locals: int int
      StackMap stack:
            iload 9 /* c1 */
            bipush 46
            if_icmpne 23
            iload 10 /* c2 */
            bipush 36
            if_icmpne 23
            iconst_m1
            ireturn
        23: .line 2271
      StackMap locals:
      StackMap stack:
            iload 9 /* c1 */
            iload 10 /* c2 */
            isub
            ireturn
        end local 10 // char c2
        end local 9 // char c1
        24: .line 2263
      StackMap locals:
      StackMap stack:
            iinc 8 /* k */ 1
      StackMap locals:
      StackMap stack:
        25: iload 8 /* k */
            iload 7 /* lim */
            if_icmplt 18
        end local 8 // int k
        26: .line 2274
            iload 5 /* l1 */
            iload 6 /* l2 */
            isub
            ireturn
        end local 7 // int lim
        end local 6 // int l2
        end local 5 // int l1
        end local 4 // int n
        end local 3 // boolean b2
        end local 2 // boolean b1
        end local 1 // java.lang.String s2
        end local 0 // java.lang.String s1
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   27     0    s1  Ljava/lang/String;
            0   27     1    s2  Ljava/lang/String;
            2   27     2    b1  Z
            3   27     3    b2  Z
            6   27     4     n  I
            9   13     5    i1  I
           10   13     6    i2  I
           14   27     5    l1  I
           15   27     6    l2  I
           16   27     7   lim  I
           17   26     8     k  I
           19   24     9    c1  C
           20   24    10    c2  C

  private static boolean lambda$2(sun.tools.jar.Main$Entry);
    descriptor: (Lsun/tools/jar/Main$Entry;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.tools.jar.Main$Entry e
         0: .line 292
            aload 0 /* e */
            getfield sun.tools.jar.Main$Entry.isDir:Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // sun.tools.jar.Main$Entry e
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     e  Lsun/tools/jar/Main$Entry;

  private void lambda$3(java.util.Set, java.util.Set, sun.tools.jar.Main$Entry);
    descriptor: (Ljava/util/Set;Ljava/util/Set;Lsun/tools/jar/Main$Entry;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // sun.tools.jar.Main this
        start local 3 // sun.tools.jar.Main$Entry e
         0: .line 294
            aload 0 /* this */
            aload 1
            aload 3 /* e */
            getfield sun.tools.jar.Main$Entry.name:Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.addPackageIfNamed:(Ljava/util/Set;Ljava/lang/String;)V
         1: .line 295
            aload 2
            aload 3 /* e */
            getfield sun.tools.jar.Main$Entry.name:Ljava/lang/String;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         2: .line 296
            return
        end local 3 // sun.tools.jar.Main$Entry e
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/tools/jar/Main;
            0    3     3     e  Lsun/tools/jar/Main$Entry;

  private static java.lang.String[] lambda$5(int);
    descriptor: (I)[Ljava/lang/String;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            iload 0
            anewarray java.lang.String
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private java.lang.String lambda$6(java.util.Set, int, java.lang.String);
    descriptor: (Ljava/util/Set;ILjava/lang/String;)Ljava/lang/String;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // sun.tools.jar.Main this
        start local 3 // java.lang.String f
         0: .line 488
            aload 0 /* this */
            aload 3 /* f */
            aload 1
            iconst_0
            invokevirtual sun.tools.jar.Main.toEntryName:(Ljava/lang/String;Ljava/util/Set;Z)Ljava/lang/String;
            iload 2
            invokestatic sun.tools.jar.Main.toVersionedName:(Ljava/lang/String;I)Ljava/lang/String;
            areturn
        end local 3 // java.lang.String f
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/tools/jar/Main;
            0    1     3     f  Ljava/lang/String;

  private void lambda$7(java.util.Set, java.lang.String);
    descriptor: (Ljava/util/Set;Ljava/lang/String;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // sun.tools.jar.Main this
        start local 2 // java.lang.String je
         0: .line 1017
            aload 0 /* this */
            aload 1
            aload 2 /* je */
            invokevirtual sun.tools.jar.Main.addPackageIfNamed:(Ljava/util/Set;Ljava/lang/String;)V
            return
        end local 2 // java.lang.String je
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/tools/jar/Main;
            0    1     2    je  Ljava/lang/String;

  private static void lambda$8(java.util.Map, java.lang.Integer);
    descriptor: (Ljava/util/Map;Ljava/lang/Integer;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=5, locals=4, args_size=2
        start local 1 // java.lang.Integer version
         0: .line 1318
            aload 0
            aload 1 /* version */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String[]
            astore 2 /* files */
        start local 2 // java.lang.String[] files
         1: .line 1319
            aload 2 /* files */
            ifnull 7
         2: .line 1320
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: goto 6
         4: .line 1321
      StackMap locals: java.lang.String[] int
      StackMap stack:
            aload 2 /* files */
            iload 3 /* i */
            aload 2 /* files */
            iload 3 /* i */
            aaload
            getstatic java.io.File.separatorChar:C
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            aastore
         5: .line 1320
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 3 /* i */
            aload 2 /* files */
            arraylength
            if_icmplt 4
        end local 3 // int i
        end local 2 // java.lang.String[] files
         7: .line 1324
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Integer version
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     1  version  Ljava/lang/Integer;
            1    7     2    files  [Ljava/lang/String;
            3    7     3        i  I

  private static boolean lambda$9(java.util.zip.ZipEntry);
    descriptor: (Ljava/util/zip/ZipEntry;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.util.zip.ZipEntry e
         0: .line 1797
            aload 0 /* e */
            invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
            invokestatic sun.tools.jar.Main.isModuleInfoEntry:(Ljava/lang/String;)Z
            ireturn
        end local 0 // java.util.zip.ZipEntry e
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     e  Ljava/util/zip/ZipEntry;

  private static sun.tools.jar.Main$ZipFileModuleInfoEntry lambda$10(java.util.zip.ZipFile, java.util.zip.ZipEntry);
    descriptor: (Ljava/util/zip/ZipFile;Ljava/util/zip/ZipEntry;)Lsun/tools/jar/Main$ZipFileModuleInfoEntry;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=2, args_size=2
        start local 1 // java.util.zip.ZipEntry e
         0: .line 1799
            new sun.tools.jar.Main$ZipFileModuleInfoEntry
            dup
            aload 0
            aload 1 /* e */
            invokespecial sun.tools.jar.Main$ZipFileModuleInfoEntry.<init>:(Ljava/util/zip/ZipFile;Ljava/util/zip/ZipEntry;)V
            areturn
        end local 1 // java.util.zip.ZipEntry e
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1     e  Ljava/util/zip/ZipEntry;

  private static sun.tools.jar.Main$ZipFileModuleInfoEntry[] lambda$11(int);
    descriptor: (I)[Lsun/tools/jar/Main$ZipFileModuleInfoEntry;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            iload 0
            anewarray sun.tools.jar.Main$ZipFileModuleInfoEntry
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static sun.tools.jar.Main$ModuleInfoEntry[] lambda$13(int);
    descriptor: (I)[Lsun/tools/jar/Main$ModuleInfoEntry;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            iload 0
            anewarray sun.tools.jar.Main$ModuleInfoEntry
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static boolean lambda$14(sun.tools.jar.Main$ModuleInfoEntry);
    descriptor: (Lsun/tools/jar/Main$ModuleInfoEntry;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.tools.jar.Main$ModuleInfoEntry e
         0: .line 1885
            aload 0 /* e */
            invokeinterface sun.tools.jar.Main$ModuleInfoEntry.name:()Ljava/lang/String;
            ldc "module-info.class"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // sun.tools.jar.Main$ModuleInfoEntry e
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     e  Lsun/tools/jar/Main$ModuleInfoEntry;

  private static java.lang.String lambda$17(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/String;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Object e
         0: .line 1928
            aload 0 /* e */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            getstatic java.util.Locale.ROOT:Ljava/util/Locale;
            invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
            areturn
        end local 0 // java.lang.Object e
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     e  TT;

  private static java.lang.String lambda$18(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/String;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Object e
         0: .line 1934
            aload 0 /* e */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            areturn
        end local 0 // java.lang.Object e
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     e  TT;

  private static boolean lambda$20(java.lang.module.ModuleDescriptor$Exports);
    descriptor: (Ljava/lang/module/ModuleDescriptor$Exports;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.module.ModuleDescriptor$Exports e
         0: .line 1969
            aload 0 /* e */
            invokevirtual java.lang.module.ModuleDescriptor$Exports.isQualified:()Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // java.lang.module.ModuleDescriptor$Exports e
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     e  Ljava/lang/module/ModuleDescriptor$Exports;

  private static void lambda$21(java.lang.StringBuilder, java.lang.module.ModuleDescriptor$Exports);
    descriptor: (Ljava/lang/StringBuilder;Ljava/lang/module/ModuleDescriptor$Exports;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.module.ModuleDescriptor$Exports e
         0: .line 1970
            aload 0
            ldc "exports "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* e */
            invokevirtual java.lang.module.ModuleDescriptor$Exports.source:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         1: .line 1971
            aload 1 /* e */
            invokevirtual java.lang.module.ModuleDescriptor$Exports.modifiers:()Ljava/util/Set;
            invokestatic sun.tools.jar.Main.toLowerCaseString:(Ljava/util/Collection;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 1972
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            return
        end local 1 // java.lang.module.ModuleDescriptor$Exports e
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     1     e  Ljava/lang/module/ModuleDescriptor$Exports;

  private static void lambda$22(java.lang.StringBuilder, java.lang.module.ModuleDescriptor$Requires);
    descriptor: (Ljava/lang/StringBuilder;Ljava/lang/module/ModuleDescriptor$Requires;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.module.ModuleDescriptor$Requires r
         0: .line 1976
            aload 0
            ldc "requires "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* r */
            invokevirtual java.lang.module.ModuleDescriptor$Requires.name:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         1: .line 1977
            aload 1 /* r */
            invokevirtual java.lang.module.ModuleDescriptor$Requires.modifiers:()Ljava/util/Set;
            invokestatic sun.tools.jar.Main.toLowerCaseString:(Ljava/util/Collection;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 1978
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            return
        end local 1 // java.lang.module.ModuleDescriptor$Requires r
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     1     r  Ljava/lang/module/ModuleDescriptor$Requires;

  private static void lambda$23(java.lang.StringBuilder, java.lang.String);
    descriptor: (Ljava/lang/StringBuilder;Ljava/lang/String;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.String s
         0: .line 1982
            aload 0
            ldc "uses "
            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;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            return
        end local 1 // java.lang.String s
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1     s  Ljava/lang/String;

  private static void lambda$25(java.lang.StringBuilder, java.lang.module.ModuleDescriptor$Provides);
    descriptor: (Ljava/lang/StringBuilder;Ljava/lang/module/ModuleDescriptor$Provides;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.module.ModuleDescriptor$Provides p
         0: .line 1986
            aload 0
            ldc "provides "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* p */
            invokevirtual java.lang.module.ModuleDescriptor$Provides.service:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         1: .line 1987
            ldc " with"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 1988
            aload 1 /* p */
            invokevirtual java.lang.module.ModuleDescriptor$Provides.providers:()Ljava/util/List;
            invokestatic sun.tools.jar.Main.toString:(Ljava/util/Collection;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 1989
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            return
        end local 1 // java.lang.module.ModuleDescriptor$Provides p
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     1     p  Ljava/lang/module/ModuleDescriptor$Provides;

  private static void lambda$28(java.lang.StringBuilder, java.lang.module.ModuleDescriptor$Exports);
    descriptor: (Ljava/lang/StringBuilder;Ljava/lang/module/ModuleDescriptor$Exports;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.module.ModuleDescriptor$Exports e
         0: .line 1995
            aload 0
            ldc "qualified exports "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* e */
            invokevirtual java.lang.module.ModuleDescriptor$Exports.source:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         1: .line 1996
            ldc " to"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* e */
            invokevirtual java.lang.module.ModuleDescriptor$Exports.targets:()Ljava/util/Set;
            invokestatic sun.tools.jar.Main.toLowerCaseString:(Ljava/util/Collection;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 1997
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            return
        end local 1 // java.lang.module.ModuleDescriptor$Exports e
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     1     e  Ljava/lang/module/ModuleDescriptor$Exports;

  private static boolean lambda$30(java.lang.module.ModuleDescriptor$Opens);
    descriptor: (Ljava/lang/module/ModuleDescriptor$Opens;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.module.ModuleDescriptor$Opens o
         0: .line 2002
            aload 0 /* o */
            invokevirtual java.lang.module.ModuleDescriptor$Opens.isQualified:()Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // java.lang.module.ModuleDescriptor$Opens o
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     o  Ljava/lang/module/ModuleDescriptor$Opens;

  private static void lambda$31(java.lang.StringBuilder, java.lang.module.ModuleDescriptor$Opens);
    descriptor: (Ljava/lang/StringBuilder;Ljava/lang/module/ModuleDescriptor$Opens;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.module.ModuleDescriptor$Opens o
         0: .line 2003
            aload 0
            ldc "opens "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* o */
            invokevirtual java.lang.module.ModuleDescriptor$Opens.source:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         1: .line 2004
            aload 1 /* o */
            invokevirtual java.lang.module.ModuleDescriptor$Opens.modifiers:()Ljava/util/Set;
            invokestatic sun.tools.jar.Main.toLowerCaseString:(Ljava/util/Collection;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 2005
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            return
        end local 1 // java.lang.module.ModuleDescriptor$Opens o
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     1     o  Ljava/lang/module/ModuleDescriptor$Opens;

  private static void lambda$34(java.lang.StringBuilder, java.lang.module.ModuleDescriptor$Opens);
    descriptor: (Ljava/lang/StringBuilder;Ljava/lang/module/ModuleDescriptor$Opens;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.module.ModuleDescriptor$Opens o
         0: .line 2010
            aload 0
            ldc "qualified opens "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* o */
            invokevirtual java.lang.module.ModuleDescriptor$Opens.source:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         1: .line 2011
            aload 1 /* o */
            invokevirtual java.lang.module.ModuleDescriptor$Opens.modifiers:()Ljava/util/Set;
            invokestatic sun.tools.jar.Main.toLowerCaseString:(Ljava/util/Collection;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 2012
            ldc " to"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* o */
            invokevirtual java.lang.module.ModuleDescriptor$Opens.targets:()Ljava/util/Set;
            invokestatic sun.tools.jar.Main.toLowerCaseString:(Ljava/util/Collection;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 2013
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            return
        end local 1 // java.lang.module.ModuleDescriptor$Opens o
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     1     o  Ljava/lang/module/ModuleDescriptor$Opens;

  private static void lambda$39(java.lang.StringBuilder, java.lang.String);
    descriptor: (Ljava/lang/StringBuilder;Ljava/lang/String;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.String p
         0: .line 2019
            aload 0
            ldc "contains "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* p */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            return
        end local 1 // java.lang.String p
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1     p  Ljava/lang/String;

  private static void lambda$40(java.lang.StringBuilder, java.lang.String);
    descriptor: (Ljava/lang/StringBuilder;Ljava/lang/String;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.String v
         0: .line 2021
            aload 0
            ldc "main-class "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* v */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            return
        end local 1 // java.lang.String v
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1     v  Ljava/lang/String;

  private static void lambda$41(java.lang.StringBuilder, jdk.internal.module.ModuleHashes, java.lang.String);
    descriptor: (Ljava/lang/StringBuilder;Ljdk/internal/module/ModuleHashes;Ljava/lang/String;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 2 // java.lang.String mod
         0: .line 2031
            aload 0
            ldc "hashes "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* mod */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         1: .line 2032
            aload 1
            invokevirtual jdk.internal.module.ModuleHashes.algorithm:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 2033
            aload 1
            aload 2 /* mod */
            invokevirtual jdk.internal.module.ModuleHashes.hashFor:(Ljava/lang/String;)[B
            invokestatic sun.tools.jar.Main.toHex:([B)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 2034
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            return
        end local 2 // java.lang.String mod
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     2   mod  Ljava/lang/String;

  private static boolean lambda$44(java.util.Set, java.lang.String);
    descriptor: (Ljava/util/Set;Ljava/lang/String;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.String p
         0: .line 2062
            aload 0
            aload 1 /* p */
            invokestatic sun.tools.jar.Main.toBinaryName:(Ljava/lang/String;)Ljava/lang/String;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 1 // java.lang.String p
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     1     p  Ljava/lang/String;

  private void lambda$45(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.tools.jar.Main this
        start local 1 // java.lang.String p
         0: .line 2063
            aload 0 /* this */
            ldc "error.missing.provider"
            aload 1 /* p */
            invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual sun.tools.jar.Main.fatalError:(Ljava/lang/String;)V
            return
        end local 1 // java.lang.String p
        end local 0 // sun.tools.jar.Main this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/tools/jar/Main;
            0    1     1     p  Ljava/lang/String;
}
SourceFile: "Main.java"
NestMembers:
  sun.tools.jar.Main$1  sun.tools.jar.Main$CRC32OutputStream  sun.tools.jar.Main$Entry  sun.tools.jar.Main$Hasher  sun.tools.jar.Main$Hasher$1  sun.tools.jar.Main$Hasher$2  sun.tools.jar.Main$ModuleInfoEntry  sun.tools.jar.Main$StreamedModuleInfoEntry  sun.tools.jar.Main$ZipFileModuleInfoEntry
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public final Exports = java.lang.module.ModuleDescriptor$Exports of java.lang.module.ModuleDescriptor
  public final Modifier = java.lang.module.ModuleDescriptor$Exports$Modifier of java.lang.module.ModuleDescriptor$Exports
  public final Opens = java.lang.module.ModuleDescriptor$Opens of java.lang.module.ModuleDescriptor
  public final Modifier = java.lang.module.ModuleDescriptor$Opens$Modifier of java.lang.module.ModuleDescriptor$Opens
  public final Provides = java.lang.module.ModuleDescriptor$Provides of java.lang.module.ModuleDescriptor
  public final Requires = java.lang.module.ModuleDescriptor$Requires of java.lang.module.ModuleDescriptor
  public final Modifier = java.lang.module.ModuleDescriptor$Requires$Modifier of java.lang.module.ModuleDescriptor$Requires
  public final Version = java.lang.module.ModuleDescriptor$Version of java.lang.module.ModuleDescriptor
  public abstract Entry = java.util.Map$Entry of java.util.Map
  public Name = java.util.jar.Attributes$Name of java.util.jar.Attributes
  public abstract Packer = java.util.jar.Pack200$Packer of java.util.jar.Pack200
  public abstract Unpacker = java.util.jar.Pack200$Unpacker of java.util.jar.Pack200
  public final Attributes = jdk.internal.module.ModuleInfo$Attributes of jdk.internal.module.ModuleInfo
  BadArgs = sun.tools.jar.GNUStyleOptions$BadArgs of sun.tools.jar.GNUStyleOptions
  sun.tools.jar.Main$1
  private CRC32OutputStream = sun.tools.jar.Main$CRC32OutputStream of sun.tools.jar.Main
  private Entry = sun.tools.jar.Main$Entry of sun.tools.jar.Main
  private Hasher = sun.tools.jar.Main$Hasher of sun.tools.jar.Main
  abstract ModuleInfoEntry = sun.tools.jar.Main$ModuleInfoEntry of sun.tools.jar.Main
  StreamedModuleInfoEntry = sun.tools.jar.Main$StreamedModuleInfoEntry of sun.tools.jar.Main
  ZipFileModuleInfoEntry = sun.tools.jar.Main$ZipFileModuleInfoEntry of sun.tools.jar.Main
  InvalidJarException = sun.tools.jar.Validator$InvalidJarException of sun.tools.jar.Validator