public final class jdk.internal.module.ModuleBootstrap
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: jdk.internal.module.ModuleBootstrap
  super_class: java.lang.Object
{
  private static final java.lang.String JAVA_BASE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "java.base"

  private static final java.lang.String ALL_DEFAULT;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "ALL-DEFAULT"

  private static final java.lang.String ALL_UNNAMED;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "ALL-UNNAMED"

  private static final java.lang.String ALL_SYSTEM;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "ALL-SYSTEM"

  private static final java.lang.String ALL_MODULE_PATH;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "ALL-MODULE-PATH"

  private static final jdk.internal.access.JavaLangModuleAccess JLMA;
    descriptor: Ljdk/internal/access/JavaLangModuleAccess;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final jdk.internal.module.ModulePatcher patcher;
    descriptor: Ljdk/internal/module/ModulePatcher;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static volatile java.lang.module.ModuleFinder unlimitedFinder;
    descriptor: Ljava/lang/module/ModuleFinder;
    flags: (0x004a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE

  private static volatile java.lang.module.ModuleFinder limitedFinder;
    descriptor: Ljava/lang/module/ModuleFinder;
    flags: (0x004a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE

  private static final java.lang.String ADD_MODULES;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "--add-modules"

  private static final java.lang.String ADD_EXPORTS;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "--add-exports"

  private static final java.lang.String ADD_OPENS;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "--add-opens"

  private static final java.lang.String ADD_READS;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "--add-reads"

  private static final java.lang.String PATCH_MODULE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "--patch-module"

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 90
            invokestatic jdk.internal.access.SharedSecrets.getJavaLangModuleAccess:()Ljdk/internal/access/JavaLangModuleAccess;
         1: .line 89
            putstatic jdk.internal.module.ModuleBootstrap.JLMA:Ljdk/internal/access/JavaLangModuleAccess;
         2: .line 93
            invokestatic jdk.internal.module.ModuleBootstrap.initModulePatcher:()Ljdk/internal/module/ModulePatcher;
            putstatic jdk.internal.module.ModuleBootstrap.patcher:Ljdk/internal/module/ModulePatcher;
         3: .line 960
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.internal.module.ModuleBootstrap this
         0: .line 72
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // jdk.internal.module.ModuleBootstrap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/module/ModuleBootstrap;

  public static jdk.internal.module.ModulePatcher patcher();
    descriptor: ()Ljdk/internal/module/ModulePatcher;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 99
            getstatic jdk.internal.module.ModuleBootstrap.patcher:Ljdk/internal/module/ModulePatcher;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static java.lang.module.ModuleFinder unlimitedFinder();
    descriptor: ()Ljava/lang/module/ModuleFinder;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=0
         0: .line 114
            getstatic jdk.internal.module.ModuleBootstrap.unlimitedFinder:Ljava/lang/module/ModuleFinder;
            astore 0 /* finder */
        start local 0 // java.lang.module.ModuleFinder finder
         1: .line 115
            aload 0 /* finder */
            ifnonnull 3
         2: .line 116
            invokestatic java.lang.module.ModuleFinder.ofSystem:()Ljava/lang/module/ModuleFinder;
            areturn
         3: .line 118
      StackMap locals: java.lang.module.ModuleFinder
      StackMap stack:
            aload 0 /* finder */
            areturn
        end local 0 // java.lang.module.ModuleFinder finder
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            1    4     0  finder  Ljava/lang/module/ModuleFinder;

  public static java.lang.module.ModuleFinder limitedFinder();
    descriptor: ()Ljava/lang/module/ModuleFinder;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=0
         0: .line 128
            getstatic jdk.internal.module.ModuleBootstrap.limitedFinder:Ljava/lang/module/ModuleFinder;
            astore 0 /* finder */
        start local 0 // java.lang.module.ModuleFinder finder
         1: .line 129
            aload 0 /* finder */
            ifnonnull 3
         2: .line 130
            invokestatic jdk.internal.module.ModuleBootstrap.unlimitedFinder:()Ljava/lang/module/ModuleFinder;
            areturn
         3: .line 132
      StackMap locals: java.lang.module.ModuleFinder
      StackMap stack:
            aload 0 /* finder */
            areturn
        end local 0 // java.lang.module.ModuleFinder finder
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            1    4     0  finder  Ljava/lang/module/ModuleFinder;

  public static java.lang.ModuleLayer boot();
    descriptor: ()Ljava/lang/ModuleLayer;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=9, locals=28, args_size=0
         0: .line 143
            invokestatic jdk.internal.module.ModuleBootstrap$Counters.start:()V
         1: .line 147
            ldc "jdk.module.upgrade.path"
            invokestatic jdk.internal.module.ModuleBootstrap.finderFor:(Ljava/lang/String;)Ljava/lang/module/ModuleFinder;
            astore 0 /* upgradeModulePath */
        start local 0 // java.lang.module.ModuleFinder upgradeModulePath
         2: .line 148
            ldc "jdk.module.path"
            invokestatic jdk.internal.module.ModuleBootstrap.finderFor:(Ljava/lang/String;)Ljava/lang/module/ModuleFinder;
            astore 1 /* appModulePath */
        start local 1 // java.lang.module.ModuleFinder appModulePath
         3: .line 149
            getstatic jdk.internal.module.ModuleBootstrap.patcher:Ljdk/internal/module/ModulePatcher;
            invokevirtual jdk.internal.module.ModulePatcher.hasPatches:()Z
            istore 2 /* isPatched */
        start local 2 // boolean isPatched
         4: .line 151
            ldc "jdk.module.main"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* mainModule */
        start local 3 // java.lang.String mainModule
         5: .line 152
            invokestatic jdk.internal.module.ModuleBootstrap.addModules:()Ljava/util/Set;
            astore 4 /* addModules */
        start local 4 // java.util.Set addModules
         6: .line 153
            invokestatic jdk.internal.module.ModuleBootstrap.limitModules:()Ljava/util/Set;
            astore 5 /* limitModules */
        start local 5 // java.util.Set limitModules
         7: .line 155
            aconst_null
            astore 6 /* traceOutput */
        start local 6 // java.io.PrintStream traceOutput
         8: .line 156
            ldc "jdk.module.showModuleResolution"
            invokestatic jdk.internal.module.ModuleBootstrap.getAndRemoveProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 7 /* trace */
        start local 7 // java.lang.String trace
         9: .line 157
            aload 7 /* trace */
            ifnull 11
            aload 7 /* trace */
            invokestatic java.lang.Boolean.parseBoolean:(Ljava/lang/String;)Z
            ifeq 11
        10: .line 158
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            astore 6 /* traceOutput */
        11: .line 160
      StackMap locals: java.lang.module.ModuleFinder java.lang.module.ModuleFinder int java.lang.String java.util.Set java.util.Set java.io.PrintStream java.lang.String
      StackMap stack:
            ldc "jdk.module.boot.0.commandLineTime"
            invokestatic jdk.internal.module.ModuleBootstrap$Counters.add:(Ljava/lang/String;)V
        12: .line 168
            aconst_null
            astore 8 /* systemModules */
        start local 8 // jdk.internal.module.SystemModules systemModules
        13: .line 171
            aload 1 /* appModulePath */
            ifnonnull 14
            aload 0 /* upgradeModulePath */
            ifnonnull 14
            iconst_0
            goto 15
      StackMap locals: jdk.internal.module.SystemModules
      StackMap stack:
        14: iconst_1
      StackMap locals:
      StackMap stack: int
        15: istore 10 /* haveModulePath */
        start local 10 // boolean haveModulePath
        16: .line 172
            iconst_1
            istore 11 /* needResolution */
        start local 11 // boolean needResolution
        17: .line 173
            iconst_0
            istore 12 /* canArchive */
        start local 12 // boolean canArchive
        18: .line 180
            aload 3 /* mainModule */
            invokestatic jdk.internal.module.ArchivedModuleGraph.get:(Ljava/lang/String;)Ljdk/internal/module/ArchivedModuleGraph;
            astore 15 /* archivedModuleGraph */
        start local 15 // jdk.internal.module.ArchivedModuleGraph archivedModuleGraph
        19: .line 181
            aload 15 /* archivedModuleGraph */
            ifnull 31
        20: .line 182
            iload 10 /* haveModulePath */
            ifne 31
        21: .line 183
            aload 4 /* addModules */
            invokeinterface java.util.Set.isEmpty:()Z
            ifeq 31
        22: .line 184
            aload 5 /* limitModules */
            invokeinterface java.util.Set.isEmpty:()Z
            ifeq 31
        23: .line 185
            iload 2 /* isPatched */
            ifne 31
        24: .line 186
            aload 15 /* archivedModuleGraph */
            invokevirtual jdk.internal.module.ArchivedModuleGraph.finder:()Ljava/lang/module/ModuleFinder;
            astore 9 /* systemModuleFinder */
        start local 9 // java.lang.module.ModuleFinder systemModuleFinder
        25: .line 187
            aload 15 /* archivedModuleGraph */
            invokevirtual jdk.internal.module.ArchivedModuleGraph.hasSplitPackages:()Z
            istore 13 /* hasSplitPackages */
        start local 13 // boolean hasSplitPackages
        26: .line 188
            aload 15 /* archivedModuleGraph */
            invokevirtual jdk.internal.module.ArchivedModuleGraph.hasIncubatorModules:()Z
            istore 14 /* hasIncubatorModules */
        start local 14 // boolean hasIncubatorModules
        27: .line 189
            aload 6 /* traceOutput */
            ifnull 28
            iconst_1
            goto 29
      StackMap locals: java.lang.module.ModuleFinder java.lang.module.ModuleFinder int java.lang.String java.util.Set java.util.Set java.io.PrintStream java.lang.String jdk.internal.module.SystemModules java.lang.module.ModuleFinder int int int int int jdk.internal.module.ArchivedModuleGraph
      StackMap stack:
        28: iconst_0
      StackMap locals:
      StackMap stack: int
        29: istore 11 /* needResolution */
        30: .line 190
            goto 48
        end local 14 // boolean hasIncubatorModules
        end local 13 // boolean hasSplitPackages
        end local 9 // java.lang.module.ModuleFinder systemModuleFinder
        31: .line 191
      StackMap locals: java.lang.module.ModuleFinder java.lang.module.ModuleFinder int java.lang.String java.util.Set java.util.Set java.io.PrintStream java.lang.String jdk.internal.module.SystemModules top int int int top top jdk.internal.module.ArchivedModuleGraph
      StackMap stack:
            iload 10 /* haveModulePath */
            ifne 38
            aload 4 /* addModules */
            invokeinterface java.util.Set.isEmpty:()Z
            ifeq 38
            aload 5 /* limitModules */
            invokeinterface java.util.Set.isEmpty:()Z
            ifeq 38
        32: .line 192
            aload 3 /* mainModule */
            invokestatic jdk.internal.module.SystemModuleFinders.systemModules:(Ljava/lang/String;)Ljdk/internal/module/SystemModules;
            astore 8 /* systemModules */
        33: .line 193
            aload 8 /* systemModules */
            ifnull 38
            iload 2 /* isPatched */
            ifne 38
        34: .line 194
            aload 6 /* traceOutput */
            ifnull 35
            iconst_1
            goto 36
      StackMap locals:
      StackMap stack:
        35: iconst_0
      StackMap locals:
      StackMap stack: int
        36: istore 11 /* needResolution */
        37: .line 195
            iconst_1
            istore 12 /* canArchive */
        38: .line 198
      StackMap locals:
      StackMap stack:
            aload 8 /* systemModules */
            ifnonnull 40
        39: .line 200
            invokestatic jdk.internal.module.SystemModuleFinders.allSystemModules:()Ljdk/internal/module/SystemModules;
            astore 8 /* systemModules */
        40: .line 202
      StackMap locals:
      StackMap stack:
            aload 8 /* systemModules */
            ifnull 43
        41: .line 204
            aload 8 /* systemModules */
            invokestatic jdk.internal.module.SystemModuleFinders.of:(Ljdk/internal/module/SystemModules;)Ljava/lang/module/ModuleFinder;
            astore 9 /* systemModuleFinder */
        start local 9 // java.lang.module.ModuleFinder systemModuleFinder
        42: .line 205
            goto 45
        end local 9 // java.lang.module.ModuleFinder systemModuleFinder
        43: .line 207
      StackMap locals:
      StackMap stack:
            new jdk.internal.module.ExplodedSystemModules
            dup
            invokespecial jdk.internal.module.ExplodedSystemModules.<init>:()V
            astore 8 /* systemModules */
        44: .line 208
            invokestatic jdk.internal.module.SystemModuleFinders.ofSystem:()Ljava/lang/module/ModuleFinder;
            astore 9 /* systemModuleFinder */
        start local 9 // java.lang.module.ModuleFinder systemModuleFinder
        45: .line 211
      StackMap locals: java.lang.module.ModuleFinder java.lang.module.ModuleFinder int java.lang.String java.util.Set java.util.Set java.io.PrintStream java.lang.String jdk.internal.module.SystemModules java.lang.module.ModuleFinder int int int top top jdk.internal.module.ArchivedModuleGraph
      StackMap stack:
            aload 8 /* systemModules */
            invokeinterface jdk.internal.module.SystemModules.hasSplitPackages:()Z
            istore 13 /* hasSplitPackages */
        start local 13 // boolean hasSplitPackages
        46: .line 212
            aload 8 /* systemModules */
            invokeinterface jdk.internal.module.SystemModules.hasIncubatorModules:()Z
            istore 14 /* hasIncubatorModules */
        start local 14 // boolean hasIncubatorModules
        47: .line 214
            aconst_null
            astore 15 /* archivedModuleGraph */
        48: .line 217
      StackMap locals: java.lang.module.ModuleFinder java.lang.module.ModuleFinder int java.lang.String java.util.Set java.util.Set java.io.PrintStream java.lang.String jdk.internal.module.SystemModules java.lang.module.ModuleFinder int int int int int jdk.internal.module.ArchivedModuleGraph
      StackMap stack:
            ldc "jdk.module.boot.1.systemModulesTime"
            invokestatic jdk.internal.module.ModuleBootstrap$Counters.add:(Ljava/lang/String;)V
        49: .line 224
            aload 9 /* systemModuleFinder */
            ldc "java.base"
            invokeinterface java.lang.module.ModuleFinder.find:(Ljava/lang/String;)Ljava/util/Optional;
            aconst_null
            invokevirtual java.util.Optional.orElse:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.module.ModuleReference
            astore 16 /* base */
        start local 16 // java.lang.module.ModuleReference base
        50: .line 225
            aload 16 /* base */
            ifnonnull 52
        51: .line 226
            new java.lang.InternalError
            dup
            ldc "java.base not found"
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
            athrow
        52: .line 227
      StackMap locals: java.lang.module.ModuleReference
      StackMap stack:
            aload 16 /* base */
            invokevirtual java.lang.module.ModuleReference.location:()Ljava/util/Optional;
            aconst_null
            invokevirtual java.util.Optional.orElse:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.net.URI
            astore 17 /* baseUri */
        start local 17 // java.net.URI baseUri
        53: .line 228
            aload 17 /* baseUri */
            ifnonnull 55
        54: .line 229
            new java.lang.InternalError
            dup
            ldc "java.base does not have a location"
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
            athrow
        55: .line 230
      StackMap locals: java.net.URI
      StackMap stack:
            aload 16 /* base */
            invokestatic jdk.internal.loader.BootLoader.loadModule:(Ljava/lang/module/ModuleReference;)V
        56: .line 231
            aconst_null
            aload 16 /* base */
            invokevirtual java.lang.module.ModuleReference.descriptor:()Ljava/lang/module/ModuleDescriptor;
            aload 17 /* baseUri */
            invokestatic jdk.internal.module.Modules.defineModule:(Ljava/lang/ClassLoader;Ljava/lang/module/ModuleDescriptor;Ljava/net/URI;)Ljava/lang/Module;
            pop
        57: .line 235
            ldc "jdk.module.validation"
            invokestatic jdk.internal.module.ModuleBootstrap.getAndRemoveProperty:(Ljava/lang/String;)Ljava/lang/String;
            ifnull 61
        58: .line 236
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokestatic jdk.internal.module.ModulePathValidator.scanAllModules:(Ljava/io/PrintStream;)I
            istore 18 /* errors */
        start local 18 // int errors
        59: .line 237
            iload 18 /* errors */
            ifle 61
        60: .line 238
            ldc "Validation of module path failed"
            invokestatic jdk.internal.module.ModuleBootstrap.fail:(Ljava/lang/String;)V
        end local 18 // int errors
        61: .line 242
      StackMap locals:
      StackMap stack:
            ldc "jdk.module.boot.2.defineBaseTime"
            invokestatic jdk.internal.module.ModuleBootstrap$Counters.add:(Ljava/lang/String;)V
        62: .line 247
            aconst_null
            astore 18 /* savedModuleFinder */
        start local 18 // java.lang.module.ModuleFinder savedModuleFinder
        63: .line 250
            iload 11 /* needResolution */
            ifeq 114
        64: .line 253
            aload 0 /* upgradeModulePath */
            ifnull 68
        65: .line 254
            iconst_2
            anewarray java.lang.module.ModuleFinder
            dup
            iconst_0
            aload 0 /* upgradeModulePath */
            aastore
            dup
            iconst_1
        66: .line 255
            aload 9 /* systemModuleFinder */
            aastore
        67: .line 254
            invokestatic java.lang.module.ModuleFinder.compose:([Ljava/lang/module/ModuleFinder;)Ljava/lang/module/ModuleFinder;
            astore 9 /* systemModuleFinder */
        68: .line 258
      StackMap locals: java.lang.module.ModuleFinder
      StackMap stack:
            aload 1 /* appModulePath */
            ifnull 71
        69: .line 259
            iconst_2
            anewarray java.lang.module.ModuleFinder
            dup
            iconst_0
            aload 9 /* systemModuleFinder */
            aastore
            dup
            iconst_1
            aload 1 /* appModulePath */
            aastore
            invokestatic java.lang.module.ModuleFinder.compose:([Ljava/lang/module/ModuleFinder;)Ljava/lang/module/ModuleFinder;
            astore 19 /* finder */
        start local 19 // java.lang.module.ModuleFinder finder
        70: .line 260
            goto 72
        end local 19 // java.lang.module.ModuleFinder finder
        71: .line 261
      StackMap locals:
      StackMap stack:
            aload 9 /* systemModuleFinder */
            astore 19 /* finder */
        start local 19 // java.lang.module.ModuleFinder finder
        72: .line 265
      StackMap locals: java.lang.module.ModuleFinder
      StackMap stack:
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 20 /* roots */
        start local 20 // java.util.Set roots
        73: .line 268
            aload 3 /* mainModule */
            ifnull 75
        74: .line 269
            aload 20 /* roots */
            aload 3 /* mainModule */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        75: .line 272
      StackMap locals: java.util.Set
      StackMap stack:
            iconst_0
            istore 21 /* addAllDefaultModules */
        start local 21 // boolean addAllDefaultModules
        76: .line 273
            iconst_0
            istore 22 /* addAllSystemModules */
        start local 22 // boolean addAllSystemModules
        77: .line 274
            iconst_0
            istore 23 /* addAllApplicationModules */
        start local 23 // boolean addAllApplicationModules
        78: .line 275
            aload 4 /* addModules */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 25
            goto 91
      StackMap locals: java.lang.module.ModuleFinder java.lang.module.ModuleFinder int java.lang.String java.util.Set java.util.Set java.io.PrintStream java.lang.String jdk.internal.module.SystemModules java.lang.module.ModuleFinder int int int int int jdk.internal.module.ArchivedModuleGraph java.lang.module.ModuleReference java.net.URI java.lang.module.ModuleFinder java.lang.module.ModuleFinder java.util.Set int int int top java.util.Iterator
      StackMap stack:
        79: aload 25
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 24 /* mod */
        start local 24 // java.lang.String mod
        80: .line 276
            aload 24 /* mod */
            dup
            astore 26
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 3
          -1057501189: 81
            564408789: 82
           1070226586: 83
              default: 90
          }
      StackMap locals: java.lang.module.ModuleFinder java.lang.module.ModuleFinder int java.lang.String java.util.Set java.util.Set java.io.PrintStream java.lang.String jdk.internal.module.SystemModules java.lang.module.ModuleFinder int int int int int jdk.internal.module.ArchivedModuleGraph java.lang.module.ModuleReference java.net.URI java.lang.module.ModuleFinder java.lang.module.ModuleFinder java.util.Set int int int java.lang.String java.util.Iterator java.lang.String
      StackMap stack:
        81: aload 26
            ldc "ALL-SYSTEM"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 86
            goto 90
      StackMap locals:
      StackMap stack:
        82: aload 26
            ldc "ALL-DEFAULT"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 84
            goto 90
      StackMap locals:
      StackMap stack:
        83: aload 26
            ldc "ALL-MODULE-PATH"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 88
            goto 90
        84: .line 278
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 21 /* addAllDefaultModules */
        85: .line 279
            goto 91
        86: .line 281
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 22 /* addAllSystemModules */
        87: .line 282
            goto 91
        88: .line 284
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 23 /* addAllApplicationModules */
        89: .line 285
            goto 91
        90: .line 287
      StackMap locals:
      StackMap stack:
            aload 20 /* roots */
            aload 24 /* mod */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 24 // java.lang.String mod
        91: .line 275
      StackMap locals: java.lang.module.ModuleFinder java.lang.module.ModuleFinder int java.lang.String java.util.Set java.util.Set java.io.PrintStream java.lang.String jdk.internal.module.SystemModules java.lang.module.ModuleFinder int int int int int jdk.internal.module.ArchivedModuleGraph java.lang.module.ModuleReference java.net.URI java.lang.module.ModuleFinder java.lang.module.ModuleFinder java.util.Set int int int top java.util.Iterator
      StackMap stack:
            aload 25
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 79
        92: .line 292
            aload 19 /* finder */
            astore 18 /* savedModuleFinder */
        93: .line 293
            aload 5 /* limitModules */
            invokeinterface java.util.Set.isEmpty:()Z
            ifne 95
        94: .line 294
            aload 19 /* finder */
            aload 5 /* limitModules */
            aload 20 /* roots */
            invokestatic jdk.internal.module.ModuleBootstrap.limitFinder:(Ljava/lang/module/ModuleFinder;Ljava/util/Set;Ljava/util/Set;)Ljava/lang/module/ModuleFinder;
            astore 19 /* finder */
        95: .line 303
      StackMap locals: java.lang.module.ModuleFinder java.lang.module.ModuleFinder int java.lang.String java.util.Set java.util.Set java.io.PrintStream java.lang.String jdk.internal.module.SystemModules java.lang.module.ModuleFinder int int int int int jdk.internal.module.ArchivedModuleGraph java.lang.module.ModuleReference java.net.URI java.lang.module.ModuleFinder java.lang.module.ModuleFinder java.util.Set int int int
      StackMap stack:
            aload 3 /* mainModule */
            ifnull 96
            iload 21 /* addAllDefaultModules */
            ifeq 97
        96: .line 304
      StackMap locals:
      StackMap stack:
            aload 20 /* roots */
            aload 9 /* systemModuleFinder */
            aload 19 /* finder */
            invokestatic jdk.internal.module.DefaultRoots.compute:(Ljava/lang/module/ModuleFinder;Ljava/lang/module/ModuleFinder;)Ljava/util/Set;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
        97: .line 309
      StackMap locals:
      StackMap stack:
            iload 22 /* addAllSystemModules */
            ifeq 105
        98: .line 310
            aload 19 /* finder */
            astore 24 /* f */
        start local 24 // java.lang.module.ModuleFinder f
        99: .line 311
            aload 9 /* systemModuleFinder */
            invokeinterface java.lang.module.ModuleFinder.findAll:()Ljava/util/Set;
       100: .line 312
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
       101: .line 313
            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/ModuleReference.descriptor()Ljava/lang/module/ModuleDescriptor; (5)
                  (Ljava/lang/module/ModuleReference;)Ljava/lang/module/ModuleDescriptor;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
       102: .line 314
            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.name()Ljava/lang/String; (5)
                  (Ljava/lang/module/ModuleDescriptor;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
       103: .line 315
            aload 24 /* f */
            invokedynamic test(Ljava/lang/module/ModuleFinder;)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
                  jdk/internal/module/ModuleBootstrap.lambda$2(Ljava/lang/module/ModuleFinder;Ljava/lang/String;)Z (6)
                  (Ljava/lang/String;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
       104: .line 316
            aload 20 /* roots */
            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
                  jdk/internal/module/ModuleBootstrap.lambda$3(Ljava/util/Set;Ljava/lang/String;)V (6)
                  (Ljava/lang/String;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        end local 24 // java.lang.module.ModuleFinder f
       105: .line 321
      StackMap locals:
      StackMap stack:
            aload 1 /* appModulePath */
            ifnull 116
            iload 23 /* addAllApplicationModules */
            ifeq 116
       106: .line 322
            aload 19 /* finder */
            astore 24 /* f */
        start local 24 // java.lang.module.ModuleFinder f
       107: .line 323
            aload 1 /* appModulePath */
            invokeinterface java.lang.module.ModuleFinder.findAll:()Ljava/util/Set;
       108: .line 324
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
       109: .line 325
            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/ModuleReference.descriptor()Ljava/lang/module/ModuleDescriptor; (5)
                  (Ljava/lang/module/ModuleReference;)Ljava/lang/module/ModuleDescriptor;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
       110: .line 326
            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.name()Ljava/lang/String; (5)
                  (Ljava/lang/module/ModuleDescriptor;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
       111: .line 327
            aload 24 /* f */
            invokedynamic test(Ljava/lang/module/ModuleFinder;)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
                  jdk/internal/module/ModuleBootstrap.lambda$6(Ljava/lang/module/ModuleFinder;Ljava/lang/String;)Z (6)
                  (Ljava/lang/String;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
       112: .line 328
            aload 20 /* roots */
            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
                  jdk/internal/module/ModuleBootstrap.lambda$7(Ljava/util/Set;Ljava/lang/String;)V (6)
                  (Ljava/lang/String;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        end local 24 // java.lang.module.ModuleFinder f
        end local 23 // boolean addAllApplicationModules
        end local 22 // boolean addAllSystemModules
        end local 21 // boolean addAllDefaultModules
       113: .line 330
            goto 116
        end local 20 // java.util.Set roots
        end local 19 // java.lang.module.ModuleFinder finder
       114: .line 332
      StackMap locals: java.lang.module.ModuleFinder java.lang.module.ModuleFinder int java.lang.String java.util.Set java.util.Set java.io.PrintStream java.lang.String jdk.internal.module.SystemModules java.lang.module.ModuleFinder int int int int int jdk.internal.module.ArchivedModuleGraph java.lang.module.ModuleReference java.net.URI java.lang.module.ModuleFinder
      StackMap stack:
            aload 9 /* systemModuleFinder */
            astore 19 /* finder */
        start local 19 // java.lang.module.ModuleFinder finder
       115: .line 333
            aconst_null
            astore 20 /* roots */
        start local 20 // java.util.Set roots
       116: .line 336
      StackMap locals: java.lang.module.ModuleFinder java.util.Set
      StackMap stack:
            ldc "jdk.module.boot.3.optionsAndRootsTime"
            invokestatic jdk.internal.module.ModuleBootstrap$Counters.add:(Ljava/lang/String;)V
       117: .line 344
            iload 11 /* needResolution */
            ifeq 120
       118: .line 345
            aload 19 /* finder */
            aload 20 /* roots */
            aload 6 /* traceOutput */
            invokestatic jdk.internal.module.Modules.newBootLayerConfiguration:(Ljava/lang/module/ModuleFinder;Ljava/util/Collection;Ljava/io/PrintStream;)Ljava/lang/module/Configuration;
            astore 21 /* cf */
        start local 21 // java.lang.module.Configuration cf
       119: .line 346
            goto 125
        end local 21 // java.lang.module.Configuration cf
       120: .line 347
      StackMap locals:
      StackMap stack:
            aload 15 /* archivedModuleGraph */
            ifnull 123
       121: .line 348
            aload 15 /* archivedModuleGraph */
            invokevirtual jdk.internal.module.ArchivedModuleGraph.configuration:()Ljava/lang/module/Configuration;
            astore 21 /* cf */
        start local 21 // java.lang.module.Configuration cf
       122: .line 349
            goto 125
        end local 21 // java.lang.module.Configuration cf
       123: .line 350
      StackMap locals:
      StackMap stack:
            aload 8 /* systemModules */
            invokeinterface jdk.internal.module.SystemModules.moduleReads:()Ljava/util/Map;
            astore 22 /* map */
        start local 22 // java.util.Map map
       124: .line 351
            getstatic jdk.internal.module.ModuleBootstrap.JLMA:Ljdk/internal/access/JavaLangModuleAccess;
            aload 9 /* systemModuleFinder */
            aload 22 /* map */
            invokeinterface jdk.internal.access.JavaLangModuleAccess.newConfiguration:(Ljava/lang/module/ModuleFinder;Ljava/util/Map;)Ljava/lang/module/Configuration;
            astore 21 /* cf */
        end local 22 // java.util.Map map
        start local 21 // java.lang.module.Configuration cf
       125: .line 356
      StackMap locals: java.lang.module.Configuration
      StackMap stack:
            iload 2 /* isPatched */
            ifeq 130
       126: .line 357
            getstatic jdk.internal.module.ModuleBootstrap.patcher:Ljdk/internal/module/ModulePatcher;
            invokevirtual jdk.internal.module.ModulePatcher.patchedModules:()Ljava/util/Set;
       127: .line 358
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
       128: .line 359
            aload 21 /* cf */
            invokedynamic test(Ljava/lang/module/Configuration;)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
                  jdk/internal/module/ModuleBootstrap.lambda$8(Ljava/lang/module/Configuration;Ljava/lang/String;)Z (6)
                  (Ljava/lang/String;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
       129: .line 360
            invokedynamic accept()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
                  jdk/internal/module/ModuleBootstrap.lambda$9(Ljava/lang/String;)V (6)
                  (Ljava/lang/String;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
       130: .line 363
      StackMap locals:
      StackMap stack:
            ldc "jdk.module.boot.4.resolveTime"
            invokestatic jdk.internal.module.ModuleBootstrap$Counters.add:(Ljava/lang/String;)V
       131: .line 374
            aload 15 /* archivedModuleGraph */
            ifnull 134
       132: .line 375
            aload 15 /* archivedModuleGraph */
            invokevirtual jdk.internal.module.ArchivedModuleGraph.classLoaderFunction:()Ljava/util/function/Function;
            astore 22 /* clf */
        start local 22 // java.util.function.Function clf
       133: .line 376
            goto 135
        end local 22 // java.util.function.Function clf
       134: .line 377
      StackMap locals:
      StackMap stack:
            aload 21 /* cf */
            invokestatic jdk.internal.module.ModuleLoaderMap.mappingFunction:(Ljava/lang/module/Configuration;)Ljava/util/function/Function;
            astore 22 /* clf */
        start local 22 // java.util.function.Function clf
       135: .line 382
      StackMap locals: java.util.function.Function
      StackMap stack:
            iload 10 /* haveModulePath */
            ifeq 148
       136: .line 383
            aload 21 /* cf */
            invokevirtual java.lang.module.Configuration.modules:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 24
            goto 147
      StackMap locals: java.lang.module.ModuleFinder java.lang.module.ModuleFinder int java.lang.String java.util.Set java.util.Set java.io.PrintStream java.lang.String jdk.internal.module.SystemModules java.lang.module.ModuleFinder int int int int int jdk.internal.module.ArchivedModuleGraph java.lang.module.ModuleReference java.net.URI java.lang.module.ModuleFinder java.lang.module.ModuleFinder java.util.Set java.lang.module.Configuration java.util.function.Function top java.util.Iterator
      StackMap stack:
       137: aload 24
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.module.ResolvedModule
            astore 23 /* resolvedModule */
        start local 23 // java.lang.module.ResolvedModule resolvedModule
       138: .line 384
            aload 23 /* resolvedModule */
            invokevirtual java.lang.module.ResolvedModule.reference:()Ljava/lang/module/ModuleReference;
            astore 25 /* mref */
        start local 25 // java.lang.module.ModuleReference mref
       139: .line 385
            aload 25 /* mref */
            invokevirtual java.lang.module.ModuleReference.descriptor:()Ljava/lang/module/ModuleDescriptor;
            invokevirtual java.lang.module.ModuleDescriptor.name:()Ljava/lang/String;
            astore 26 /* name */
        start local 26 // java.lang.String name
       140: .line 386
            aload 22 /* clf */
            aload 26 /* name */
            invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.ClassLoader
            astore 27 /* cl */
        start local 27 // java.lang.ClassLoader cl
       141: .line 387
            aload 27 /* cl */
            ifnonnull 147
       142: .line 388
            aload 0 /* upgradeModulePath */
            ifnull 145
       143: .line 389
            aload 0 /* upgradeModulePath */
            aload 26 /* name */
            invokeinterface java.lang.module.ModuleFinder.find:(Ljava/lang/String;)Ljava/util/Optional;
            invokevirtual java.util.Optional.isPresent:()Z
            ifeq 145
       144: .line 390
            new java.lang.StringBuilder
            dup
            aload 26 /* name */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ": cannot be loaded from upgrade module path"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic jdk.internal.module.ModuleBootstrap.fail:(Ljava/lang/String;)V
       145: .line 391
      StackMap locals: java.lang.module.ModuleFinder java.lang.module.ModuleFinder int java.lang.String java.util.Set java.util.Set java.io.PrintStream java.lang.String jdk.internal.module.SystemModules java.lang.module.ModuleFinder int int int int int jdk.internal.module.ArchivedModuleGraph java.lang.module.ModuleReference java.net.URI java.lang.module.ModuleFinder java.lang.module.ModuleFinder java.util.Set java.lang.module.Configuration java.util.function.Function java.lang.module.ResolvedModule java.util.Iterator java.lang.module.ModuleReference java.lang.String java.lang.ClassLoader
      StackMap stack:
            aload 9 /* systemModuleFinder */
            aload 26 /* name */
            invokeinterface java.lang.module.ModuleFinder.find:(Ljava/lang/String;)Ljava/util/Optional;
            invokevirtual java.util.Optional.isPresent:()Z
            ifne 147
       146: .line 392
            new java.lang.StringBuilder
            dup
            aload 26 /* name */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ": cannot be loaded from application module path"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic jdk.internal.module.ModuleBootstrap.fail:(Ljava/lang/String;)V
        end local 27 // java.lang.ClassLoader cl
        end local 26 // java.lang.String name
        end local 25 // java.lang.module.ModuleReference mref
        end local 23 // java.lang.module.ResolvedModule resolvedModule
       147: .line 383
      StackMap locals: java.lang.module.ModuleFinder java.lang.module.ModuleFinder int java.lang.String java.util.Set java.util.Set java.io.PrintStream java.lang.String jdk.internal.module.SystemModules java.lang.module.ModuleFinder int int int int int jdk.internal.module.ArchivedModuleGraph java.lang.module.ModuleReference java.net.URI java.lang.module.ModuleFinder java.lang.module.ModuleFinder java.util.Set java.lang.module.Configuration java.util.function.Function top java.util.Iterator
      StackMap stack:
            aload 24
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 137
       148: .line 398
      StackMap locals: java.lang.module.ModuleFinder java.lang.module.ModuleFinder int java.lang.String java.util.Set java.util.Set java.io.PrintStream java.lang.String jdk.internal.module.SystemModules java.lang.module.ModuleFinder int int int int int jdk.internal.module.ArchivedModuleGraph java.lang.module.ModuleReference java.net.URI java.lang.module.ModuleFinder java.lang.module.ModuleFinder java.util.Set java.lang.module.Configuration java.util.function.Function
      StackMap stack:
            iload 13 /* hasSplitPackages */
            ifne 149
            iload 2 /* isPatched */
            ifne 149
            iload 10 /* haveModulePath */
            ifeq 150
       149: .line 399
      StackMap locals:
      StackMap stack:
            aload 21 /* cf */
            aload 22 /* clf */
            invokestatic jdk.internal.module.ModuleBootstrap.checkSplitPackages:(Ljava/lang/module/Configuration;Ljava/util/function/Function;)V
       150: .line 403
      StackMap locals:
      StackMap stack:
            aload 21 /* cf */
            aload 22 /* clf */
            invokestatic jdk.internal.module.ModuleBootstrap.loadModules:(Ljava/lang/module/Configuration;Ljava/util/function/Function;)V
       151: .line 404
            ldc "jdk.module.boot.5.loadModulesTime"
            invokestatic jdk.internal.module.ModuleBootstrap$Counters.add:(Ljava/lang/String;)V
       152: .line 408
            invokestatic java.lang.ModuleLayer.empty:()Ljava/lang/ModuleLayer;
            aload 21 /* cf */
            aload 22 /* clf */
            invokevirtual java.lang.ModuleLayer.defineModules:(Ljava/lang/module/Configuration;Ljava/util/function/Function;)Ljava/lang/ModuleLayer;
            astore 23 /* bootLayer */
        start local 23 // java.lang.ModuleLayer bootLayer
       153: .line 409
            ldc "jdk.module.boot.6.layerCreateTime"
            invokestatic jdk.internal.module.ModuleBootstrap$Counters.add:(Ljava/lang/String;)V
       154: .line 414
            iload 14 /* hasIncubatorModules */
            ifne 155
            iload 10 /* haveModulePath */
            ifeq 156
       155: .line 415
      StackMap locals: java.lang.ModuleLayer
      StackMap stack:
            aload 21 /* cf */
            invokestatic jdk.internal.module.ModuleBootstrap.checkIncubatingStatus:(Ljava/lang/module/Configuration;)V
       156: .line 419
      StackMap locals:
      StackMap stack:
            aload 23 /* bootLayer */
            invokestatic jdk.internal.module.ModuleBootstrap.addExtraReads:(Ljava/lang/ModuleLayer;)V
       157: .line 420
            aload 23 /* bootLayer */
            invokestatic jdk.internal.module.ModuleBootstrap.addExtraExportsAndOpens:(Ljava/lang/ModuleLayer;)Z
            istore 24 /* extraExportsOrOpens */
        start local 24 // boolean extraExportsOrOpens
       158: .line 424
            aload 15 /* archivedModuleGraph */
            ifnull 162
       159: .line 425
            aload 15 /* archivedModuleGraph */
            invokevirtual jdk.internal.module.ArchivedModuleGraph.concealedPackagesToOpen:()Ljava/util/Map;
            astore 25 /* concealedPackagesToOpen */
        start local 25 // java.util.Map concealedPackagesToOpen
       160: .line 426
            aload 15 /* archivedModuleGraph */
            invokevirtual jdk.internal.module.ArchivedModuleGraph.exportedPackagesToOpen:()Ljava/util/Map;
            astore 26 /* exportedPackagesToOpen */
        start local 26 // java.util.Map exportedPackagesToOpen
       161: .line 427
            goto 164
        end local 26 // java.util.Map exportedPackagesToOpen
        end local 25 // java.util.Map concealedPackagesToOpen
       162: .line 428
      StackMap locals: int
      StackMap stack:
            aload 8 /* systemModules */
            invokeinterface jdk.internal.module.SystemModules.concealedPackagesToOpen:()Ljava/util/Map;
            astore 25 /* concealedPackagesToOpen */
        start local 25 // java.util.Map concealedPackagesToOpen
       163: .line 429
            aload 8 /* systemModules */
            invokeinterface jdk.internal.module.SystemModules.exportedPackagesToOpen:()Ljava/util/Map;
            astore 26 /* exportedPackagesToOpen */
        start local 26 // java.util.Map exportedPackagesToOpen
       164: .line 431
      StackMap locals: java.util.Map java.util.Map
      StackMap stack:
            aload 0 /* upgradeModulePath */
       165: .line 432
            aload 25 /* concealedPackagesToOpen */
       166: .line 433
            aload 26 /* exportedPackagesToOpen */
       167: .line 434
            aload 23 /* bootLayer */
       168: .line 435
            iload 24 /* extraExportsOrOpens */
       169: .line 431
            invokestatic jdk.internal.module.ModuleBootstrap.addIllegalAccess:(Ljava/lang/module/ModuleFinder;Ljava/util/Map;Ljava/util/Map;Ljava/lang/ModuleLayer;Z)V
       170: .line 436
            ldc "jdk.module.boot.7.adjustModulesTime"
            invokestatic jdk.internal.module.ModuleBootstrap$Counters.add:(Ljava/lang/String;)V
       171: .line 439
            aload 18 /* savedModuleFinder */
            ifnull 175
       172: .line 440
            new jdk.internal.module.ModuleBootstrap$SafeModuleFinder
            dup
            aload 18 /* savedModuleFinder */
            invokespecial jdk.internal.module.ModuleBootstrap$SafeModuleFinder.<init>:(Ljava/lang/module/ModuleFinder;)V
            putstatic jdk.internal.module.ModuleBootstrap.unlimitedFinder:Ljava/lang/module/ModuleFinder;
       173: .line 441
            aload 18 /* savedModuleFinder */
            aload 19 /* finder */
            if_acmpeq 175
       174: .line 442
            new jdk.internal.module.ModuleBootstrap$SafeModuleFinder
            dup
            aload 19 /* finder */
            invokespecial jdk.internal.module.ModuleBootstrap$SafeModuleFinder.<init>:(Ljava/lang/module/ModuleFinder;)V
            putstatic jdk.internal.module.ModuleBootstrap.limitedFinder:Ljava/lang/module/ModuleFinder;
       175: .line 447
      StackMap locals:
      StackMap stack:
            iload 12 /* canArchive */
            ifeq 185
            aload 3 /* mainModule */
            ifnonnull 185
       176: .line 449
            new jdk.internal.module.ArchivedModuleGraph
            dup
            iload 13 /* hasSplitPackages */
       177: .line 450
            iload 14 /* hasIncubatorModules */
       178: .line 451
            aload 9 /* systemModuleFinder */
       179: .line 452
            aload 21 /* cf */
       180: .line 453
            aload 22 /* clf */
       181: .line 454
            aload 25 /* concealedPackagesToOpen */
       182: .line 455
            aload 26 /* exportedPackagesToOpen */
       183: .line 449
            invokespecial jdk.internal.module.ArchivedModuleGraph.<init>:(ZZLjava/lang/module/ModuleFinder;Ljava/lang/module/Configuration;Ljava/util/function/Function;Ljava/util/Map;Ljava/util/Map;)V
       184: .line 448
            invokestatic jdk.internal.module.ArchivedModuleGraph.archive:(Ljdk/internal/module/ArchivedModuleGraph;)V
       185: .line 459
      StackMap locals:
      StackMap stack:
            ldc "jdk.module.boot.totalTime"
            invokestatic jdk.internal.module.ModuleBootstrap$Counters.publish:(Ljava/lang/String;)V
       186: .line 461
            aload 23 /* bootLayer */
            areturn
        end local 26 // java.util.Map exportedPackagesToOpen
        end local 25 // java.util.Map concealedPackagesToOpen
        end local 24 // boolean extraExportsOrOpens
        end local 23 // java.lang.ModuleLayer bootLayer
        end local 22 // java.util.function.Function clf
        end local 21 // java.lang.module.Configuration cf
        end local 20 // java.util.Set roots
        end local 19 // java.lang.module.ModuleFinder finder
        end local 18 // java.lang.module.ModuleFinder savedModuleFinder
        end local 17 // java.net.URI baseUri
        end local 16 // java.lang.module.ModuleReference base
        end local 15 // jdk.internal.module.ArchivedModuleGraph archivedModuleGraph
        end local 14 // boolean hasIncubatorModules
        end local 13 // boolean hasSplitPackages
        end local 12 // boolean canArchive
        end local 11 // boolean needResolution
        end local 10 // boolean haveModulePath
        end local 9 // java.lang.module.ModuleFinder systemModuleFinder
        end local 8 // jdk.internal.module.SystemModules systemModules
        end local 7 // java.lang.String trace
        end local 6 // java.io.PrintStream traceOutput
        end local 5 // java.util.Set limitModules
        end local 4 // java.util.Set addModules
        end local 3 // java.lang.String mainModule
        end local 2 // boolean isPatched
        end local 1 // java.lang.module.ModuleFinder appModulePath
        end local 0 // java.lang.module.ModuleFinder upgradeModulePath
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            2  187     0         upgradeModulePath  Ljava/lang/module/ModuleFinder;
            3  187     1             appModulePath  Ljava/lang/module/ModuleFinder;
            4  187     2                 isPatched  Z
            5  187     3                mainModule  Ljava/lang/String;
            6  187     4                addModules  Ljava/util/Set<Ljava/lang/String;>;
            7  187     5              limitModules  Ljava/util/Set<Ljava/lang/String;>;
            8  187     6               traceOutput  Ljava/io/PrintStream;
            9  187     7                     trace  Ljava/lang/String;
           13  187     8             systemModules  Ljdk/internal/module/SystemModules;
           25   31     9        systemModuleFinder  Ljava/lang/module/ModuleFinder;
           42   43     9        systemModuleFinder  Ljava/lang/module/ModuleFinder;
           45  187     9        systemModuleFinder  Ljava/lang/module/ModuleFinder;
           16  187    10            haveModulePath  Z
           17  187    11            needResolution  Z
           18  187    12                canArchive  Z
           26   31    13          hasSplitPackages  Z
           46  187    13          hasSplitPackages  Z
           27   31    14       hasIncubatorModules  Z
           47  187    14       hasIncubatorModules  Z
           19  187    15       archivedModuleGraph  Ljdk/internal/module/ArchivedModuleGraph;
           50  187    16                      base  Ljava/lang/module/ModuleReference;
           53  187    17                   baseUri  Ljava/net/URI;
           59   61    18                    errors  I
           63  187    18         savedModuleFinder  Ljava/lang/module/ModuleFinder;
           70   71    19                    finder  Ljava/lang/module/ModuleFinder;
           72  114    19                    finder  Ljava/lang/module/ModuleFinder;
          115  187    19                    finder  Ljava/lang/module/ModuleFinder;
           73  114    20                     roots  Ljava/util/Set<Ljava/lang/String;>;
          116  187    20                     roots  Ljava/util/Set<Ljava/lang/String;>;
           76  113    21      addAllDefaultModules  Z
           77  113    22       addAllSystemModules  Z
           78  113    23  addAllApplicationModules  Z
           80   91    24                       mod  Ljava/lang/String;
           99  105    24                         f  Ljava/lang/module/ModuleFinder;
          107  113    24                         f  Ljava/lang/module/ModuleFinder;
          119  120    21                        cf  Ljava/lang/module/Configuration;
          122  123    21                        cf  Ljava/lang/module/Configuration;
          125  187    21                        cf  Ljava/lang/module/Configuration;
          124  125    22                       map  Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;>;
          133  134    22                       clf  Ljava/util/function/Function<Ljava/lang/String;Ljava/lang/ClassLoader;>;
          135  187    22                       clf  Ljava/util/function/Function<Ljava/lang/String;Ljava/lang/ClassLoader;>;
          138  147    23            resolvedModule  Ljava/lang/module/ResolvedModule;
          139  147    25                      mref  Ljava/lang/module/ModuleReference;
          140  147    26                      name  Ljava/lang/String;
          141  147    27                        cl  Ljava/lang/ClassLoader;
          153  187    23                 bootLayer  Ljava/lang/ModuleLayer;
          158  187    24       extraExportsOrOpens  Z
          160  162    25   concealedPackagesToOpen  Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;>;
          163  187    25   concealedPackagesToOpen  Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;>;
          161  162    26    exportedPackagesToOpen  Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;>;
          164  187    26    exportedPackagesToOpen  Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;>;
    Exceptions:
      throws java.lang.Exception

  private static void loadModules(java.lang.module.Configuration, java.util.function.Function<java.lang.String, java.lang.ClassLoader>);
    descriptor: (Ljava/lang/module/Configuration;Ljava/util/function/Function;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=7, args_size=2
        start local 0 // java.lang.module.Configuration cf
        start local 1 // java.util.function.Function clf
         0: .line 469
            aload 0 /* cf */
            invokevirtual java.lang.module.Configuration.modules:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 11
      StackMap locals: java.lang.module.Configuration java.util.function.Function top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.module.ResolvedModule
            astore 2 /* resolvedModule */
        start local 2 // java.lang.module.ResolvedModule resolvedModule
         2: .line 470
            aload 2 /* resolvedModule */
            invokevirtual java.lang.module.ResolvedModule.reference:()Ljava/lang/module/ModuleReference;
            astore 4 /* mref */
        start local 4 // java.lang.module.ModuleReference mref
         3: .line 471
            aload 2 /* resolvedModule */
            invokevirtual java.lang.module.ResolvedModule.name:()Ljava/lang/String;
            astore 5 /* name */
        start local 5 // java.lang.String name
         4: .line 472
            aload 1 /* clf */
            aload 5 /* name */
            invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.ClassLoader
            astore 6 /* loader */
        start local 6 // java.lang.ClassLoader loader
         5: .line 473
            aload 6 /* loader */
            ifnonnull 9
         6: .line 475
            aload 5 /* name */
            ldc "java.base"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 11
         7: .line 476
            aload 4 /* mref */
            invokestatic jdk.internal.loader.BootLoader.loadModule:(Ljava/lang/module/ModuleReference;)V
         8: .line 478
            goto 11
      StackMap locals: java.lang.module.Configuration java.util.function.Function java.lang.module.ResolvedModule java.util.Iterator java.lang.module.ModuleReference java.lang.String java.lang.ClassLoader
      StackMap stack:
         9: aload 6 /* loader */
            instanceof jdk.internal.loader.BuiltinClassLoader
            ifeq 11
        10: .line 479
            aload 6 /* loader */
            checkcast jdk.internal.loader.BuiltinClassLoader
            aload 4 /* mref */
            invokevirtual jdk.internal.loader.BuiltinClassLoader.loadModule:(Ljava/lang/module/ModuleReference;)V
        end local 6 // java.lang.ClassLoader loader
        end local 5 // java.lang.String name
        end local 4 // java.lang.module.ModuleReference mref
        end local 2 // java.lang.module.ResolvedModule resolvedModule
        11: .line 469
      StackMap locals: java.lang.module.Configuration java.util.function.Function top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
        12: .line 482
            return
        end local 1 // java.util.function.Function clf
        end local 0 // java.lang.module.Configuration cf
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   13     0              cf  Ljava/lang/module/Configuration;
            0   13     1             clf  Ljava/util/function/Function<Ljava/lang/String;Ljava/lang/ClassLoader;>;
            2   11     2  resolvedModule  Ljava/lang/module/ResolvedModule;
            3   11     4            mref  Ljava/lang/module/ModuleReference;
            4   11     5            name  Ljava/lang/String;
            5   11     6          loader  Ljava/lang/ClassLoader;
    Signature: (Ljava/lang/module/Configuration;Ljava/util/function/Function<Ljava/lang/String;Ljava/lang/ClassLoader;>;)V
    MethodParameters:
      Name  Flags
      cf    
      clf   

  private static void checkSplitPackages(java.lang.module.Configuration, java.util.function.Function<java.lang.String, java.lang.ClassLoader>);
    descriptor: (Ljava/lang/module/Configuration;Ljava/util/function/Function;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=12, args_size=2
        start local 0 // java.lang.module.Configuration cf
        start local 1 // java.util.function.Function clf
         0: .line 490
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 2 /* packageToModule */
        start local 2 // java.util.Map packageToModule
         1: .line 491
            aload 0 /* cf */
            invokevirtual java.lang.module.Configuration.modules:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 16
      StackMap locals: java.lang.module.Configuration java.util.function.Function java.util.Map top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.module.ResolvedModule
            astore 3 /* resolvedModule */
        start local 3 // java.lang.module.ResolvedModule resolvedModule
         3: .line 492
            aload 3 /* resolvedModule */
            invokevirtual java.lang.module.ResolvedModule.reference:()Ljava/lang/module/ModuleReference;
            invokevirtual java.lang.module.ModuleReference.descriptor:()Ljava/lang/module/ModuleDescriptor;
            astore 5 /* descriptor */
        start local 5 // java.lang.module.ModuleDescriptor descriptor
         4: .line 493
            aload 5 /* descriptor */
            invokevirtual java.lang.module.ModuleDescriptor.name:()Ljava/lang/String;
            astore 6 /* name */
        start local 6 // java.lang.String name
         5: .line 494
            aload 1 /* clf */
            aload 6 /* name */
            invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.ClassLoader
            astore 7 /* loader */
        start local 7 // java.lang.ClassLoader loader
         6: .line 495
            aload 7 /* loader */
            ifnull 7
            aload 7 /* loader */
            instanceof jdk.internal.loader.BuiltinClassLoader
            ifeq 16
         7: .line 496
      StackMap locals: java.lang.module.Configuration java.util.function.Function java.util.Map java.lang.module.ResolvedModule java.util.Iterator java.lang.module.ModuleDescriptor java.lang.String java.lang.ClassLoader
      StackMap stack:
            aload 5 /* descriptor */
            invokevirtual java.lang.module.ModuleDescriptor.packages:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 9
            goto 15
      StackMap locals: java.lang.module.Configuration java.util.function.Function java.util.Map java.lang.module.ResolvedModule java.util.Iterator java.lang.module.ModuleDescriptor java.lang.String java.lang.ClassLoader top java.util.Iterator
      StackMap stack:
         8: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 8 /* p */
        start local 8 // java.lang.String p
         9: .line 497
            aload 2 /* packageToModule */
            aload 8 /* p */
            aload 6 /* name */
            invokeinterface java.util.Map.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 10 /* other */
        start local 10 // java.lang.String other
        10: .line 498
            aload 10 /* other */
            ifnull 15
        11: .line 499
            new java.lang.StringBuilder
            dup
            ldc "Package "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 8 /* p */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " in both module "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        12: .line 500
            aload 6 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " and module "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 10 /* other */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        13: .line 499
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 11 /* msg */
        start local 11 // java.lang.String msg
        14: .line 501
            new java.lang.LayerInstantiationException
            dup
            aload 11 /* msg */
            invokespecial java.lang.LayerInstantiationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 11 // java.lang.String msg
        end local 10 // java.lang.String other
        end local 8 // java.lang.String p
        15: .line 496
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        end local 7 // java.lang.ClassLoader loader
        end local 6 // java.lang.String name
        end local 5 // java.lang.module.ModuleDescriptor descriptor
        end local 3 // java.lang.module.ResolvedModule resolvedModule
        16: .line 491
      StackMap locals: java.lang.module.Configuration java.util.function.Function java.util.Map top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        17: .line 506
            return
        end local 2 // java.util.Map packageToModule
        end local 1 // java.util.function.Function clf
        end local 0 // java.lang.module.Configuration cf
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   18     0               cf  Ljava/lang/module/Configuration;
            0   18     1              clf  Ljava/util/function/Function<Ljava/lang/String;Ljava/lang/ClassLoader;>;
            1   18     2  packageToModule  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            3   16     3   resolvedModule  Ljava/lang/module/ResolvedModule;
            4   16     5       descriptor  Ljava/lang/module/ModuleDescriptor;
            5   16     6             name  Ljava/lang/String;
            6   16     7           loader  Ljava/lang/ClassLoader;
            9   15     8                p  Ljava/lang/String;
           10   15    10            other  Ljava/lang/String;
           14   15    11              msg  Ljava/lang/String;
    Signature: (Ljava/lang/module/Configuration;Ljava/util/function/Function<Ljava/lang/String;Ljava/lang/ClassLoader;>;)V
    MethodParameters:
      Name  Flags
      cf    
      clf   

  private static java.lang.module.ModuleFinder limitFinder(java.lang.module.ModuleFinder, java.util.Set<java.lang.String>, java.util.Set<java.lang.String>);
    descriptor: (Ljava/lang/module/ModuleFinder;Ljava/util/Set;Ljava/util/Set;)Ljava/lang/module/ModuleFinder;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // java.lang.module.ModuleFinder finder
        start local 1 // java.util.Set roots
        start local 2 // java.util.Set otherMods
         0: .line 517
            invokestatic java.lang.module.Configuration.empty:()Ljava/lang/module/Configuration;
            aload 0 /* finder */
            iconst_0
            anewarray java.nio.file.Path
         1: .line 518
            invokestatic java.lang.module.ModuleFinder.of:([Ljava/nio/file/Path;)Ljava/lang/module/ModuleFinder;
         2: .line 519
            aload 1 /* roots */
         3: .line 517
            invokevirtual java.lang.module.Configuration.resolve:(Ljava/lang/module/ModuleFinder;Ljava/lang/module/ModuleFinder;Ljava/util/Collection;)Ljava/lang/module/Configuration;
            astore 3 /* cf */
        start local 3 // java.lang.module.Configuration cf
         4: .line 522
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 4 /* map */
        start local 4 // java.util.Map map
         5: .line 525
            aload 3 /* cf */
            invokevirtual java.lang.module.Configuration.modules:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         6: .line 526
            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/ResolvedModule.reference()Ljava/lang/module/ModuleReference; (5)
                  (Ljava/lang/module/ResolvedModule;)Ljava/lang/module/ModuleReference;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         7: .line 527
            aload 4 /* map */
            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
                  jdk/internal/module/ModuleBootstrap.lambda$11(Ljava/util/Map;Ljava/lang/module/ModuleReference;)V (6)
                  (Ljava/lang/module/ModuleReference;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
         8: .line 530
            aload 2 /* otherMods */
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         9: .line 531
            aload 0 /* finder */
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic apply(Ljava/lang/module/ModuleFinder;)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/ModuleFinder.find(Ljava/lang/String;)Ljava/util/Optional; (9 itf)
                  (Ljava/lang/String;)Ljava/util/Optional;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
        10: .line 532
            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/Optional.stream()Ljava/util/stream/Stream; (5)
                  (Ljava/util/Optional;)Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
        11: .line 533
            aload 4 /* map */
            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
                  jdk/internal/module/ModuleBootstrap.lambda$14(Ljava/util/Map;Ljava/lang/module/ModuleReference;)V (6)
                  (Ljava/lang/module/ModuleReference;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        12: .line 536
            new java.util.HashSet
            dup
            aload 4 /* map */
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
            astore 6 /* mrefs */
        start local 6 // java.util.Set mrefs
        13: .line 538
            new jdk.internal.module.ModuleBootstrap$1
            dup
            aload 4 /* map */
            aload 6 /* mrefs */
            invokespecial jdk.internal.module.ModuleBootstrap$1.<init>:(Ljava/util/Map;Ljava/util/Set;)V
            areturn
        end local 6 // java.util.Set mrefs
        end local 4 // java.util.Map map
        end local 3 // java.lang.module.Configuration cf
        end local 2 // java.util.Set otherMods
        end local 1 // java.util.Set roots
        end local 0 // java.lang.module.ModuleFinder finder
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   14     0     finder  Ljava/lang/module/ModuleFinder;
            0   14     1      roots  Ljava/util/Set<Ljava/lang/String;>;
            0   14     2  otherMods  Ljava/util/Set<Ljava/lang/String;>;
            4   14     3         cf  Ljava/lang/module/Configuration;
            5   14     4        map  Ljava/util/Map<Ljava/lang/String;Ljava/lang/module/ModuleReference;>;
           13   14     6      mrefs  Ljava/util/Set<Ljava/lang/module/ModuleReference;>;
    Signature: (Ljava/lang/module/ModuleFinder;Ljava/util/Set<Ljava/lang/String;>;Ljava/util/Set<Ljava/lang/String;>;)Ljava/lang/module/ModuleFinder;
    MethodParameters:
           Name  Flags
      finder     
      roots      
      otherMods  

  private static java.lang.module.ModuleFinder finderFor(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/module/ModuleFinder;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=9, args_size=1
        start local 0 // java.lang.String prop
         0: .line 555
            aload 0 /* prop */
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* s */
        start local 1 // java.lang.String s
         1: .line 556
            aload 1 /* s */
            ifnonnull 3
         2: .line 557
            aconst_null
            areturn
         3: .line 559
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* s */
            getstatic java.io.File.pathSeparator:Ljava/lang/String;
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 2 /* dirs */
        start local 2 // java.lang.String[] dirs
         4: .line 560
            aload 2 /* dirs */
            arraylength
            anewarray java.nio.file.Path
            astore 3 /* paths */
        start local 3 // java.nio.file.Path[] paths
         5: .line 561
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         6: .line 562
            aload 2 /* dirs */
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 10
      StackMap locals: java.lang.String java.lang.String java.lang.String[] java.nio.file.Path[] int top int int java.lang.String[]
      StackMap stack:
         7: aload 8
            iload 6
            aaload
            astore 5 /* dir */
        start local 5 // java.lang.String dir
         8: .line 563
            aload 3 /* paths */
            iload 4 /* i */
            iinc 4 /* i */ 1
            aload 5 /* dir */
            iconst_0
            anewarray java.lang.String
            invokestatic java.nio.file.Path.of:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
            aastore
        end local 5 // java.lang.String dir
         9: .line 562
            iinc 6 1
      StackMap locals:
      StackMap stack:
        10: iload 6
            iload 7
            if_icmplt 7
        11: .line 565
            getstatic jdk.internal.module.ModuleBootstrap.patcher:Ljdk/internal/module/ModulePatcher;
            aload 3 /* paths */
            invokestatic jdk.internal.module.ModulePath.of:(Ljdk/internal/module/ModulePatcher;[Ljava/nio/file/Path;)Ljava/lang/module/ModuleFinder;
            areturn
        end local 4 // int i
        end local 3 // java.nio.file.Path[] paths
        end local 2 // java.lang.String[] dirs
        end local 1 // java.lang.String s
        end local 0 // java.lang.String prop
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   12     0   prop  Ljava/lang/String;
            1   12     1      s  Ljava/lang/String;
            4   12     2   dirs  [Ljava/lang/String;
            5   12     3  paths  [Ljava/nio/file/Path;
            6   12     4      i  I
            8    9     5    dir  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      prop  

  private static jdk.internal.module.ModulePatcher initModulePatcher();
    descriptor: ()Ljdk/internal/module/ModulePatcher;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 574
            ldc "jdk.module.patch."
         1: .line 575
            getstatic java.io.File.pathSeparator:Ljava/lang/String;
         2: .line 576
            iconst_0
         3: .line 574
            invokestatic jdk.internal.module.ModuleBootstrap.decode:(Ljava/lang/String;Ljava/lang/String;Z)Ljava/util/Map;
            astore 0 /* map */
        start local 0 // java.util.Map map
         4: .line 577
            new jdk.internal.module.ModulePatcher
            dup
            aload 0 /* map */
            invokespecial jdk.internal.module.ModulePatcher.<init>:(Ljava/util/Map;)V
            areturn
        end local 0 // java.util.Map map
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            4    5     0   map  Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;

  private static java.util.Set<java.lang.String> addModules();
    descriptor: ()Ljava/util/Set;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=8, args_size=0
         0: .line 584
            ldc "jdk.module.addmods."
            astore 0 /* prefix */
        start local 0 // java.lang.String prefix
         1: .line 585
            iconst_0
            istore 1 /* index */
        start local 1 // int index
         2: .line 587
            new java.lang.StringBuilder
            dup
            aload 0 /* prefix */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* index */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic jdk.internal.module.ModuleBootstrap.getAndRemoveProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* value */
        start local 2 // java.lang.String value
         3: .line 588
            aload 2 /* value */
            ifnonnull 5
         4: .line 589
            invokestatic java.util.Set.of:()Ljava/util/Set;
            areturn
         5: .line 591
      StackMap locals: java.lang.String int java.lang.String
      StackMap stack:
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 3 /* modules */
        start local 3 // java.util.Set modules
         6: .line 592
            goto 15
         7: .line 593
      StackMap locals: java.util.Set
      StackMap stack:
            aload 2 /* value */
            ldc ","
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 12
      StackMap locals: java.lang.String int java.lang.String java.util.Set top int int java.lang.String[]
      StackMap stack:
         8: aload 7
            iload 5
            aaload
            astore 4 /* s */
        start local 4 // java.lang.String s
         9: .line 594
            aload 4 /* s */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 11
        10: .line 595
            aload 3 /* modules */
            aload 4 /* s */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // java.lang.String s
        11: .line 593
      StackMap locals:
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
        12: iload 5
            iload 6
            if_icmplt 8
        13: .line 597
            iinc 1 /* index */ 1
        14: .line 598
            new java.lang.StringBuilder
            dup
            aload 0 /* prefix */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* index */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic jdk.internal.module.ModuleBootstrap.getAndRemoveProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* value */
        15: .line 592
      StackMap locals: java.lang.String int java.lang.String java.util.Set
      StackMap stack:
            aload 2 /* value */
            ifnonnull 7
        16: .line 600
            aload 3 /* modules */
            areturn
        end local 3 // java.util.Set modules
        end local 2 // java.lang.String value
        end local 1 // int index
        end local 0 // java.lang.String prefix
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            1   17     0   prefix  Ljava/lang/String;
            2   17     1    index  I
            3   17     2    value  Ljava/lang/String;
            6   17     3  modules  Ljava/util/Set<Ljava/lang/String;>;
            9   11     4        s  Ljava/lang/String;
    Signature: ()Ljava/util/Set<Ljava/lang/String;>;

  private static java.util.Set<java.lang.String> limitModules();
    descriptor: ()Ljava/util/Set;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=6, args_size=0
         0: .line 608
            ldc "jdk.module.limitmods"
            invokestatic jdk.internal.module.ModuleBootstrap.getAndRemoveProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 0 /* value */
        start local 0 // java.lang.String value
         1: .line 609
            aload 0 /* value */
            ifnonnull 3
         2: .line 610
            invokestatic java.util.Set.of:()Ljava/util/Set;
            areturn
         3: .line 612
      StackMap locals: java.lang.String
      StackMap stack:
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 1 /* names */
        start local 1 // java.util.Set names
         4: .line 613
            aload 0 /* value */
            ldc ","
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 8
      StackMap locals: java.lang.String java.util.Set top int int java.lang.String[]
      StackMap stack:
         5: aload 5
            iload 3
            aaload
            astore 2 /* name */
        start local 2 // java.lang.String name
         6: .line 614
            aload 2 /* name */
            invokevirtual java.lang.String.length:()I
            ifle 7
            aload 1 /* names */
            aload 2 /* name */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 2 // java.lang.String name
         7: .line 613
      StackMap locals:
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
         8: iload 3
            iload 4
            if_icmplt 5
         9: .line 616
            aload 1 /* names */
            areturn
        end local 1 // java.util.Set names
        end local 0 // java.lang.String value
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            1   10     0  value  Ljava/lang/String;
            4   10     1  names  Ljava/util/Set<Ljava/lang/String;>;
            6    7     2   name  Ljava/lang/String;
    Signature: ()Ljava/util/Set<Ljava/lang/String;>;

  private static void addExtraReads(java.lang.ModuleLayer);
    descriptor: (Ljava/lang/ModuleLayer;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=9, args_size=1
        start local 0 // java.lang.ModuleLayer bootLayer
         0: .line 627
            ldc "jdk.module.addreads."
            invokestatic jdk.internal.module.ModuleBootstrap.decode:(Ljava/lang/String;)Ljava/util/Map;
            astore 1 /* map */
        start local 1 // java.util.Map map
         1: .line 628
            aload 1 /* map */
            invokeinterface java.util.Map.isEmpty:()Z
            ifeq 3
         2: .line 629
            return
         3: .line 631
      StackMap locals: java.util.Map
      StackMap stack:
            aload 1 /* map */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 22
      StackMap locals: java.lang.ModuleLayer java.util.Map top java.util.Iterator
      StackMap stack:
         4: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 2 /* e */
        start local 2 // java.util.Map$Entry e
         5: .line 634
            aload 2 /* e */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 4 /* mn */
        start local 4 // java.lang.String mn
         6: .line 635
            aload 0 /* bootLayer */
            aload 4 /* mn */
            invokevirtual java.lang.ModuleLayer.findModule:(Ljava/lang/String;)Ljava/util/Optional;
            astore 5 /* om */
        start local 5 // java.util.Optional om
         7: .line 636
            aload 5 /* om */
            invokevirtual java.util.Optional.isPresent:()Z
            ifne 10
         8: .line 637
            ldc "--add-reads"
            aload 4 /* mn */
            invokestatic jdk.internal.module.ModuleBootstrap.warnUnknownModule:(Ljava/lang/String;Ljava/lang/String;)V
         9: .line 638
            goto 22
        10: .line 640
      StackMap locals: java.lang.ModuleLayer java.util.Map java.util.Map$Entry java.util.Iterator java.lang.String java.util.Optional
      StackMap stack:
            aload 5 /* om */
            invokevirtual java.util.Optional.get:()Ljava/lang/Object;
            checkcast java.lang.Module
            astore 6 /* m */
        start local 6 // java.lang.Module m
        11: .line 643
            aload 2 /* e */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.util.List
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 8
            goto 21
      StackMap locals: java.lang.ModuleLayer java.util.Map java.util.Map$Entry java.util.Iterator java.lang.String java.util.Optional java.lang.Module top java.util.Iterator
      StackMap stack:
        12: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 7 /* name */
        start local 7 // java.lang.String name
        13: .line 644
            ldc "ALL-UNNAMED"
            aload 7 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 16
        14: .line 645
            aload 6 /* m */
            invokestatic jdk.internal.module.Modules.addReadsAllUnnamed:(Ljava/lang/Module;)V
        15: .line 646
            goto 21
        16: .line 647
      StackMap locals: java.lang.ModuleLayer java.util.Map java.util.Map$Entry java.util.Iterator java.lang.String java.util.Optional java.lang.Module java.lang.String java.util.Iterator
      StackMap stack:
            aload 0 /* bootLayer */
            aload 7 /* name */
            invokevirtual java.lang.ModuleLayer.findModule:(Ljava/lang/String;)Ljava/util/Optional;
            astore 5 /* om */
        17: .line 648
            aload 5 /* om */
            invokevirtual java.util.Optional.isPresent:()Z
            ifeq 20
        18: .line 649
            aload 6 /* m */
            aload 5 /* om */
            invokevirtual java.util.Optional.get:()Ljava/lang/Object;
            checkcast java.lang.Module
            invokestatic jdk.internal.module.Modules.addReads:(Ljava/lang/Module;Ljava/lang/Module;)V
        19: .line 650
            goto 21
        20: .line 651
      StackMap locals:
      StackMap stack:
            ldc "--add-reads"
            aload 7 /* name */
            invokestatic jdk.internal.module.ModuleBootstrap.warnUnknownModule:(Ljava/lang/String;Ljava/lang/String;)V
        end local 7 // java.lang.String name
        21: .line 643
      StackMap locals: java.lang.ModuleLayer java.util.Map java.util.Map$Entry java.util.Iterator java.lang.String java.util.Optional java.lang.Module top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 12
        end local 6 // java.lang.Module m
        end local 5 // java.util.Optional om
        end local 4 // java.lang.String mn
        end local 2 // java.util.Map$Entry e
        22: .line 631
      StackMap locals: java.lang.ModuleLayer java.util.Map top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        23: .line 656
            return
        end local 1 // java.util.Map map
        end local 0 // java.lang.ModuleLayer bootLayer
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   24     0  bootLayer  Ljava/lang/ModuleLayer;
            1   24     1        map  Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
            5   22     2          e  Ljava/util/Map$Entry<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
            6   22     4         mn  Ljava/lang/String;
            7   22     5         om  Ljava/util/Optional<Ljava/lang/Module;>;
           11   22     6          m  Ljava/lang/Module;
           13   21     7       name  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      bootLayer  

  private static boolean addExtraExportsAndOpens(java.lang.ModuleLayer);
    descriptor: (Ljava/lang/ModuleLayer;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=1
        start local 0 // java.lang.ModuleLayer bootLayer
         0: .line 663
            iconst_0
            istore 1 /* extraExportsOrOpens */
        start local 1 // boolean extraExportsOrOpens
         1: .line 666
            ldc "jdk.module.addexports."
            astore 2 /* prefix */
        start local 2 // java.lang.String prefix
         2: .line 667
            aload 2 /* prefix */
            invokestatic jdk.internal.module.ModuleBootstrap.decode:(Ljava/lang/String;)Ljava/util/Map;
            astore 3 /* extraExports */
        start local 3 // java.util.Map extraExports
         3: .line 668
            aload 3 /* extraExports */
            invokeinterface java.util.Map.isEmpty:()Z
            ifne 6
         4: .line 669
            aload 0 /* bootLayer */
            aload 3 /* extraExports */
            iconst_0
            invokestatic jdk.internal.module.ModuleBootstrap.addExtraExportsOrOpens:(Ljava/lang/ModuleLayer;Ljava/util/Map;Z)V
         5: .line 670
            iconst_1
            istore 1 /* extraExportsOrOpens */
         6: .line 675
      StackMap locals: int java.lang.String java.util.Map
      StackMap stack:
            ldc "jdk.module.addopens."
            astore 2 /* prefix */
         7: .line 676
            aload 2 /* prefix */
            invokestatic jdk.internal.module.ModuleBootstrap.decode:(Ljava/lang/String;)Ljava/util/Map;
            astore 4 /* extraOpens */
        start local 4 // java.util.Map extraOpens
         8: .line 677
            aload 4 /* extraOpens */
            invokeinterface java.util.Map.isEmpty:()Z
            ifne 11
         9: .line 678
            aload 0 /* bootLayer */
            aload 4 /* extraOpens */
            iconst_1
            invokestatic jdk.internal.module.ModuleBootstrap.addExtraExportsOrOpens:(Ljava/lang/ModuleLayer;Ljava/util/Map;Z)V
        10: .line 679
            iconst_1
            istore 1 /* extraExportsOrOpens */
        11: .line 682
      StackMap locals: java.util.Map
      StackMap stack:
            iload 1 /* extraExportsOrOpens */
            ireturn
        end local 4 // java.util.Map extraOpens
        end local 3 // java.util.Map extraExports
        end local 2 // java.lang.String prefix
        end local 1 // boolean extraExportsOrOpens
        end local 0 // java.lang.ModuleLayer bootLayer
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   12     0            bootLayer  Ljava/lang/ModuleLayer;
            1   12     1  extraExportsOrOpens  Z
            2   12     2               prefix  Ljava/lang/String;
            3   12     3         extraExports  Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
            8   12     4           extraOpens  Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
    MethodParameters:
           Name  Flags
      bootLayer  

  private static void addExtraExportsOrOpens(java.lang.ModuleLayer, java.util.Map<java.lang.String, java.util.List<java.lang.String>>, );
    descriptor: (Ljava/lang/ModuleLayer;Ljava/util/Map;Z)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=16, args_size=3
        start local 0 // java.lang.ModuleLayer bootLayer
        start local 1 // java.util.Map map
        start local 2 // boolean opens
         0: .line 689
            iload 2 /* opens */
            ifeq 1
            ldc "--add-opens"
            goto 2
      StackMap locals:
      StackMap stack:
         1: ldc "--add-exports"
      StackMap locals:
      StackMap stack: java.lang.String
         2: astore 3 /* option */
        start local 3 // java.lang.String option
         3: .line 690
            aload 1 /* map */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 45
      StackMap locals: java.lang.ModuleLayer java.util.Map int 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 /* e */
        start local 4 // java.util.Map$Entry e
         5: .line 693
            aload 4 /* e */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 6 /* key */
        start local 6 // java.lang.String key
         6: .line 694
            aload 6 /* key */
            ldc "/"
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 7 /* s */
        start local 7 // java.lang.String[] s
         7: .line 695
            aload 7 /* s */
            arraylength
            iconst_2
            if_icmpeq 9
         8: .line 696
            aload 3 /* option */
            ldc "<module>/<package>"
            aload 6 /* key */
            invokestatic jdk.internal.module.ModuleBootstrap.unableToParse:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokestatic jdk.internal.module.ModuleBootstrap.fail:(Ljava/lang/String;)V
         9: .line 698
      StackMap locals: java.lang.ModuleLayer java.util.Map int java.lang.String java.util.Map$Entry java.util.Iterator java.lang.String java.lang.String[]
      StackMap stack:
            aload 7 /* s */
            iconst_0
            aaload
            astore 8 /* mn */
        start local 8 // java.lang.String mn
        10: .line 699
            aload 7 /* s */
            iconst_1
            aaload
            astore 9 /* pn */
        start local 9 // java.lang.String pn
        11: .line 700
            aload 8 /* mn */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 12
            aload 9 /* pn */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 13
        12: .line 701
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            aload 3 /* option */
            ldc "<module>/<package>"
            aload 6 /* key */
            invokestatic jdk.internal.module.ModuleBootstrap.unableToParse:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokestatic jdk.internal.module.ModuleBootstrap.fail:(Ljava/lang/String;)V
        13: .line 705
      StackMap locals:
      StackMap stack:
            aload 0 /* bootLayer */
            aload 8 /* mn */
            invokevirtual java.lang.ModuleLayer.findModule:(Ljava/lang/String;)Ljava/util/Optional;
            astore 11 /* om */
        start local 11 // java.util.Optional om
        14: .line 706
            aload 11 /* om */
            invokevirtual java.util.Optional.isPresent:()Z
            ifne 17
        15: .line 707
            aload 3 /* option */
            aload 8 /* mn */
            invokestatic jdk.internal.module.ModuleBootstrap.warnUnknownModule:(Ljava/lang/String;Ljava/lang/String;)V
        16: .line 708
            goto 45
        17: .line 711
      StackMap locals: java.lang.ModuleLayer java.util.Map int java.lang.String java.util.Map$Entry java.util.Iterator java.lang.String java.lang.String[] java.lang.String java.lang.String top java.util.Optional
      StackMap stack:
            aload 11 /* om */
            invokevirtual java.util.Optional.get:()Ljava/lang/Object;
            checkcast java.lang.Module
            astore 10 /* m */
        start local 10 // java.lang.Module m
        18: .line 713
            aload 10 /* m */
            invokevirtual java.lang.Module.getDescriptor:()Ljava/lang/module/ModuleDescriptor;
            invokevirtual java.lang.module.ModuleDescriptor.packages:()Ljava/util/Set;
            aload 9 /* pn */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 21
        19: .line 714
            new java.lang.StringBuilder
            dup
            ldc "package "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 9 /* pn */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " not in "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* mn */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic jdk.internal.module.ModuleBootstrap.warn:(Ljava/lang/String;)V
        20: .line 715
            goto 45
        21: .line 719
      StackMap locals: java.lang.ModuleLayer java.util.Map int java.lang.String java.util.Map$Entry java.util.Iterator java.lang.String java.lang.String[] java.lang.String java.lang.String java.lang.Module java.util.Optional
      StackMap stack:
            aload 4 /* e */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.util.List
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 13
            goto 44
      StackMap locals: java.lang.ModuleLayer java.util.Map int java.lang.String java.util.Map$Entry java.util.Iterator java.lang.String java.lang.String[] java.lang.String java.lang.String java.lang.Module java.util.Optional top java.util.Iterator
      StackMap stack:
        22: aload 13
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 12 /* name */
        start local 12 // java.lang.String name
        23: .line 720
            iconst_0
            istore 14 /* allUnnamed */
        start local 14 // boolean allUnnamed
        24: .line 721
            aconst_null
            astore 15 /* other */
        start local 15 // java.lang.Module other
        25: .line 722
            ldc "ALL-UNNAMED"
            aload 12 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 28
        26: .line 723
            iconst_1
            istore 14 /* allUnnamed */
        27: .line 724
            goto 34
        28: .line 725
      StackMap locals: java.lang.ModuleLayer java.util.Map int java.lang.String java.util.Map$Entry java.util.Iterator java.lang.String java.lang.String[] java.lang.String java.lang.String java.lang.Module java.util.Optional java.lang.String java.util.Iterator int java.lang.Module
      StackMap stack:
            aload 0 /* bootLayer */
            aload 12 /* name */
            invokevirtual java.lang.ModuleLayer.findModule:(Ljava/lang/String;)Ljava/util/Optional;
            astore 11 /* om */
        29: .line 726
            aload 11 /* om */
            invokevirtual java.util.Optional.isPresent:()Z
            ifeq 32
        30: .line 727
            aload 11 /* om */
            invokevirtual java.util.Optional.get:()Ljava/lang/Object;
            checkcast java.lang.Module
            astore 15 /* other */
        31: .line 728
            goto 34
        32: .line 729
      StackMap locals:
      StackMap stack:
            aload 3 /* option */
            aload 12 /* name */
            invokestatic jdk.internal.module.ModuleBootstrap.warnUnknownModule:(Ljava/lang/String;Ljava/lang/String;)V
        33: .line 730
            goto 44
        34: .line 733
      StackMap locals:
      StackMap stack:
            iload 14 /* allUnnamed */
            ifeq 40
        35: .line 734
            iload 2 /* opens */
            ifeq 38
        36: .line 735
            aload 10 /* m */
            aload 9 /* pn */
            invokestatic jdk.internal.module.Modules.addOpensToAllUnnamed:(Ljava/lang/Module;Ljava/lang/String;)V
        37: .line 736
            goto 44
        38: .line 737
      StackMap locals:
      StackMap stack:
            aload 10 /* m */
            aload 9 /* pn */
            invokestatic jdk.internal.module.Modules.addExportsToAllUnnamed:(Ljava/lang/Module;Ljava/lang/String;)V
        39: .line 739
            goto 44
        40: .line 740
      StackMap locals:
      StackMap stack:
            iload 2 /* opens */
            ifeq 43
        41: .line 741
            aload 10 /* m */
            aload 9 /* pn */
            aload 15 /* other */
            invokestatic jdk.internal.module.Modules.addOpens:(Ljava/lang/Module;Ljava/lang/String;Ljava/lang/Module;)V
        42: .line 742
            goto 44
        43: .line 743
      StackMap locals:
      StackMap stack:
            aload 10 /* m */
            aload 9 /* pn */
            aload 15 /* other */
            invokestatic jdk.internal.module.Modules.addExports:(Ljava/lang/Module;Ljava/lang/String;Ljava/lang/Module;)V
        end local 15 // java.lang.Module other
        end local 14 // boolean allUnnamed
        end local 12 // java.lang.String name
        44: .line 719
      StackMap locals: java.lang.ModuleLayer java.util.Map int java.lang.String java.util.Map$Entry java.util.Iterator java.lang.String java.lang.String[] java.lang.String java.lang.String java.lang.Module java.util.Optional top java.util.Iterator
      StackMap stack:
            aload 13
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 22
        end local 11 // java.util.Optional om
        end local 10 // java.lang.Module m
        end local 9 // java.lang.String pn
        end local 8 // java.lang.String mn
        end local 7 // java.lang.String[] s
        end local 6 // java.lang.String key
        end local 4 // java.util.Map$Entry e
        45: .line 690
      StackMap locals: java.lang.ModuleLayer java.util.Map int java.lang.String top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        46: .line 748
            return
        end local 3 // java.lang.String option
        end local 2 // boolean opens
        end local 1 // java.util.Map map
        end local 0 // java.lang.ModuleLayer bootLayer
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   47     0   bootLayer  Ljava/lang/ModuleLayer;
            0   47     1         map  Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
            0   47     2       opens  Z
            3   47     3      option  Ljava/lang/String;
            5   45     4           e  Ljava/util/Map$Entry<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
            6   45     6         key  Ljava/lang/String;
            7   45     7           s  [Ljava/lang/String;
           10   45     8          mn  Ljava/lang/String;
           11   45     9          pn  Ljava/lang/String;
           18   45    10           m  Ljava/lang/Module;
           14   45    11          om  Ljava/util/Optional<Ljava/lang/Module;>;
           23   44    12        name  Ljava/lang/String;
           24   44    14  allUnnamed  Z
           25   44    15       other  Ljava/lang/Module;
    Signature: (Ljava/lang/ModuleLayer;Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;Z)V
    MethodParameters:
           Name  Flags
      bootLayer  
      map        
      opens      

  private static void addIllegalAccess(java.lang.module.ModuleFinder, java.util.Map<java.lang.String, java.util.Set<java.lang.String>>, java.util.Map<java.lang.String, java.util.Set<java.lang.String>>, java.lang.ModuleLayer, );
    descriptor: (Ljava/lang/module/ModuleFinder;Ljava/util/Map;Ljava/util/Map;Ljava/lang/ModuleLayer;Z)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=18, args_size=5
        start local 0 // java.lang.module.ModuleFinder upgradeModulePath
        start local 1 // java.util.Map concealedPackagesToOpen
        start local 2 // java.util.Map exportedPackagesToOpen
        start local 3 // java.lang.ModuleLayer bootLayer
        start local 4 // boolean extraExportsOrOpens
         0: .line 759
            ldc "jdk.module.illegalAccess"
            invokestatic jdk.internal.module.ModuleBootstrap.getAndRemoveProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 5 /* value */
        start local 5 // java.lang.String value
         1: .line 760
            getstatic jdk.internal.module.IllegalAccessLogger$Mode.ONESHOT:Ljdk/internal/module/IllegalAccessLogger$Mode;
            astore 6 /* mode */
        start local 6 // jdk.internal.module.IllegalAccessLogger$Mode mode
         2: .line 761
            aload 5 /* value */
            ifnull 17
         3: .line 762
            aload 5 /* value */
            dup
            astore 7
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 4
           -991722469: 4
              3079692: 5
              3641990: 6
             95458899: 7
              default: 13
          }
      StackMap locals: java.lang.String jdk.internal.module.IllegalAccessLogger$Mode java.lang.String
      StackMap stack:
         4: aload 7
            ldc "permit"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 17
            goto 13
      StackMap locals:
      StackMap stack:
         5: aload 7
            ldc "deny"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 8
            goto 13
      StackMap locals:
      StackMap stack:
         6: aload 7
            ldc "warn"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 9
            goto 13
      StackMap locals:
      StackMap stack:
         7: aload 7
            ldc "debug"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 11
            goto 13
         8: .line 764
      StackMap locals:
      StackMap stack:
            return
         9: .line 768
      StackMap locals:
      StackMap stack:
            getstatic jdk.internal.module.IllegalAccessLogger$Mode.WARN:Ljdk/internal/module/IllegalAccessLogger$Mode;
            astore 6 /* mode */
        10: .line 769
            goto 17
        11: .line 771
      StackMap locals:
      StackMap stack:
            getstatic jdk.internal.module.IllegalAccessLogger$Mode.DEBUG:Ljdk/internal/module/IllegalAccessLogger$Mode;
            astore 6 /* mode */
        12: .line 772
            goto 17
        13: .line 774
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "Value specified to --illegal-access not recognized: '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        14: .line 775
            aload 5 /* value */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "'"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        15: .line 774
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic jdk.internal.module.ModuleBootstrap.fail:(Ljava/lang/String;)V
        16: .line 776
            return
        17: .line 780
      StackMap locals:
      StackMap stack:
            new jdk.internal.module.IllegalAccessLogger$Builder
            dup
            aload 6 /* mode */
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            invokespecial jdk.internal.module.IllegalAccessLogger$Builder.<init>:(Ljdk/internal/module/IllegalAccessLogger$Mode;Ljava/io/PrintStream;)V
        18: .line 779
            astore 8 /* builder */
        start local 8 // jdk.internal.module.IllegalAccessLogger$Builder builder
        19: .line 782
            aload 1 /* concealedPackagesToOpen */
            invokeinterface java.util.Map.isEmpty:()Z
            ifeq 23
            aload 2 /* exportedPackagesToOpen */
            invokeinterface java.util.Map.isEmpty:()Z
            ifeq 23
        20: .line 784
            invokestatic jdk.internal.module.ModuleBootstrap.limitedFinder:()Ljava/lang/module/ModuleFinder;
            invokestatic jdk.internal.module.IllegalAccessMaps.generate:(Ljava/lang/module/ModuleFinder;)Ljdk/internal/module/IllegalAccessMaps;
            astore 9 /* maps */
        start local 9 // jdk.internal.module.IllegalAccessMaps maps
        21: .line 785
            aload 9 /* maps */
            invokevirtual jdk.internal.module.IllegalAccessMaps.concealedPackagesToOpen:()Ljava/util/Map;
            astore 1 /* concealedPackagesToOpen */
        22: .line 786
            aload 9 /* maps */
            invokevirtual jdk.internal.module.IllegalAccessMaps.exportedPackagesToOpen:()Ljava/util/Map;
            astore 2 /* exportedPackagesToOpen */
        end local 9 // jdk.internal.module.IllegalAccessMaps maps
        23: .line 790
      StackMap locals: java.lang.module.ModuleFinder java.util.Map java.util.Map java.lang.ModuleLayer int java.lang.String jdk.internal.module.IllegalAccessLogger$Mode top jdk.internal.module.IllegalAccessLogger$Builder
      StackMap stack:
            invokestatic java.util.Set.of:()Ljava/util/Set;
            astore 9 /* emptySet */
        start local 9 // java.util.Set emptySet
        24: .line 791
            aload 3 /* bootLayer */
            invokevirtual java.lang.ModuleLayer.modules:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 11
            goto 55
      StackMap locals: java.lang.module.ModuleFinder java.util.Map java.util.Map java.lang.ModuleLayer int java.lang.String jdk.internal.module.IllegalAccessLogger$Mode top jdk.internal.module.IllegalAccessLogger$Builder java.util.Set top java.util.Iterator
      StackMap stack:
        25: aload 11
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Module
            astore 10 /* m */
        start local 10 // java.lang.Module m
        26: .line 792
            aload 10 /* m */
            invokevirtual java.lang.Module.getDescriptor:()Ljava/lang/module/ModuleDescriptor;
            astore 12 /* descriptor */
        start local 12 // java.lang.module.ModuleDescriptor descriptor
        27: .line 793
            aload 10 /* m */
            invokevirtual java.lang.Module.getName:()Ljava/lang/String;
            astore 13 /* name */
        start local 13 // java.lang.String name
        28: .line 796
            aload 12 /* descriptor */
            invokevirtual java.lang.module.ModuleDescriptor.isOpen:()Z
            ifeq 30
        29: .line 797
            goto 55
        30: .line 801
      StackMap locals: java.lang.module.ModuleFinder java.util.Map java.util.Map java.lang.ModuleLayer int java.lang.String jdk.internal.module.IllegalAccessLogger$Mode top jdk.internal.module.IllegalAccessLogger$Builder java.util.Set java.lang.Module java.util.Iterator java.lang.module.ModuleDescriptor java.lang.String
      StackMap stack:
            aload 0 /* upgradeModulePath */
            ifnull 33
        31: .line 802
            aload 0 /* upgradeModulePath */
            aload 13 /* name */
            invokeinterface java.lang.module.ModuleFinder.find:(Ljava/lang/String;)Ljava/util/Optional;
            invokevirtual java.util.Optional.isPresent:()Z
            ifeq 33
        32: .line 803
            goto 55
        33: .line 806
      StackMap locals:
      StackMap stack:
            aload 1 /* concealedPackagesToOpen */
            aload 13 /* name */
            aload 9 /* emptySet */
            invokeinterface java.util.Map.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Set
            astore 14 /* concealedPackages */
        start local 14 // java.util.Set concealedPackages
        34: .line 807
            aload 2 /* exportedPackagesToOpen */
            aload 13 /* name */
            aload 9 /* emptySet */
            invokeinterface java.util.Map.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Set
            astore 15 /* exportedPackages */
        start local 15 // java.util.Set exportedPackages
        35: .line 810
            iload 4 /* extraExportsOrOpens */
            ifeq 51
        36: .line 811
            new java.util.HashSet
            dup
            aload 14 /* concealedPackages */
            invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
            astore 14 /* concealedPackages */
        37: .line 812
            new java.util.HashSet
            dup
            aload 15 /* exportedPackages */
            invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
            astore 15 /* exportedPackages */
        38: .line 813
            aload 14 /* concealedPackages */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 16 /* iterator */
        start local 16 // java.util.Iterator iterator
        39: .line 814
            goto 44
        40: .line 815
      StackMap locals: java.util.Set java.util.Set java.util.Iterator
      StackMap stack:
            aload 16 /* iterator */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 17 /* pn */
        start local 17 // java.lang.String pn
        41: .line 816
            aload 10 /* m */
            aload 17 /* pn */
            invokestatic jdk.internal.loader.BootLoader.getUnnamedModule:()Ljava/lang/Module;
            invokevirtual java.lang.Module.isExported:(Ljava/lang/String;Ljava/lang/Module;)Z
            ifeq 44
        42: .line 818
            aload 16 /* iterator */
            invokeinterface java.util.Iterator.remove:()V
        43: .line 819
            aload 15 /* exportedPackages */
            aload 17 /* pn */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 17 // java.lang.String pn
        44: .line 814
      StackMap locals:
      StackMap stack:
            aload 16 /* iterator */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 40
        45: .line 822
            aload 15 /* exportedPackages */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 16 /* iterator */
        46: .line 823
            goto 50
        47: .line 824
      StackMap locals:
      StackMap stack:
            aload 16 /* iterator */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 17 /* pn */
        start local 17 // java.lang.String pn
        48: .line 825
            aload 10 /* m */
            aload 17 /* pn */
            invokestatic jdk.internal.loader.BootLoader.getUnnamedModule:()Ljava/lang/Module;
            invokevirtual java.lang.Module.isOpen:(Ljava/lang/String;Ljava/lang/Module;)Z
            ifeq 50
        49: .line 827
            aload 16 /* iterator */
            invokeinterface java.util.Iterator.remove:()V
        end local 17 // java.lang.String pn
        50: .line 823
      StackMap locals:
      StackMap stack:
            aload 16 /* iterator */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 47
        end local 16 // java.util.Iterator iterator
        51: .line 833
      StackMap locals:
      StackMap stack:
            aload 8 /* builder */
            aload 10 /* m */
            aload 14 /* concealedPackages */
            invokevirtual jdk.internal.module.IllegalAccessLogger$Builder.logAccessToConcealedPackages:(Ljava/lang/Module;Ljava/util/Set;)Ljdk/internal/module/IllegalAccessLogger$Builder;
            pop
        52: .line 836
            aload 8 /* builder */
            aload 10 /* m */
            aload 15 /* exportedPackages */
            invokevirtual jdk.internal.module.IllegalAccessLogger$Builder.logAccessToExportedPackages:(Ljava/lang/Module;Ljava/util/Set;)Ljdk/internal/module/IllegalAccessLogger$Builder;
            pop
        53: .line 839
            invokestatic jdk.internal.access.SharedSecrets.getJavaLangAccess:()Ljdk/internal/access/JavaLangAccess;
            astore 16 /* jla */
        start local 16 // jdk.internal.access.JavaLangAccess jla
        54: .line 840
            aload 16 /* jla */
            aload 10 /* m */
            aload 14 /* concealedPackages */
            aload 15 /* exportedPackages */
            invokeinterface jdk.internal.access.JavaLangAccess.addOpensToAllUnnamed:(Ljava/lang/Module;Ljava/util/Set;Ljava/util/Set;)V
        end local 16 // jdk.internal.access.JavaLangAccess jla
        end local 15 // java.util.Set exportedPackages
        end local 14 // java.util.Set concealedPackages
        end local 13 // java.lang.String name
        end local 12 // java.lang.module.ModuleDescriptor descriptor
        end local 10 // java.lang.Module m
        55: .line 791
      StackMap locals: java.lang.module.ModuleFinder java.util.Map java.util.Map java.lang.ModuleLayer int java.lang.String jdk.internal.module.IllegalAccessLogger$Mode top jdk.internal.module.IllegalAccessLogger$Builder java.util.Set top java.util.Iterator
      StackMap stack:
            aload 11
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 25
        56: .line 843
            aload 8 /* builder */
            invokevirtual jdk.internal.module.IllegalAccessLogger$Builder.complete:()V
        57: .line 844
            return
        end local 9 // java.util.Set emptySet
        end local 8 // jdk.internal.module.IllegalAccessLogger$Builder builder
        end local 6 // jdk.internal.module.IllegalAccessLogger$Mode mode
        end local 5 // java.lang.String value
        end local 4 // boolean extraExportsOrOpens
        end local 3 // java.lang.ModuleLayer bootLayer
        end local 2 // java.util.Map exportedPackagesToOpen
        end local 1 // java.util.Map concealedPackagesToOpen
        end local 0 // java.lang.module.ModuleFinder upgradeModulePath
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   58     0        upgradeModulePath  Ljava/lang/module/ModuleFinder;
            0   58     1  concealedPackagesToOpen  Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;>;
            0   58     2   exportedPackagesToOpen  Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;>;
            0   58     3                bootLayer  Ljava/lang/ModuleLayer;
            0   58     4      extraExportsOrOpens  Z
            1   58     5                    value  Ljava/lang/String;
            2   58     6                     mode  Ljdk/internal/module/IllegalAccessLogger$Mode;
           19   58     8                  builder  Ljdk/internal/module/IllegalAccessLogger$Builder;
           21   23     9                     maps  Ljdk/internal/module/IllegalAccessMaps;
           24   58     9                 emptySet  Ljava/util/Set<Ljava/lang/String;>;
           26   55    10                        m  Ljava/lang/Module;
           27   55    12               descriptor  Ljava/lang/module/ModuleDescriptor;
           28   55    13                     name  Ljava/lang/String;
           34   55    14        concealedPackages  Ljava/util/Set<Ljava/lang/String;>;
           35   55    15         exportedPackages  Ljava/util/Set<Ljava/lang/String;>;
           39   51    16                 iterator  Ljava/util/Iterator<Ljava/lang/String;>;
           41   44    17                       pn  Ljava/lang/String;
           48   50    17                       pn  Ljava/lang/String;
           54   55    16                      jla  Ljdk/internal/access/JavaLangAccess;
    Signature: (Ljava/lang/module/ModuleFinder;Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;>;Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;>;Ljava/lang/ModuleLayer;Z)V
    MethodParameters:
                         Name  Flags
      upgradeModulePath        
      concealedPackagesToOpen  
      exportedPackagesToOpen   
      bootLayer                
      extraExportsOrOpens      

  private static java.util.Map<java.lang.String, java.util.List<java.lang.String>> decode(java.lang.String, java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Z)Ljava/util/Map;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=15, args_size=3
        start local 0 // java.lang.String prefix
        start local 1 // java.lang.String regex
        start local 2 // boolean allowDuplicates
         0: .line 856
            iconst_0
            istore 3 /* index */
        start local 3 // int index
         1: .line 858
            new java.lang.StringBuilder
            dup
            aload 0 /* prefix */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 3 /* index */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic jdk.internal.module.ModuleBootstrap.getAndRemoveProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* value */
        start local 4 // java.lang.String value
         2: .line 859
            aload 4 /* value */
            ifnonnull 4
         3: .line 860
            invokestatic java.util.Map.of:()Ljava/util/Map;
            areturn
         4: .line 862
      StackMap locals: int java.lang.String
      StackMap stack:
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 5 /* map */
        start local 5 // java.util.Map map
         5: .line 864
            goto 30
         6: .line 866
      StackMap locals: java.util.Map
      StackMap stack:
            aload 4 /* value */
            bipush 61
            invokevirtual java.lang.String.indexOf:(I)I
            istore 6 /* pos */
        start local 6 // int pos
         7: .line 867
            iload 6 /* pos */
            iconst_m1
            if_icmpne 9
         8: .line 868
            aload 0 /* prefix */
            invokestatic jdk.internal.module.ModuleBootstrap.option:(Ljava/lang/String;)Ljava/lang/String;
            ldc "<module>=<value>"
            aload 4 /* value */
            invokestatic jdk.internal.module.ModuleBootstrap.unableToParse:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokestatic jdk.internal.module.ModuleBootstrap.fail:(Ljava/lang/String;)V
         9: .line 869
      StackMap locals: int
      StackMap stack:
            iload 6 /* pos */
            ifne 11
        10: .line 870
            aload 0 /* prefix */
            invokestatic jdk.internal.module.ModuleBootstrap.option:(Ljava/lang/String;)Ljava/lang/String;
            ldc "<module>=<value>"
            aload 4 /* value */
            invokestatic jdk.internal.module.ModuleBootstrap.unableToParse:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokestatic jdk.internal.module.ModuleBootstrap.fail:(Ljava/lang/String;)V
        11: .line 873
      StackMap locals:
      StackMap stack:
            aload 4 /* value */
            iconst_0
            iload 6 /* pos */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 7 /* key */
        start local 7 // java.lang.String key
        12: .line 875
            aload 4 /* value */
            iload 6 /* pos */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 8 /* rhs */
        start local 8 // java.lang.String rhs
        13: .line 876
            aload 8 /* rhs */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 15
        14: .line 877
            aload 0 /* prefix */
            invokestatic jdk.internal.module.ModuleBootstrap.option:(Ljava/lang/String;)Ljava/lang/String;
            ldc "<module>=<value>"
            aload 4 /* value */
            invokestatic jdk.internal.module.ModuleBootstrap.unableToParse:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokestatic jdk.internal.module.ModuleBootstrap.fail:(Ljava/lang/String;)V
        15: .line 880
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            iload 2 /* allowDuplicates */
            ifne 17
            aload 5 /* map */
            aload 7 /* key */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 17
        16: .line 881
            new java.lang.StringBuilder
            dup
            aload 7 /* key */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " specified more than once to "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* prefix */
            invokestatic jdk.internal.module.ModuleBootstrap.option:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic jdk.internal.module.ModuleBootstrap.fail:(Ljava/lang/String;)V
        17: .line 882
      StackMap locals:
      StackMap stack:
            aload 5 /* map */
            aload 7 /* key */
            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;
                  jdk/internal/module/ModuleBootstrap.lambda$15(Ljava/lang/String;)Ljava/util/List; (6)
                  (Ljava/lang/String;)Ljava/util/List;
            invokeinterface java.util.Map.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
            checkcast java.util.List
            astore 9 /* values */
        start local 9 // java.util.List values
        18: .line 883
            iconst_0
            istore 10 /* ntargets */
        start local 10 // int ntargets
        19: .line 884
            aload 8 /* rhs */
            aload 1 /* regex */
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            dup
            astore 14
            arraylength
            istore 13
            iconst_0
            istore 12
            goto 25
      StackMap locals: java.lang.String java.lang.String int int java.lang.String java.util.Map int java.lang.String java.lang.String java.util.List int top int int java.lang.String[]
      StackMap stack:
        20: aload 14
            iload 12
            aaload
            astore 11 /* s */
        start local 11 // java.lang.String s
        21: .line 885
            aload 11 /* s */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 24
        22: .line 886
            aload 9 /* values */
            aload 11 /* s */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        23: .line 887
            iinc 10 /* ntargets */ 1
        end local 11 // java.lang.String s
        24: .line 884
      StackMap locals:
      StackMap stack:
            iinc 12 1
      StackMap locals:
      StackMap stack:
        25: iload 12
            iload 13
            if_icmplt 20
        26: .line 890
            iload 10 /* ntargets */
            ifne 28
        27: .line 891
            new java.lang.StringBuilder
            dup
            ldc "Target must be specified: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* prefix */
            invokestatic jdk.internal.module.ModuleBootstrap.option:(Ljava/lang/String;)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;
            aload 4 /* value */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic jdk.internal.module.ModuleBootstrap.fail:(Ljava/lang/String;)V
        28: .line 893
      StackMap locals: java.lang.String java.lang.String int int java.lang.String java.util.Map int java.lang.String java.lang.String java.util.List int
      StackMap stack:
            iinc 3 /* index */ 1
        29: .line 894
            new java.lang.StringBuilder
            dup
            aload 0 /* prefix */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 3 /* index */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic jdk.internal.module.ModuleBootstrap.getAndRemoveProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* value */
        end local 10 // int ntargets
        end local 9 // java.util.List values
        end local 8 // java.lang.String rhs
        end local 7 // java.lang.String key
        end local 6 // int pos
        30: .line 864
      StackMap locals: java.lang.String java.lang.String int int java.lang.String java.util.Map
      StackMap stack:
            aload 4 /* value */
            ifnonnull 6
        31: .line 897
            aload 5 /* map */
            areturn
        end local 5 // java.util.Map map
        end local 4 // java.lang.String value
        end local 3 // int index
        end local 2 // boolean allowDuplicates
        end local 1 // java.lang.String regex
        end local 0 // java.lang.String prefix
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   32     0           prefix  Ljava/lang/String;
            0   32     1            regex  Ljava/lang/String;
            0   32     2  allowDuplicates  Z
            1   32     3            index  I
            2   32     4            value  Ljava/lang/String;
            5   32     5              map  Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
            7   30     6              pos  I
           12   30     7              key  Ljava/lang/String;
           13   30     8              rhs  Ljava/lang/String;
           18   30     9           values  Ljava/util/List<Ljava/lang/String;>;
           19   30    10         ntargets  I
           21   24    11                s  Ljava/lang/String;
    Signature: (Ljava/lang/String;Ljava/lang/String;Z)Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
    MethodParameters:
                 Name  Flags
      prefix           
      regex            
      allowDuplicates  

  private static java.util.Map<java.lang.String, java.util.List<java.lang.String>> decode(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/Map;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.String prefix
         0: .line 905
            aload 0 /* prefix */
            ldc ","
            iconst_1
            invokestatic jdk.internal.module.ModuleBootstrap.decode:(Ljava/lang/String;Ljava/lang/String;Z)Ljava/util/Map;
            areturn
        end local 0 // java.lang.String prefix
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  prefix  Ljava/lang/String;
    Signature: (Ljava/lang/String;)Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
    MethodParameters:
        Name  Flags
      prefix  

  private static java.lang.String getAndRemoveProperty(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String key
         0: .line 912
            invokestatic java.lang.System.getProperties:()Ljava/util/Properties;
            aload 0 /* key */
            invokevirtual java.util.Properties.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            areturn
        end local 0 // java.lang.String key
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   key  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      key   

  private static void checkIncubatingStatus(java.lang.module.Configuration);
    descriptor: (Ljava/lang/module/Configuration;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=6, args_size=1
        start local 0 // java.lang.module.Configuration cf
         0: .line 919
            aconst_null
            astore 1 /* incubating */
        start local 1 // java.lang.String incubating
         1: .line 920
            aload 0 /* cf */
            invokevirtual java.lang.module.Configuration.modules:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 10
      StackMap locals: java.lang.module.Configuration java.lang.String top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.module.ResolvedModule
            astore 2 /* resolvedModule */
        start local 2 // java.lang.module.ResolvedModule resolvedModule
         3: .line 921
            aload 2 /* resolvedModule */
            invokevirtual java.lang.module.ResolvedModule.reference:()Ljava/lang/module/ModuleReference;
            astore 4 /* mref */
        start local 4 // java.lang.module.ModuleReference mref
         4: .line 924
            aload 4 /* mref */
            invokestatic jdk.internal.module.ModuleResolution.hasIncubatingWarning:(Ljava/lang/module/ModuleReference;)Z
            ifeq 10
         5: .line 925
            aload 4 /* mref */
            invokevirtual java.lang.module.ModuleReference.descriptor:()Ljava/lang/module/ModuleDescriptor;
            invokevirtual java.lang.module.ModuleDescriptor.name:()Ljava/lang/String;
            astore 5 /* mn */
        start local 5 // java.lang.String mn
         6: .line 926
            aload 1 /* incubating */
            ifnonnull 9
         7: .line 927
            aload 5 /* mn */
            astore 1 /* incubating */
         8: .line 928
            goto 10
         9: .line 929
      StackMap locals: java.lang.module.Configuration java.lang.String java.lang.module.ResolvedModule java.util.Iterator java.lang.module.ModuleReference java.lang.String
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 1 /* incubating */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* mn */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* incubating */
        end local 5 // java.lang.String mn
        end local 4 // java.lang.module.ModuleReference mref
        end local 2 // java.lang.module.ResolvedModule resolvedModule
        10: .line 920
      StackMap locals: java.lang.module.Configuration java.lang.String top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        11: .line 933
            aload 1 /* incubating */
            ifnull 13
        12: .line 934
            new java.lang.StringBuilder
            dup
            ldc "Using incubator modules: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* incubating */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic jdk.internal.module.ModuleBootstrap.warn:(Ljava/lang/String;)V
        13: .line 935
      StackMap locals: java.lang.module.Configuration java.lang.String
      StackMap stack:
            return
        end local 1 // java.lang.String incubating
        end local 0 // java.lang.module.Configuration cf
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   14     0              cf  Ljava/lang/module/Configuration;
            1   14     1      incubating  Ljava/lang/String;
            3   10     2  resolvedModule  Ljava/lang/module/ResolvedModule;
            4   10     4            mref  Ljava/lang/module/ModuleReference;
            6   10     5              mn  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      cf    

  static void fail(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.String m
         0: .line 941
            new java.lang.RuntimeException
            dup
            aload 0 /* m */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // java.lang.String m
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     m  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      m     

  static void warn(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.lang.String m
         0: .line 945
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "WARNING: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* m */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         1: .line 946
            return
        end local 0 // java.lang.String m
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     m  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      m     

  static void warnUnknownModule(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.String option
        start local 1 // java.lang.String mn
         0: .line 949
            new java.lang.StringBuilder
            dup
            ldc "Unknown module: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* mn */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " specified to "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* option */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic jdk.internal.module.ModuleBootstrap.warn:(Ljava/lang/String;)V
         1: .line 950
            return
        end local 1 // java.lang.String mn
        end local 0 // java.lang.String option
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0  option  Ljava/lang/String;
            0    2     1      mn  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      option  
      mn      

  static java.lang.String unableToParse(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=3, args_size=3
        start local 0 // java.lang.String option
        start local 1 // java.lang.String text
        start local 2 // java.lang.String value
         0: .line 953
            new java.lang.StringBuilder
            dup
            ldc "Unable to parse "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* option */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* text */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ": "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* value */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 2 // java.lang.String value
        end local 1 // java.lang.String text
        end local 0 // java.lang.String option
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  option  Ljava/lang/String;
            0    1     1    text  Ljava/lang/String;
            0    1     2   value  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      option  
      text    
      value   

  static java.lang.String option(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.lang.String prefix
         0: .line 968
            aload 0 /* prefix */
            dup
            astore 1
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 5
          -1634796447: 1
            693588459: 2
            919126689: 3
            994726637: 4
           1390198411: 5
              default: 11
          }
      StackMap locals: java.lang.String
      StackMap stack:
         1: aload 1
            ldc "jdk.module.addmods."
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 10
            goto 11
      StackMap locals:
      StackMap stack:
         2: aload 1
            ldc "jdk.module.patch."
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 9
            goto 11
      StackMap locals:
      StackMap stack:
         3: aload 1
            ldc "jdk.module.addopens."
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 7
            goto 11
      StackMap locals:
      StackMap stack:
         4: aload 1
            ldc "jdk.module.addreads."
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 8
            goto 11
      StackMap locals:
      StackMap stack:
         5: aload 1
            ldc "jdk.module.addexports."
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 6
            goto 11
         6: .line 970
      StackMap locals:
      StackMap stack:
            ldc "--add-exports"
            areturn
         7: .line 972
      StackMap locals:
      StackMap stack:
            ldc "--add-opens"
            areturn
         8: .line 974
      StackMap locals:
      StackMap stack:
            ldc "--add-reads"
            areturn
         9: .line 976
      StackMap locals:
      StackMap stack:
            ldc "--patch-module"
            areturn
        10: .line 978
      StackMap locals:
      StackMap stack:
            ldc "--add-modules"
            areturn
        11: .line 980
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            aload 0 /* prefix */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // java.lang.String prefix
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   12     0  prefix  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      prefix  

  private static boolean lambda$2(java.lang.module.ModuleFinder, java.lang.String);
    descriptor: (Ljava/lang/module/ModuleFinder;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 mn
         0: .line 315
            aload 0
            aload 1 /* mn */
            invokeinterface java.lang.module.ModuleFinder.find:(Ljava/lang/String;)Ljava/util/Optional;
            invokevirtual java.util.Optional.isPresent:()Z
            ireturn
        end local 1 // java.lang.String mn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1    mn  Ljava/lang/String;

  private static void lambda$3(java.util.Set, java.lang.String);
    descriptor: (Ljava/util/Set;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 mn
         0: .line 316
            aload 0
            aload 1 /* mn */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            return
        end local 1 // java.lang.String mn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1    mn  Ljava/lang/String;

  private static boolean lambda$6(java.lang.module.ModuleFinder, java.lang.String);
    descriptor: (Ljava/lang/module/ModuleFinder;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 mn
         0: .line 327
            aload 0
            aload 1 /* mn */
            invokeinterface java.lang.module.ModuleFinder.find:(Ljava/lang/String;)Ljava/util/Optional;
            invokevirtual java.util.Optional.isPresent:()Z
            ireturn
        end local 1 // java.lang.String mn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1    mn  Ljava/lang/String;

  private static void lambda$7(java.util.Set, java.lang.String);
    descriptor: (Ljava/util/Set;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 mn
         0: .line 328
            aload 0
            aload 1 /* mn */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            return
        end local 1 // java.lang.String mn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1    mn  Ljava/lang/String;

  private static boolean lambda$8(java.lang.module.Configuration, java.lang.String);
    descriptor: (Ljava/lang/module/Configuration;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 mn
         0: .line 359
            aload 0
            aload 1 /* mn */
            invokevirtual java.lang.module.Configuration.findModule:(Ljava/lang/String;)Ljava/util/Optional;
            invokevirtual java.util.Optional.isPresent:()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 mn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     1    mn  Ljava/lang/String;

  private static void lambda$9(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String mn
         0: .line 360
            ldc "--patch-module"
            aload 0 /* mn */
            invokestatic jdk.internal.module.ModuleBootstrap.warnUnknownModule:(Ljava/lang/String;Ljava/lang/String;)V
            return
        end local 0 // java.lang.String mn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0    mn  Ljava/lang/String;

  private static void lambda$11(java.util.Map, java.lang.module.ModuleReference);
    descriptor: (Ljava/util/Map;Ljava/lang/module/ModuleReference;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=2, args_size=2
        start local 1 // java.lang.module.ModuleReference mref
         0: .line 527
            aload 0
            aload 1 /* mref */
            invokevirtual java.lang.module.ModuleReference.descriptor:()Ljava/lang/module/ModuleDescriptor;
            invokevirtual java.lang.module.ModuleDescriptor.name:()Ljava/lang/String;
            aload 1 /* mref */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            return
        end local 1 // java.lang.module.ModuleReference mref
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1  mref  Ljava/lang/module/ModuleReference;

  private static void lambda$14(java.util.Map, java.lang.module.ModuleReference);
    descriptor: (Ljava/util/Map;Ljava/lang/module/ModuleReference;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=2, args_size=2
        start local 1 // java.lang.module.ModuleReference mref
         0: .line 533
            aload 0
            aload 1 /* mref */
            invokevirtual java.lang.module.ModuleReference.descriptor:()Ljava/lang/module/ModuleDescriptor;
            invokevirtual java.lang.module.ModuleDescriptor.name:()Ljava/lang/String;
            aload 1 /* mref */
            invokeinterface java.util.Map.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            return
        end local 1 // java.lang.module.ModuleReference mref
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1  mref  Ljava/lang/module/ModuleReference;

  private static java.util.List lambda$15(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/List;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String k
         0: .line 882
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            areturn
        end local 0 // java.lang.String k
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     k  Ljava/lang/String;
}
SourceFile: "ModuleBootstrap.java"
NestMembers:
  jdk.internal.module.ModuleBootstrap$1  jdk.internal.module.ModuleBootstrap$Counters  jdk.internal.module.ModuleBootstrap$SafeModuleFinder
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public abstract Entry = java.util.Map$Entry of java.util.Map
  public Builder = jdk.internal.module.IllegalAccessLogger$Builder of jdk.internal.module.IllegalAccessLogger
  public final Mode = jdk.internal.module.IllegalAccessLogger$Mode of jdk.internal.module.IllegalAccessLogger
  jdk.internal.module.ModuleBootstrap$1
  Counters = jdk.internal.module.ModuleBootstrap$Counters of jdk.internal.module.ModuleBootstrap
  SafeModuleFinder = jdk.internal.module.ModuleBootstrap$SafeModuleFinder of jdk.internal.module.ModuleBootstrap