final class jdk.internal.module.Builder
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: jdk.internal.module.Builder
  super_class: java.lang.Object
{
  private static final jdk.internal.misc.JavaLangModuleAccess JLMA;
    descriptor: Ljdk/internal/misc/JavaLangModuleAccess;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static java.lang.module.ModuleDescriptor$Version cachedVersion;
    descriptor: Ljava/lang/module/ModuleDescriptor$Version;
    flags: (0x0008) ACC_STATIC

  final java.lang.String name;
    descriptor: Ljava/lang/String;
    flags: (0x0010) ACC_FINAL

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

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

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

  java.util.Set<java.lang.module.ModuleDescriptor$Requires> requires;
    descriptor: Ljava/util/Set;
    flags: (0x0000) 
    Signature: Ljava/util/Set<Ljava/lang/module/ModuleDescriptor$Requires;>;

  java.util.Set<java.lang.module.ModuleDescriptor$Exports> exports;
    descriptor: Ljava/util/Set;
    flags: (0x0000) 
    Signature: Ljava/util/Set<Ljava/lang/module/ModuleDescriptor$Exports;>;

  java.util.Set<java.lang.module.ModuleDescriptor$Opens> opens;
    descriptor: Ljava/util/Set;
    flags: (0x0000) 
    Signature: Ljava/util/Set<Ljava/lang/module/ModuleDescriptor$Opens;>;

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

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

  java.util.Set<java.lang.module.ModuleDescriptor$Provides> provides;
    descriptor: Ljava/util/Set;
    flags: (0x0000) 
    Signature: Ljava/util/Set<Ljava/lang/module/ModuleDescriptor$Provides;>;

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

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

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 51
            ldc Ljdk/internal/module/Builder;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic jdk.internal.module.Builder.$assertionsDisabled:Z
         3: .line 53
            invokestatic jdk.internal.misc.SharedSecrets.getJavaLangModuleAccess:()Ljdk/internal/misc/JavaLangModuleAccess;
         4: .line 52
            putstatic jdk.internal.module.Builder.JLMA:Ljdk/internal/misc/JavaLangModuleAccess;
         5: .line 57
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static java.lang.module.ModuleDescriptor$Requires newRequires(java.util.Set<java.lang.module.ModuleDescriptor$Requires$Modifier>, java.lang.String, java.lang.String);
    descriptor: (Ljava/util/Set;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/module/ModuleDescriptor$Requires;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // java.util.Set mods
        start local 1 // java.lang.String mn
        start local 2 // java.lang.String compiledVersion
         0: .line 68
            aconst_null
            astore 3 /* version */
        start local 3 // java.lang.module.ModuleDescriptor$Version version
         1: .line 69
            aload 2 /* compiledVersion */
            ifnull 7
         2: .line 71
            getstatic jdk.internal.module.Builder.cachedVersion:Ljava/lang/module/ModuleDescriptor$Version;
            astore 4 /* ver */
        start local 4 // java.lang.module.ModuleDescriptor$Version ver
         3: .line 72
            aload 4 /* ver */
            ifnull 6
            aload 2 /* compiledVersion */
            aload 4 /* ver */
            invokevirtual java.lang.module.ModuleDescriptor$Version.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 6
         4: .line 73
            aload 4 /* ver */
            astore 3 /* version */
         5: .line 74
            goto 7
         6: .line 75
      StackMap locals: java.lang.module.ModuleDescriptor$Version java.lang.module.ModuleDescriptor$Version
      StackMap stack:
            aload 2 /* compiledVersion */
            invokestatic java.lang.module.ModuleDescriptor$Version.parse:(Ljava/lang/String;)Ljava/lang/module/ModuleDescriptor$Version;
            astore 3 /* version */
        end local 4 // java.lang.module.ModuleDescriptor$Version ver
         7: .line 78
      StackMap locals:
      StackMap stack:
            getstatic jdk.internal.module.Builder.JLMA:Ljdk/internal/misc/JavaLangModuleAccess;
            aload 0 /* mods */
            aload 1 /* mn */
            aload 3 /* version */
            invokeinterface jdk.internal.misc.JavaLangModuleAccess.newRequires:(Ljava/util/Set;Ljava/lang/String;Ljava/lang/module/ModuleDescriptor$Version;)Ljava/lang/module/ModuleDescriptor$Requires;
            areturn
        end local 3 // java.lang.module.ModuleDescriptor$Version version
        end local 2 // java.lang.String compiledVersion
        end local 1 // java.lang.String mn
        end local 0 // java.util.Set mods
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    8     0             mods  Ljava/util/Set<Ljava/lang/module/ModuleDescriptor$Requires$Modifier;>;
            0    8     1               mn  Ljava/lang/String;
            0    8     2  compiledVersion  Ljava/lang/String;
            1    8     3          version  Ljava/lang/module/ModuleDescriptor$Version;
            3    7     4              ver  Ljava/lang/module/ModuleDescriptor$Version;
    Signature: (Ljava/util/Set<Ljava/lang/module/ModuleDescriptor$Requires$Modifier;>;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/module/ModuleDescriptor$Requires;
    MethodParameters:
                 Name  Flags
      mods             
      mn               
      compiledVersion  

  public static java.lang.module.ModuleDescriptor$Requires newRequires(java.util.Set<java.lang.module.ModuleDescriptor$Requires$Modifier>, java.lang.String);
    descriptor: (Ljava/util/Set;Ljava/lang/String;)Ljava/lang/module/ModuleDescriptor$Requires;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.util.Set mods
        start local 1 // java.lang.String mn
         0: .line 89
            aload 0 /* mods */
            aload 1 /* mn */
            aconst_null
            invokestatic jdk.internal.module.Builder.newRequires:(Ljava/util/Set;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/module/ModuleDescriptor$Requires;
            areturn
        end local 1 // java.lang.String mn
        end local 0 // java.util.Set mods
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  mods  Ljava/util/Set<Ljava/lang/module/ModuleDescriptor$Requires$Modifier;>;
            0    1     1    mn  Ljava/lang/String;
    Signature: (Ljava/util/Set<Ljava/lang/module/ModuleDescriptor$Requires$Modifier;>;Ljava/lang/String;)Ljava/lang/module/ModuleDescriptor$Requires;
    MethodParameters:
      Name  Flags
      mods  
      mn    

  public static java.lang.module.ModuleDescriptor$Exports newExports(java.util.Set<java.lang.module.ModuleDescriptor$Exports$Modifier>, java.lang.String, java.util.Set<java.lang.String>);
    descriptor: (Ljava/util/Set;Ljava/lang/String;Ljava/util/Set;)Ljava/lang/module/ModuleDescriptor$Exports;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // java.util.Set ms
        start local 1 // java.lang.String pn
        start local 2 // java.util.Set targets
         0: .line 100
            getstatic jdk.internal.module.Builder.JLMA:Ljdk/internal/misc/JavaLangModuleAccess;
            aload 0 /* ms */
            aload 1 /* pn */
            aload 2 /* targets */
            invokeinterface jdk.internal.misc.JavaLangModuleAccess.newExports:(Ljava/util/Set;Ljava/lang/String;Ljava/util/Set;)Ljava/lang/module/ModuleDescriptor$Exports;
            areturn
        end local 2 // java.util.Set targets
        end local 1 // java.lang.String pn
        end local 0 // java.util.Set ms
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0       ms  Ljava/util/Set<Ljava/lang/module/ModuleDescriptor$Exports$Modifier;>;
            0    1     1       pn  Ljava/lang/String;
            0    1     2  targets  Ljava/util/Set<Ljava/lang/String;>;
    Signature: (Ljava/util/Set<Ljava/lang/module/ModuleDescriptor$Exports$Modifier;>;Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;)Ljava/lang/module/ModuleDescriptor$Exports;
    MethodParameters:
         Name  Flags
      ms       
      pn       
      targets  

  public static java.lang.module.ModuleDescriptor$Opens newOpens(java.util.Set<java.lang.module.ModuleDescriptor$Opens$Modifier>, java.lang.String);
    descriptor: (Ljava/util/Set;Ljava/lang/String;)Ljava/lang/module/ModuleDescriptor$Opens;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.util.Set ms
        start local 1 // java.lang.String pn
         0: .line 108
            getstatic jdk.internal.module.Builder.JLMA:Ljdk/internal/misc/JavaLangModuleAccess;
            aload 0 /* ms */
            aload 1 /* pn */
            invokeinterface jdk.internal.misc.JavaLangModuleAccess.newOpens:(Ljava/util/Set;Ljava/lang/String;)Ljava/lang/module/ModuleDescriptor$Opens;
            areturn
        end local 1 // java.lang.String pn
        end local 0 // java.util.Set ms
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0    ms  Ljava/util/Set<Ljava/lang/module/ModuleDescriptor$Opens$Modifier;>;
            0    1     1    pn  Ljava/lang/String;
    Signature: (Ljava/util/Set<Ljava/lang/module/ModuleDescriptor$Opens$Modifier;>;Ljava/lang/String;)Ljava/lang/module/ModuleDescriptor$Opens;
    MethodParameters:
      Name  Flags
      ms    
      pn    

  public static java.lang.module.ModuleDescriptor$Opens newOpens(java.util.Set<java.lang.module.ModuleDescriptor$Opens$Modifier>, java.lang.String, java.util.Set<java.lang.String>);
    descriptor: (Ljava/util/Set;Ljava/lang/String;Ljava/util/Set;)Ljava/lang/module/ModuleDescriptor$Opens;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // java.util.Set ms
        start local 1 // java.lang.String pn
        start local 2 // java.util.Set targets
         0: .line 119
            getstatic jdk.internal.module.Builder.JLMA:Ljdk/internal/misc/JavaLangModuleAccess;
            aload 0 /* ms */
            aload 1 /* pn */
            aload 2 /* targets */
            invokeinterface jdk.internal.misc.JavaLangModuleAccess.newOpens:(Ljava/util/Set;Ljava/lang/String;Ljava/util/Set;)Ljava/lang/module/ModuleDescriptor$Opens;
            areturn
        end local 2 // java.util.Set targets
        end local 1 // java.lang.String pn
        end local 0 // java.util.Set ms
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0       ms  Ljava/util/Set<Ljava/lang/module/ModuleDescriptor$Opens$Modifier;>;
            0    1     1       pn  Ljava/lang/String;
            0    1     2  targets  Ljava/util/Set<Ljava/lang/String;>;
    Signature: (Ljava/util/Set<Ljava/lang/module/ModuleDescriptor$Opens$Modifier;>;Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;)Ljava/lang/module/ModuleDescriptor$Opens;
    MethodParameters:
         Name  Flags
      ms       
      pn       
      targets  

  public static java.lang.module.ModuleDescriptor$Exports newExports(java.util.Set<java.lang.module.ModuleDescriptor$Exports$Modifier>, java.lang.String);
    descriptor: (Ljava/util/Set;Ljava/lang/String;)Ljava/lang/module/ModuleDescriptor$Exports;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.util.Set ms
        start local 1 // java.lang.String pn
         0: .line 127
            getstatic jdk.internal.module.Builder.JLMA:Ljdk/internal/misc/JavaLangModuleAccess;
            aload 0 /* ms */
            aload 1 /* pn */
            invokeinterface jdk.internal.misc.JavaLangModuleAccess.newExports:(Ljava/util/Set;Ljava/lang/String;)Ljava/lang/module/ModuleDescriptor$Exports;
            areturn
        end local 1 // java.lang.String pn
        end local 0 // java.util.Set ms
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0    ms  Ljava/util/Set<Ljava/lang/module/ModuleDescriptor$Exports$Modifier;>;
            0    1     1    pn  Ljava/lang/String;
    Signature: (Ljava/util/Set<Ljava/lang/module/ModuleDescriptor$Exports$Modifier;>;Ljava/lang/String;)Ljava/lang/module/ModuleDescriptor$Exports;
    MethodParameters:
      Name  Flags
      ms    
      pn    

  public static java.lang.module.ModuleDescriptor$Provides newProvides(java.lang.String, java.util.List<java.lang.String>);
    descriptor: (Ljava/lang/String;Ljava/util/List;)Ljava/lang/module/ModuleDescriptor$Provides;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.String st
        start local 1 // java.util.List pcs
         0: .line 135
            getstatic jdk.internal.module.Builder.JLMA:Ljdk/internal/misc/JavaLangModuleAccess;
            aload 0 /* st */
            aload 1 /* pcs */
            invokeinterface jdk.internal.misc.JavaLangModuleAccess.newProvides:(Ljava/lang/String;Ljava/util/List;)Ljava/lang/module/ModuleDescriptor$Provides;
            areturn
        end local 1 // java.util.List pcs
        end local 0 // java.lang.String st
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0    st  Ljava/lang/String;
            0    1     1   pcs  Ljava/util/List<Ljava/lang/String;>;
    Signature: (Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;)Ljava/lang/module/ModuleDescriptor$Provides;
    MethodParameters:
      Name  Flags
      st    
      pcs   

  void <init>(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.internal.module.Builder this
        start local 1 // java.lang.String name
         0: .line 149
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 150
            aload 0 /* this */
            aload 1 /* name */
            putfield jdk.internal.module.Builder.name:Ljava/lang/String;
         2: .line 151
            aload 0 /* this */
            invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
            putfield jdk.internal.module.Builder.requires:Ljava/util/Set;
         3: .line 152
            aload 0 /* this */
            invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
            putfield jdk.internal.module.Builder.exports:Ljava/util/Set;
         4: .line 153
            aload 0 /* this */
            invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
            putfield jdk.internal.module.Builder.opens:Ljava/util/Set;
         5: .line 154
            aload 0 /* this */
            invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
            putfield jdk.internal.module.Builder.provides:Ljava/util/Set;
         6: .line 155
            aload 0 /* this */
            invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
            putfield jdk.internal.module.Builder.uses:Ljava/util/Set;
         7: .line 156
            return
        end local 1 // java.lang.String name
        end local 0 // jdk.internal.module.Builder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Ljdk/internal/module/Builder;
            0    8     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  jdk.internal.module.Builder open(boolean);
    descriptor: (Z)Ljdk/internal/module/Builder;
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.internal.module.Builder this
        start local 1 // boolean value
         0: .line 159
            aload 0 /* this */
            iload 1 /* value */
            putfield jdk.internal.module.Builder.open:Z
         1: .line 160
            aload 0 /* this */
            areturn
        end local 1 // boolean value
        end local 0 // jdk.internal.module.Builder this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Ljdk/internal/module/Builder;
            0    2     1  value  Z
    MethodParameters:
       Name  Flags
      value  

  jdk.internal.module.Builder synthetic(boolean);
    descriptor: (Z)Ljdk/internal/module/Builder;
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.internal.module.Builder this
        start local 1 // boolean value
         0: .line 164
            aload 0 /* this */
            iload 1 /* value */
            putfield jdk.internal.module.Builder.synthetic:Z
         1: .line 165
            aload 0 /* this */
            areturn
        end local 1 // boolean value
        end local 0 // jdk.internal.module.Builder this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Ljdk/internal/module/Builder;
            0    2     1  value  Z
    MethodParameters:
       Name  Flags
      value  

  jdk.internal.module.Builder mandated(boolean);
    descriptor: (Z)Ljdk/internal/module/Builder;
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.internal.module.Builder this
        start local 1 // boolean value
         0: .line 169
            aload 0 /* this */
            iload 1 /* value */
            putfield jdk.internal.module.Builder.mandated:Z
         1: .line 170
            aload 0 /* this */
            areturn
        end local 1 // boolean value
        end local 0 // jdk.internal.module.Builder this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Ljdk/internal/module/Builder;
            0    2     1  value  Z
    MethodParameters:
       Name  Flags
      value  

  public jdk.internal.module.Builder exports(java.lang.module.ModuleDescriptor$Exports[]);
    descriptor: ([Ljava/lang/module/ModuleDescriptor$Exports;)Ljdk/internal/module/Builder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.internal.module.Builder this
        start local 1 // java.lang.module.ModuleDescriptor$Exports[] exports
         0: .line 177
            aload 0 /* this */
            aload 1 /* exports */
            invokestatic java.util.Set.of:([Ljava/lang/Object;)Ljava/util/Set;
            putfield jdk.internal.module.Builder.exports:Ljava/util/Set;
         1: .line 178
            aload 0 /* this */
            areturn
        end local 1 // java.lang.module.ModuleDescriptor$Exports[] exports
        end local 0 // jdk.internal.module.Builder this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Ljdk/internal/module/Builder;
            0    2     1  exports  [Ljava/lang/module/ModuleDescriptor$Exports;
    MethodParameters:
         Name  Flags
      exports  

  public jdk.internal.module.Builder opens(java.lang.module.ModuleDescriptor$Opens[]);
    descriptor: ([Ljava/lang/module/ModuleDescriptor$Opens;)Ljdk/internal/module/Builder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.internal.module.Builder this
        start local 1 // java.lang.module.ModuleDescriptor$Opens[] opens
         0: .line 185
            aload 0 /* this */
            aload 1 /* opens */
            invokestatic java.util.Set.of:([Ljava/lang/Object;)Ljava/util/Set;
            putfield jdk.internal.module.Builder.opens:Ljava/util/Set;
         1: .line 186
            aload 0 /* this */
            areturn
        end local 1 // java.lang.module.ModuleDescriptor$Opens[] opens
        end local 0 // jdk.internal.module.Builder this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Ljdk/internal/module/Builder;
            0    2     1  opens  [Ljava/lang/module/ModuleDescriptor$Opens;
    MethodParameters:
       Name  Flags
      opens  

  public jdk.internal.module.Builder requires(java.lang.module.ModuleDescriptor$Requires[]);
    descriptor: ([Ljava/lang/module/ModuleDescriptor$Requires;)Ljdk/internal/module/Builder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.internal.module.Builder this
        start local 1 // java.lang.module.ModuleDescriptor$Requires[] requires
         0: .line 193
            aload 0 /* this */
            aload 1 /* requires */
            invokestatic java.util.Set.of:([Ljava/lang/Object;)Ljava/util/Set;
            putfield jdk.internal.module.Builder.requires:Ljava/util/Set;
         1: .line 194
            aload 0 /* this */
            areturn
        end local 1 // java.lang.module.ModuleDescriptor$Requires[] requires
        end local 0 // jdk.internal.module.Builder this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Ljdk/internal/module/Builder;
            0    2     1  requires  [Ljava/lang/module/ModuleDescriptor$Requires;
    MethodParameters:
          Name  Flags
      requires  

  public jdk.internal.module.Builder packages(java.util.Set<java.lang.String>);
    descriptor: (Ljava/util/Set;)Ljdk/internal/module/Builder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.internal.module.Builder this
        start local 1 // java.util.Set packages
         0: .line 201
            aload 0 /* this */
            aload 1 /* packages */
            putfield jdk.internal.module.Builder.packages:Ljava/util/Set;
         1: .line 202
            aload 0 /* this */
            areturn
        end local 1 // java.util.Set packages
        end local 0 // jdk.internal.module.Builder this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Ljdk/internal/module/Builder;
            0    2     1  packages  Ljava/util/Set<Ljava/lang/String;>;
    Signature: (Ljava/util/Set<Ljava/lang/String;>;)Ljdk/internal/module/Builder;
    MethodParameters:
          Name  Flags
      packages  

  public jdk.internal.module.Builder uses(java.util.Set<java.lang.String>);
    descriptor: (Ljava/util/Set;)Ljdk/internal/module/Builder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.internal.module.Builder this
        start local 1 // java.util.Set uses
         0: .line 209
            aload 0 /* this */
            aload 1 /* uses */
            putfield jdk.internal.module.Builder.uses:Ljava/util/Set;
         1: .line 210
            aload 0 /* this */
            areturn
        end local 1 // java.util.Set uses
        end local 0 // jdk.internal.module.Builder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljdk/internal/module/Builder;
            0    2     1  uses  Ljava/util/Set<Ljava/lang/String;>;
    Signature: (Ljava/util/Set<Ljava/lang/String;>;)Ljdk/internal/module/Builder;
    MethodParameters:
      Name  Flags
      uses  

  public jdk.internal.module.Builder provides(java.lang.module.ModuleDescriptor$Provides[]);
    descriptor: ([Ljava/lang/module/ModuleDescriptor$Provides;)Ljdk/internal/module/Builder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.internal.module.Builder this
        start local 1 // java.lang.module.ModuleDescriptor$Provides[] provides
         0: .line 217
            aload 0 /* this */
            aload 1 /* provides */
            invokestatic java.util.Set.of:([Ljava/lang/Object;)Ljava/util/Set;
            putfield jdk.internal.module.Builder.provides:Ljava/util/Set;
         1: .line 218
            aload 0 /* this */
            areturn
        end local 1 // java.lang.module.ModuleDescriptor$Provides[] provides
        end local 0 // jdk.internal.module.Builder this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Ljdk/internal/module/Builder;
            0    2     1  provides  [Ljava/lang/module/ModuleDescriptor$Provides;
    MethodParameters:
          Name  Flags
      provides  

  public jdk.internal.module.Builder version(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljdk/internal/module/Builder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // jdk.internal.module.Builder this
        start local 1 // java.lang.String v
         0: .line 230
            getstatic jdk.internal.module.Builder.cachedVersion:Ljava/lang/module/ModuleDescriptor$Version;
            astore 2 /* ver */
        start local 2 // java.lang.module.ModuleDescriptor$Version ver
         1: .line 231
            aload 2 /* ver */
            ifnull 4
            aload 1 /* v */
            aload 2 /* ver */
            invokevirtual java.lang.module.ModuleDescriptor$Version.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 4
         2: .line 232
            aload 0 /* this */
            aload 2 /* ver */
            putfield jdk.internal.module.Builder.version:Ljava/lang/module/ModuleDescriptor$Version;
         3: .line 233
            goto 5
         4: .line 234
      StackMap locals: java.lang.module.ModuleDescriptor$Version
      StackMap stack:
            aload 0 /* this */
            aload 1 /* v */
            invokestatic java.lang.module.ModuleDescriptor$Version.parse:(Ljava/lang/String;)Ljava/lang/module/ModuleDescriptor$Version;
            dup_x1
            putfield jdk.internal.module.Builder.version:Ljava/lang/module/ModuleDescriptor$Version;
            putstatic jdk.internal.module.Builder.cachedVersion:Ljava/lang/module/ModuleDescriptor$Version;
         5: .line 236
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 2 // java.lang.module.ModuleDescriptor$Version ver
        end local 1 // java.lang.String v
        end local 0 // jdk.internal.module.Builder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Ljdk/internal/module/Builder;
            0    6     1     v  Ljava/lang/String;
            1    6     2   ver  Ljava/lang/module/ModuleDescriptor$Version;
    MethodParameters:
      Name  Flags
      v     

  public jdk.internal.module.Builder mainClass(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljdk/internal/module/Builder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.internal.module.Builder this
        start local 1 // java.lang.String mc
         0: .line 243
            aload 0 /* this */
            aload 1 /* mc */
            putfield jdk.internal.module.Builder.mainClass:Ljava/lang/String;
         1: .line 244
            aload 0 /* this */
            areturn
        end local 1 // java.lang.String mc
        end local 0 // jdk.internal.module.Builder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljdk/internal/module/Builder;
            0    2     1    mc  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      mc    

  private java.util.Set<java.lang.module.ModuleDescriptor$Modifier> modifiers();
    descriptor: ()Ljava/util/Set;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // jdk.internal.module.Builder this
         0: .line 251
            iconst_0
            istore 1 /* n */
        start local 1 // int n
         1: .line 252
            aload 0 /* this */
            getfield jdk.internal.module.Builder.open:Z
            ifeq 2
            iinc 1 /* n */ 1
         2: .line 253
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.module.Builder.synthetic:Z
            ifeq 3
            iinc 1 /* n */ 1
         3: .line 254
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.module.Builder.mandated:Z
            ifeq 4
            iinc 1 /* n */ 1
         4: .line 255
      StackMap locals:
      StackMap stack:
            iload 1 /* n */
            ifne 6
         5: .line 256
            invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
            areturn
         6: .line 258
      StackMap locals:
      StackMap stack:
            iload 1 /* n */
            anewarray java.lang.module.ModuleDescriptor$Modifier
            astore 2 /* mods */
        start local 2 // java.lang.module.ModuleDescriptor$Modifier[] mods
         7: .line 259
            aload 0 /* this */
            getfield jdk.internal.module.Builder.open:Z
            ifeq 8
            aload 2 /* mods */
            iinc 1 /* n */ -1
            iload 1 /* n */
            getstatic java.lang.module.ModuleDescriptor$Modifier.OPEN:Ljava/lang/module/ModuleDescriptor$Modifier;
            aastore
         8: .line 260
      StackMap locals: java.lang.module.ModuleDescriptor$Modifier[]
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.module.Builder.synthetic:Z
            ifeq 9
            aload 2 /* mods */
            iinc 1 /* n */ -1
            iload 1 /* n */
            getstatic java.lang.module.ModuleDescriptor$Modifier.SYNTHETIC:Ljava/lang/module/ModuleDescriptor$Modifier;
            aastore
         9: .line 261
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.module.Builder.mandated:Z
            ifeq 10
            aload 2 /* mods */
            iinc 1 /* n */ -1
            iload 1 /* n */
            getstatic java.lang.module.ModuleDescriptor$Modifier.MANDATED:Ljava/lang/module/ModuleDescriptor$Modifier;
            aastore
        10: .line 262
      StackMap locals:
      StackMap stack:
            aload 2 /* mods */
            invokestatic java.util.Set.of:([Ljava/lang/Object;)Ljava/util/Set;
            areturn
        end local 2 // java.lang.module.ModuleDescriptor$Modifier[] mods
        end local 1 // int n
        end local 0 // jdk.internal.module.Builder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Ljdk/internal/module/Builder;
            1   11     1     n  I
            7   11     2  mods  [Ljava/lang/module/ModuleDescriptor$Modifier;
    Signature: ()Ljava/util/Set<Ljava/lang/module/ModuleDescriptor$Modifier;>;

  public java.lang.module.ModuleDescriptor build(int);
    descriptor: (I)Ljava/lang/module/ModuleDescriptor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=12, locals=2, args_size=2
        start local 0 // jdk.internal.module.Builder this
        start local 1 // int hashCode
         0: .line 270
            getstatic jdk.internal.module.Builder.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield jdk.internal.module.Builder.name:Ljava/lang/String;
            ifnonnull 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 271
      StackMap locals:
      StackMap stack:
            getstatic jdk.internal.module.Builder.JLMA:Ljdk/internal/misc/JavaLangModuleAccess;
            aload 0 /* this */
            getfield jdk.internal.module.Builder.name:Ljava/lang/String;
         2: .line 272
            aload 0 /* this */
            getfield jdk.internal.module.Builder.version:Ljava/lang/module/ModuleDescriptor$Version;
         3: .line 273
            aload 0 /* this */
            invokevirtual jdk.internal.module.Builder.modifiers:()Ljava/util/Set;
         4: .line 274
            aload 0 /* this */
            getfield jdk.internal.module.Builder.requires:Ljava/util/Set;
         5: .line 275
            aload 0 /* this */
            getfield jdk.internal.module.Builder.exports:Ljava/util/Set;
         6: .line 276
            aload 0 /* this */
            getfield jdk.internal.module.Builder.opens:Ljava/util/Set;
         7: .line 277
            aload 0 /* this */
            getfield jdk.internal.module.Builder.uses:Ljava/util/Set;
         8: .line 278
            aload 0 /* this */
            getfield jdk.internal.module.Builder.provides:Ljava/util/Set;
         9: .line 279
            aload 0 /* this */
            getfield jdk.internal.module.Builder.packages:Ljava/util/Set;
        10: .line 280
            aload 0 /* this */
            getfield jdk.internal.module.Builder.mainClass:Ljava/lang/String;
        11: .line 281
            iload 1 /* hashCode */
        12: .line 271
            invokeinterface jdk.internal.misc.JavaLangModuleAccess.newModuleDescriptor:(Ljava/lang/String;Ljava/lang/module/ModuleDescriptor$Version;Ljava/util/Set;Ljava/util/Set;Ljava/util/Set;Ljava/util/Set;Ljava/util/Set;Ljava/util/Set;Ljava/util/Set;Ljava/lang/String;I)Ljava/lang/module/ModuleDescriptor;
            areturn
        end local 1 // int hashCode
        end local 0 // jdk.internal.module.Builder this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   13     0      this  Ljdk/internal/module/Builder;
            0   13     1  hashCode  I
    MethodParameters:
          Name  Flags
      hashCode  
}
SourceFile: "Builder.java"
InnerClasses:
  public final Exports = java.lang.module.ModuleDescriptor$Exports of java.lang.module.ModuleDescriptor
  public final Modifier = java.lang.module.ModuleDescriptor$Exports$Modifier of java.lang.module.ModuleDescriptor$Exports
  public final Modifier = java.lang.module.ModuleDescriptor$Modifier of java.lang.module.ModuleDescriptor
  public final Opens = java.lang.module.ModuleDescriptor$Opens of java.lang.module.ModuleDescriptor
  public final Modifier = java.lang.module.ModuleDescriptor$Opens$Modifier of java.lang.module.ModuleDescriptor$Opens
  public final Provides = java.lang.module.ModuleDescriptor$Provides of java.lang.module.ModuleDescriptor
  public final Requires = java.lang.module.ModuleDescriptor$Requires of java.lang.module.ModuleDescriptor
  public final Modifier = java.lang.module.ModuleDescriptor$Requires$Modifier of java.lang.module.ModuleDescriptor$Requires
  public final Version = java.lang.module.ModuleDescriptor$Version of java.lang.module.ModuleDescriptor