public final class jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin implements jdk.tools.jlink.plugin.Plugin
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin
  super_class: java.lang.Object
{
  private static final java.lang.String NAME;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "generate-jli-classes"

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

  private static final java.lang.String DESCRIPTION;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.String IGNORE_VERSION_WARNING;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "generate-jli-classes.ignore.version.warn"

  private static final java.lang.String VERSION_MISMATCH_WARNING;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "generate-jli-classes.version.mismatch.warn"

  private static final java.lang.String DEFAULT_TRACE_FILE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "default_jli_trace.txt"

  private static final java.lang.String DIRECT_HOLDER;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "java/lang/invoke/DirectMethodHandle$Holder"

  private static final java.lang.String DMH_INVOKE_VIRTUAL;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "invokeVirtual"

  private static final java.lang.String DMH_INVOKE_STATIC;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "invokeStatic"

  private static final java.lang.String DMH_INVOKE_SPECIAL;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "invokeSpecial"

  private static final java.lang.String DMH_NEW_INVOKE_SPECIAL;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "newInvokeSpecial"

  private static final java.lang.String DMH_INVOKE_INTERFACE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "invokeInterface"

  private static final java.lang.String DMH_INVOKE_STATIC_INIT;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "invokeStaticInit"

  private static final java.lang.String DELEGATING_HOLDER;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "java/lang/invoke/DelegatingMethodHandle$Holder"

  private static final java.lang.String BASIC_FORMS_HOLDER;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "java/lang/invoke/LambdaForm$Holder"

  private static final java.lang.String INVOKERS_HOLDER;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "java/lang/invoke/Invokers$Holder"

  private static final jdk.internal.misc.JavaLangInvokeAccess JLIA;
    descriptor: Ljdk/internal/misc/JavaLangInvokeAccess;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

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

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

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

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

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

  private static final java.util.Map<java.lang.String, java.lang.Integer> DMH_METHOD_TYPE_MAP;
    descriptor: Ljava/util/Map;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;

  private static final java.lang.String DIRECT_METHOD_HOLDER_ENTRY;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "/java.base/java/lang/invoke/DirectMethodHandle$Holder.class"

  private static final java.lang.String DELEGATING_METHOD_HOLDER_ENTRY;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "/java.base/java/lang/invoke/DelegatingMethodHandle$Holder.class"

  private static final java.lang.String BASIC_FORMS_HOLDER_ENTRY;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "/java.base/java/lang/invoke/LambdaForm$Holder.class"

  private static final java.lang.String INVOKERS_HOLDER_ENTRY;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "/java.base/java/lang/invoke/Invokers$Holder.class"

  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=12, locals=0, args_size=0
         0: .line 54
            ldc Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
            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.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.$assertionsDisabled:Z
         3: .line 59
            ldc "generate-jli-classes"
            invokestatic jdk.tools.jlink.internal.plugins.PluginsResourceBundle.getDescription:(Ljava/lang/String;)Ljava/lang/String;
            putstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.DESCRIPTION:Ljava/lang/String;
         4: .line 78
            invokestatic jdk.internal.misc.SharedSecrets.getJavaLangInvokeAccess:()Ljdk/internal/misc/JavaLangInvokeAccess;
         5: .line 77
            putstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.JLIA:Ljdk/internal/misc/JavaLangInvokeAccess;
         6: .line 162
            ldc "invokeVirtual"
            iconst_0
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
         7: .line 163
            ldc "invokeStatic"
            iconst_1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
         8: .line 164
            ldc "invokeSpecial"
            iconst_2
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
         9: .line 165
            ldc "newInvokeSpecial"
            iconst_3
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
        10: .line 166
            ldc "invokeInterface"
            iconst_4
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
        11: .line 167
            ldc "invokeStaticInit"
            iconst_5
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
        12: .line 161
            invokestatic java.util.Map.of:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;
        13: .line 160
            putstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.DMH_METHOD_TYPE_MAP:Ljava/util/Map;
        14: .line 449
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
         0: .line 90
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 80
            aload 0 /* this */
            invokestatic java.util.Set.of:()Ljava/util/Set;
            putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.speciesTypes:Ljava/util/Set;
         2: .line 82
            aload 0 /* this */
            invokestatic java.util.Set.of:()Ljava/util/Set;
            putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.invokerTypes:Ljava/util/Set;
         3: .line 84
            aload 0 /* this */
            invokestatic java.util.Map.of:()Ljava/util/Map;
            putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.dmhMethods:Ljava/util/Map;
         4: .line 91
            return
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;

  public java.lang.String getName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
         0: .line 95
            ldc "generate-jli-classes"
            areturn
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;

  public java.lang.String getDescription();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
         0: .line 100
            getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.DESCRIPTION:Ljava/lang/String;
            areturn
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;

  public java.util.Set<jdk.tools.jlink.plugin.Plugin$State> getState();
    descriptor: ()Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
         0: .line 105
            getstatic jdk.tools.jlink.plugin.Plugin$State.AUTO_ENABLED:Ljdk/tools/jlink/plugin/Plugin$State;
            getstatic jdk.tools.jlink.plugin.Plugin$State.FUNCTIONAL:Ljdk/tools/jlink/plugin/Plugin$State;
            invokestatic java.util.EnumSet.of:(Ljava/lang/Enum;Ljava/lang/Enum;)Ljava/util/EnumSet;
            areturn
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
    Signature: ()Ljava/util/Set<Ljdk/tools/jlink/plugin/Plugin$State;>;

  public boolean hasArguments();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
         0: .line 110
            iconst_1
            ireturn
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;

  public java.lang.String getArgumentsDescription();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
         0: .line 115
            ldc "generate-jli-classes"
            iconst_0
            anewarray java.lang.Object
            invokestatic jdk.tools.jlink.internal.plugins.PluginsResourceBundle.getArgument:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            areturn
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;

  public static java.util.Set<java.lang.String> defaultSpecies();
    descriptor: ()Ljava/util/Set;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 126
            bipush 27
            anewarray java.lang.String
            dup
            iconst_0
            ldc "LL"
            aastore
            dup
            iconst_1
            ldc "L3"
            aastore
            dup
            iconst_2
            ldc "L4"
            aastore
            dup
            iconst_3
            ldc "L5"
            aastore
            dup
            iconst_4
            ldc "L6"
            aastore
            dup
            iconst_5
            ldc "L7"
            aastore
            dup
            bipush 6
            ldc "L7I"
            aastore
            dup
            bipush 7
         1: .line 127
            ldc "L7II"
            aastore
            dup
            bipush 8
            ldc "L7IIL"
            aastore
            dup
            bipush 9
            ldc "L8"
            aastore
            dup
            bipush 10
            ldc "L9"
            aastore
            dup
            bipush 11
            ldc "L10"
            aastore
            dup
            bipush 12
            ldc "L10I"
            aastore
            dup
            bipush 13
            ldc "L10II"
            aastore
            dup
            bipush 14
            ldc "L10IIL"
            aastore
            dup
            bipush 15
         2: .line 128
            ldc "L11"
            aastore
            dup
            bipush 16
            ldc "L12"
            aastore
            dup
            bipush 17
            ldc "L13"
            aastore
            dup
            bipush 18
            ldc "LI"
            aastore
            dup
            bipush 19
            ldc "D"
            aastore
            dup
            bipush 20
            ldc "L3I"
            aastore
            dup
            bipush 21
            ldc "LIL"
            aastore
            dup
            bipush 22
            ldc "LLI"
            aastore
            dup
            bipush 23
            ldc "LLIL"
            aastore
            dup
            bipush 24
         3: .line 129
            ldc "LILL"
            aastore
            dup
            bipush 25
            ldc "I"
            aastore
            dup
            bipush 26
            ldc "LLILL"
            aastore
         4: .line 126
            invokestatic java.util.Set.of:([Ljava/lang/Object;)Ljava/util/Set;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Signature: ()Ljava/util/Set<Ljava/lang/String;>;

  private static java.util.Set<java.lang.String> defaultInvokers();
    descriptor: ()Ljava/util/Set;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 136
            ldc "LL_L"
            ldc "LL_I"
            ldc "LILL_I"
            ldc "L6_L"
            invokestatic java.util.Set.of:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Set;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Signature: ()Ljava/util/Set<Ljava/lang/String;>;

  private static java.util.Map<java.lang.String, java.util.Set<java.lang.String>> defaultDMHMethods();
    descriptor: ()Ljava/util/Map;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=9, locals=0, args_size=0
         0: .line 144
            ldc "invokeVirtual"
            ldc "L_L"
            ldc "LL_L"
            ldc "LLI_I"
            ldc "L3_V"
            invokestatic java.util.Set.of:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Set;
         1: .line 145
            ldc "invokeSpecial"
            bipush 30
            anewarray java.lang.String
            dup
            iconst_0
            ldc "LL_I"
            aastore
            dup
            iconst_1
            ldc "LL_L"
            aastore
            dup
            iconst_2
            ldc "LLF_L"
            aastore
            dup
            iconst_3
            ldc "LLD_L"
            aastore
            dup
            iconst_4
            ldc "L3_L"
            aastore
            dup
            iconst_5
         2: .line 146
            ldc "L4_L"
            aastore
            dup
            bipush 6
            ldc "L5_L"
            aastore
            dup
            bipush 7
            ldc "L6_L"
            aastore
            dup
            bipush 8
            ldc "L7_L"
            aastore
            dup
            bipush 9
            ldc "L8_L"
            aastore
            dup
            bipush 10
            ldc "LLI_I"
            aastore
            dup
            bipush 11
            ldc "LLI_L"
            aastore
            dup
            bipush 12
         3: .line 147
            ldc "LLIL_I"
            aastore
            dup
            bipush 13
            ldc "LLII_I"
            aastore
            dup
            bipush 14
            ldc "LLII_L"
            aastore
            dup
            bipush 15
            ldc "L3I_L"
            aastore
            dup
            bipush 16
            ldc "L3I_I"
            aastore
            dup
            bipush 17
            ldc "LLILI_I"
            aastore
            dup
            bipush 18
         4: .line 148
            ldc "LLIIL_L"
            aastore
            dup
            bipush 19
            ldc "LLIILL_L"
            aastore
            dup
            bipush 20
            ldc "LLIILL_I"
            aastore
            dup
            bipush 21
            ldc "LLIIL_I"
            aastore
            dup
            bipush 22
            ldc "LLILIL_I"
            aastore
            dup
            bipush 23
         5: .line 149
            ldc "LLILILL_I"
            aastore
            dup
            bipush 24
            ldc "LLILII_I"
            aastore
            dup
            bipush 25
            ldc "LLI3_I"
            aastore
            dup
            bipush 26
            ldc "LLI3L_I"
            aastore
            dup
            bipush 27
            ldc "LLI3LL_I"
            aastore
            dup
            bipush 28
         6: .line 150
            ldc "LLI3_L"
            aastore
            dup
            bipush 29
            ldc "LLI4_I"
            aastore
         7: .line 145
            invokestatic java.util.Set.of:([Ljava/lang/Object;)Ljava/util/Set;
         8: .line 151
            ldc "invokeStatic"
            bipush 31
            anewarray java.lang.String
            dup
            iconst_0
            ldc "LII_I"
            aastore
            dup
            iconst_1
            ldc "LIL_I"
            aastore
            dup
            iconst_2
            ldc "LILIL_I"
            aastore
            dup
            iconst_3
            ldc "LILII_I"
            aastore
            dup
            iconst_4
         9: .line 152
            ldc "L_I"
            aastore
            dup
            iconst_5
            ldc "L_L"
            aastore
            dup
            bipush 6
            ldc "L_V"
            aastore
            dup
            bipush 7
            ldc "LD_L"
            aastore
            dup
            bipush 8
            ldc "LF_L"
            aastore
            dup
            bipush 9
            ldc "LI_I"
            aastore
            dup
            bipush 10
            ldc "LII_L"
            aastore
            dup
            bipush 11
            ldc "LLI_L"
            aastore
            dup
            bipush 12
        10: .line 153
            ldc "LL_V"
            aastore
            dup
            bipush 13
            ldc "LL_L"
            aastore
            dup
            bipush 14
            ldc "L3_L"
            aastore
            dup
            bipush 15
            ldc "L4_L"
            aastore
            dup
            bipush 16
            ldc "L5_L"
            aastore
            dup
            bipush 17
            ldc "L6_L"
            aastore
            dup
            bipush 18
            ldc "L7_L"
            aastore
            dup
            bipush 19
        11: .line 154
            ldc "L8_L"
            aastore
            dup
            bipush 20
            ldc "L9_L"
            aastore
            dup
            bipush 21
            ldc "L10_L"
            aastore
            dup
            bipush 22
            ldc "L10I_L"
            aastore
            dup
            bipush 23
            ldc "L10II_L"
            aastore
            dup
            bipush 24
            ldc "L10IIL_L"
            aastore
            dup
            bipush 25
        12: .line 155
            ldc "L11_L"
            aastore
            dup
            bipush 26
            ldc "L12_L"
            aastore
            dup
            bipush 27
            ldc "L13_L"
            aastore
            dup
            bipush 28
            ldc "L14_L"
            aastore
            dup
            bipush 29
            ldc "L14I_L"
            aastore
            dup
            bipush 30
            ldc "L14II_L"
            aastore
        13: .line 151
            invokestatic java.util.Set.of:([Ljava/lang/Object;)Ljava/util/Set;
        14: .line 143
            invokestatic java.util.Map.of:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Signature: ()Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;>;

  public void configure(java.util.Map<java.lang.String, java.lang.String>);
    descriptor: (Ljava/util/Map;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
        start local 1 // java.util.Map config
         0: .line 172
            aload 0 /* this */
            aload 1 /* config */
            ldc "generate-jli-classes"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.mainArgument:Ljava/lang/String;
         1: .line 173
            aload 0 /* this */
            aload 1 /* config */
            ldc "ignore-version"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            invokestatic java.lang.Boolean.parseBoolean:(Ljava/lang/String;)Z
            putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.ignoreVersion:Z
         2: .line 174
            return
        end local 1 // java.util.Map config
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
            0    3     1  config  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
    Signature: (Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;)V
    MethodParameters:
        Name  Flags
      config  

  public void initialize(jdk.tools.jlink.plugin.ResourcePool);
    descriptor: (Ljdk/tools/jlink/plugin/ResourcePool;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=2
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
        start local 1 // jdk.tools.jlink.plugin.ResourcePool in
         0: .line 178
            aload 0 /* this */
            invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.defaultSpecies:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         1: .line 179
            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/tools/jlink/internal/plugins/GenerateJLIClassesPlugin.lambda$0(Ljava/lang/String;)Ljava/lang/String; (6)
                  (Ljava/lang/String;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         2: .line 180
            invokestatic java.util.stream.Collectors.toSet:()Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.util.Set
         3: .line 178
            putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.speciesTypes:Ljava/util/Set;
         4: .line 182
            aload 0 /* this */
            invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.defaultInvokers:()Ljava/util/Set;
            putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.invokerTypes:Ljava/util/Set;
         5: .line 183
            aload 0 /* this */
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.invokerTypes:Ljava/util/Set;
            invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.validateMethodTypes:(Ljava/util/Set;)V
         6: .line 185
            aload 0 /* this */
            invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.defaultDMHMethods:()Ljava/util/Map;
            putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.dmhMethods:Ljava/util/Map;
         7: .line 186
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.dmhMethods:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3
            goto 10
      StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePool top java.util.Iterator
      StackMap stack:
         8: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Set
            astore 2 /* dmhMethodTypes */
        start local 2 // java.util.Set dmhMethodTypes
         9: .line 187
            aload 0 /* this */
            aload 2 /* dmhMethodTypes */
            invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.validateMethodTypes:(Ljava/util/Set;)V
        end local 2 // java.util.Set dmhMethodTypes
        10: .line 186
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        11: .line 192
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.mainArgument:Ljava/lang/String;
            ifnull 12
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.mainArgument:Ljava/lang/String;
            ldc "@"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 30
        12: .line 193
      StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePool
      StackMap stack:
            aconst_null
            astore 2
            aconst_null
            astore 3
        13: .line 194
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            ldc "default_jli_trace.txt"
            invokevirtual java.lang.Class.getResourceAsStream:(Ljava/lang/String;)Ljava/io/InputStream;
        14: .line 193
            astore 4 /* traceFile */
        start local 4 // java.io.InputStream traceFile
        15: .line 195
            aload 4 /* traceFile */
            ifnull 22
        16: .line 196
            aload 0 /* this */
        17: .line 197
            new java.io.BufferedReader
            dup
        18: .line 198
            new java.io.InputStreamReader
            dup
            aload 4 /* traceFile */
            invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;)V
        19: .line 197
            invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
        20: .line 198
            invokevirtual java.io.BufferedReader.lines:()Ljava/util/stream/Stream;
        21: .line 196
            invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.readTraceConfig:(Ljava/util/stream/Stream;)V
        22: .line 200
      StackMap locals: java.lang.Throwable java.lang.Throwable java.io.InputStream
      StackMap stack:
            aload 4 /* traceFile */
            ifnull 33
            aload 4 /* traceFile */
            invokevirtual java.io.InputStream.close:()V
            goto 33
      StackMap locals:
      StackMap stack: java.lang.Throwable
        23: astore 2
            aload 4 /* traceFile */
            ifnull 24
            aload 4 /* traceFile */
            invokevirtual java.io.InputStream.close:()V
        end local 4 // java.io.InputStream traceFile
      StackMap locals:
      StackMap stack:
        24: aload 2
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        25: astore 3
            aload 2
            ifnonnull 26
            aload 3
            astore 2
            goto 27
      StackMap locals:
      StackMap stack:
        26: aload 2
            aload 3
            if_acmpeq 27
            aload 2
            aload 3
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        27: aload 2
            athrow
      StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePool
      StackMap stack: java.lang.Exception
        28: astore 2 /* e */
        start local 2 // java.lang.Exception e
        29: .line 201
            new jdk.tools.jlink.plugin.PluginException
            dup
            ldc "Couldn't read default_jli_trace.txt"
            aload 2 /* e */
            invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.lang.Exception e
        30: .line 204
      StackMap locals:
      StackMap stack:
            new java.io.File
            dup
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.mainArgument:Ljava/lang/String;
            iconst_1
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 2 /* file */
        start local 2 // java.io.File file
        31: .line 205
            aload 2 /* file */
            invokevirtual java.io.File.exists:()Z
            ifeq 33
        32: .line 206
            aload 0 /* this */
            aload 0 /* this */
            aload 2 /* file */
            invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.fileLines:(Ljava/io/File;)Ljava/util/stream/Stream;
            invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.readTraceConfig:(Ljava/util/stream/Stream;)V
        end local 2 // java.io.File file
        33: .line 209
      StackMap locals:
      StackMap stack:
            return
        end local 1 // jdk.tools.jlink.plugin.ResourcePool in
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   34     0            this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
            0   34     1              in  Ljdk/tools/jlink/plugin/ResourcePool;
            9   10     2  dmhMethodTypes  Ljava/util/Set<Ljava/lang/String;>;
           15   24     4       traceFile  Ljava/io/InputStream;
           29   30     2               e  Ljava/lang/Exception;
           31   33     2            file  Ljava/io/File;
      Exception table:
        from    to  target  type
          15    22      23  any
          13    25      25  any
          12    28      28  Class java.lang.Exception
    MethodParameters:
      Name  Flags
      in    

  private boolean checkVersion(java.lang.Runtime$Version);
    descriptor: (Ljava/lang/Runtime$Version;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
        start local 1 // java.lang.Runtime$Version linkedVersion
         0: .line 212
            invokestatic java.lang.Runtime.version:()Ljava/lang/Runtime$Version;
            astore 2 /* baseVersion */
        start local 2 // java.lang.Runtime$Version baseVersion
         1: .line 213
            aload 2 /* baseVersion */
            invokevirtual java.lang.Runtime$Version.major:()I
            aload 1 /* linkedVersion */
            invokevirtual java.lang.Runtime$Version.major:()I
            if_icmpne 3
         2: .line 214
            aload 2 /* baseVersion */
            invokevirtual java.lang.Runtime$Version.minor:()I
            aload 1 /* linkedVersion */
            invokevirtual java.lang.Runtime$Version.minor:()I
            if_icmpeq 4
         3: .line 215
      StackMap locals: java.lang.Runtime$Version
      StackMap stack:
            iconst_0
            ireturn
         4: .line 217
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 2 // java.lang.Runtime$Version baseVersion
        end local 1 // java.lang.Runtime$Version linkedVersion
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0           this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
            0    5     1  linkedVersion  Ljava/lang/Runtime$Version;
            1    5     2    baseVersion  Ljava/lang/Runtime$Version;
    MethodParameters:
               Name  Flags
      linkedVersion  

  private java.lang.Runtime$Version getLinkedVersion(jdk.tools.jlink.plugin.ResourcePool);
    descriptor: (Ljdk/tools/jlink/plugin/ResourcePool;)Ljava/lang/Runtime$Version;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
        start local 1 // jdk.tools.jlink.plugin.ResourcePool in
         0: .line 221
            aload 1 /* in */
            invokeinterface jdk.tools.jlink.plugin.ResourcePool.moduleView:()Ljdk/tools/jlink/plugin/ResourcePoolModuleView;
         1: .line 222
            ldc "java.base"
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolModuleView.findModule:(Ljava/lang/String;)Ljava/util/Optional;
         2: .line 223
            invokevirtual java.util.Optional.get:()Ljava/lang/Object;
            checkcast jdk.tools.jlink.plugin.ResourcePoolModule
         3: .line 224
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolModule.descriptor:()Ljava/lang/module/ModuleDescriptor;
         4: .line 225
            invokevirtual java.lang.module.ModuleDescriptor.version:()Ljava/util/Optional;
         5: .line 226
            invokedynamic get()Ljava/util/function/Supplier;
              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;
                  jdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin.lambda$1()Ljdk/tools/jlink/plugin/PluginException; (6)
                  ()Ljdk/tools/jlink/plugin/PluginException;
            invokevirtual java.util.Optional.orElseThrow:(Ljava/util/function/Supplier;)Ljava/lang/Object;
            checkcast java.lang.module.ModuleDescriptor$Version
         6: .line 221
            astore 2 /* version */
        start local 2 // java.lang.module.ModuleDescriptor$Version version
         7: .line 228
            aload 2 /* version */
            invokevirtual java.lang.module.ModuleDescriptor$Version.toString:()Ljava/lang/String;
            invokestatic java.lang.Runtime$Version.parse:(Ljava/lang/String;)Ljava/lang/Runtime$Version;
            areturn
        end local 2 // java.lang.module.ModuleDescriptor$Version version
        end local 1 // jdk.tools.jlink.plugin.ResourcePool in
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
            0    8     1       in  Ljdk/tools/jlink/plugin/ResourcePool;
            7    8     2  version  Ljava/lang/module/ModuleDescriptor$Version;
    MethodParameters:
      Name  Flags
      in    

  private void readTraceConfig(java.util.stream.Stream<java.lang.String>);
    descriptor: (Ljava/util/stream/Stream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
        start local 1 // java.util.stream.Stream lines
         0: .line 235
            aload 0 /* this */
            new java.util.TreeSet
            dup
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.speciesTypes:Ljava/util/Set;
            invokespecial java.util.TreeSet.<init>:(Ljava/util/Collection;)V
            putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.speciesTypes:Ljava/util/Set;
         1: .line 236
            aload 0 /* this */
            new java.util.TreeSet
            dup
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.invokerTypes:Ljava/util/Set;
            invokespecial java.util.TreeSet.<init>:(Ljava/util/Collection;)V
            putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.invokerTypes:Ljava/util/Set;
         2: .line 237
            new java.util.TreeMap
            dup
            invokespecial java.util.TreeMap.<init>:()V
            astore 2 /* newDMHMethods */
        start local 2 // java.util.TreeMap newDMHMethods
         3: .line 238
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.dmhMethods:Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 6
      StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin java.util.stream.Stream java.util.TreeMap top java.util.Iterator
      StackMap stack:
         4: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 3 /* entry */
        start local 3 // java.util.Map$Entry entry
         5: .line 239
            aload 2 /* newDMHMethods */
            aload 3 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            new java.util.TreeSet
            dup
            aload 3 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.util.Collection
            invokespecial java.util.TreeSet.<init>:(Ljava/util/Collection;)V
            invokevirtual java.util.TreeMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 3 // java.util.Map$Entry entry
         6: .line 238
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         7: .line 241
            aload 0 /* this */
            aload 2 /* newDMHMethods */
            putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.dmhMethods:Ljava/util/Map;
         8: .line 242
            aload 1 /* lines */
            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/tools/jlink/internal/plugins/GenerateJLIClassesPlugin.lambda$2(Ljava/lang/String;)[Ljava/lang/String; (6)
                  (Ljava/lang/String;)[Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         9: .line 243
            aload 0 /* this */
            invokedynamic accept(Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;)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/tools/jlink/internal/plugins/GenerateJLIClassesPlugin.lambda$3([Ljava/lang/String;)V (7)
                  ([Ljava/lang/String;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        10: .line 265
            return
        end local 2 // java.util.TreeMap newDMHMethods
        end local 1 // java.util.stream.Stream lines
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   11     0           this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
            0   11     1          lines  Ljava/util/stream/Stream<Ljava/lang/String;>;
            3   11     2  newDMHMethods  Ljava/util/TreeMap<Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;>;
            5    6     3          entry  Ljava/util/Map$Entry<Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;>;
    Signature: (Ljava/util/stream/Stream<Ljava/lang/String;>;)V
    MethodParameters:
       Name  Flags
      lines  

  private void addDMHMethodType(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
        start local 1 // java.lang.String dmh
        start local 2 // java.lang.String methodType
         0: .line 268
            aload 0 /* this */
            aload 2 /* methodType */
            invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.validateMethodType:(Ljava/lang/String;)V
         1: .line 269
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.dmhMethods:Ljava/util/Map;
            aload 1 /* dmh */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Set
            astore 3 /* methodTypes */
        start local 3 // java.util.Set methodTypes
         2: .line 270
            aload 3 /* methodTypes */
            ifnonnull 5
         3: .line 271
            new java.util.TreeSet
            dup
            invokespecial java.util.TreeSet.<init>:()V
            astore 3 /* methodTypes */
         4: .line 272
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.dmhMethods:Ljava/util/Map;
            aload 1 /* dmh */
            aload 3 /* methodTypes */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 274
      StackMap locals: java.util.Set
      StackMap stack:
            aload 3 /* methodTypes */
            aload 2 /* methodType */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         6: .line 275
            return
        end local 3 // java.util.Set methodTypes
        end local 2 // java.lang.String methodType
        end local 1 // java.lang.String dmh
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0         this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
            0    7     1          dmh  Ljava/lang/String;
            0    7     2   methodType  Ljava/lang/String;
            2    7     3  methodTypes  Ljava/util/Set<Ljava/lang/String;>;
    MethodParameters:
            Name  Flags
      dmh         
      methodType  

  private java.util.stream.Stream<java.lang.String> fileLines(java.io.File);
    descriptor: (Ljava/io/File;)Ljava/util/stream/Stream;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
        start local 1 // java.io.File file
         0: .line 279
            aload 1 /* file */
            invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
            invokestatic java.nio.file.Files.lines:(Ljava/nio/file/Path;)Ljava/util/stream/Stream;
         1: areturn
         2: .line 280
      StackMap locals:
      StackMap stack: java.io.IOException
            pop
         3: .line 281
            new jdk.tools.jlink.plugin.PluginException
            dup
            ldc "Couldn't read file"
            invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.io.File file
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
            0    4     1  file  Ljava/io/File;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.IOException
    Signature: (Ljava/io/File;)Ljava/util/stream/Stream<Ljava/lang/String;>;
    MethodParameters:
      Name  Flags
      file  

  private void validateMethodTypes(java.util.Set<java.lang.String>);
    descriptor: (Ljava/util/Set;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
        start local 1 // java.util.Set dmhMethodTypes
         0: .line 286
            aload 1 /* dmhMethodTypes */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 3
      StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin java.util.Set top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 2 /* type */
        start local 2 // java.lang.String type
         2: .line 287
            aload 0 /* this */
            aload 2 /* type */
            invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.validateMethodType:(Ljava/lang/String;)V
        end local 2 // java.lang.String type
         3: .line 286
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         4: .line 289
            return
        end local 1 // java.util.Set dmhMethodTypes
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0            this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
            0    5     1  dmhMethodTypes  Ljava/util/Set<Ljava/lang/String;>;
            2    3     2            type  Ljava/lang/String;
    Signature: (Ljava/util/Set<Ljava/lang/String;>;)V
    MethodParameters:
                Name  Flags
      dmhMethodTypes  

  private void validateMethodType(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
        start local 1 // java.lang.String type
         0: .line 292
            aload 1 /* type */
            ldc "_"
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 2 /* typeParts */
        start local 2 // java.lang.String[] typeParts
         1: .line 294
            aload 2 /* typeParts */
            arraylength
            iconst_2
            if_icmpne 3
            aload 2 /* typeParts */
            iconst_1
            aaload
            invokevirtual java.lang.String.length:()I
            iconst_1
            if_icmpne 3
         2: .line 295
            ldc "LJIFDV"
            aload 2 /* typeParts */
            iconst_1
            aaload
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            invokevirtual java.lang.String.indexOf:(I)I
            iconst_m1
            if_icmpne 6
         3: .line 296
      StackMap locals: java.lang.String[]
      StackMap stack:
            new jdk.tools.jlink.plugin.PluginException
            dup
         4: .line 297
            ldc "Method type signature must be of form [LJIFD]*_[LJIFDV]"
         5: .line 296
            invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 300
      StackMap locals:
      StackMap stack:
            aload 2 /* typeParts */
            iconst_0
            aaload
            invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.expandSignature:(Ljava/lang/String;)Ljava/lang/String;
            pop
         7: .line 301
            return
        end local 2 // java.lang.String[] typeParts
        end local 1 // java.lang.String type
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0       this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
            0    8     1       type  Ljava/lang/String;
            1    8     2  typeParts  [Ljava/lang/String;
    MethodParameters:
      Name  Flags
      type  

  private static void requireBasicType(char);
    descriptor: (C)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // char c
         0: .line 304
            ldc "LIJFD"
            iload 0 /* c */
            invokevirtual java.lang.String.indexOf:(I)I
            ifge 4
         1: .line 305
            new jdk.tools.jlink.plugin.PluginException
            dup
         2: .line 306
            new java.lang.StringBuilder
            dup
            ldc "Character "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 0 /* c */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            ldc " must correspond to a basic field type: LIJFD"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         3: .line 305
            invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 308
      StackMap locals:
      StackMap stack:
            return
        end local 0 // char c
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0     c  C
    MethodParameters:
      Name  Flags
      c     

  public jdk.tools.jlink.plugin.ResourcePool transform(jdk.tools.jlink.plugin.ResourcePool, jdk.tools.jlink.plugin.ResourcePoolBuilder);
    descriptor: (Ljdk/tools/jlink/plugin/ResourcePool;Ljdk/tools/jlink/plugin/ResourcePoolBuilder;)Ljdk/tools/jlink/plugin/ResourcePool;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=3, args_size=3
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
        start local 1 // jdk.tools.jlink.plugin.ResourcePool in
        start local 2 // jdk.tools.jlink.plugin.ResourcePoolBuilder out
         0: .line 312
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.ignoreVersion:Z
            ifeq 5
         1: .line 313
            getstatic java.lang.System.out:Ljava/io/PrintStream;
         2: .line 315
            ldc "generate-jli-classes.ignore.version.warn"
            iconst_0
            anewarray java.lang.Object
            invokestatic jdk.tools.jlink.internal.plugins.PluginsResourceBundle.getMessage:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
         3: .line 313
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         4: .line 316
            goto 15
      StackMap locals:
      StackMap stack:
         5: aload 0 /* this */
            aload 0 /* this */
            aload 1 /* in */
            invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.getLinkedVersion:(Ljdk/tools/jlink/plugin/ResourcePool;)Ljava/lang/Runtime$Version;
            invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.checkVersion:(Ljava/lang/Runtime$Version;)Z
            ifne 15
         6: .line 318
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.mainArgument:Ljava/lang/String;
            ifnull 13
         7: .line 320
            getstatic java.lang.System.out:Ljava/io/PrintStream;
         8: .line 322
            ldc "generate-jli-classes.version.mismatch.warn"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
         9: .line 323
            aload 0 /* this */
            aload 1 /* in */
            invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.getLinkedVersion:(Ljdk/tools/jlink/plugin/ResourcePool;)Ljava/lang/Runtime$Version;
            aastore
            dup
            iconst_1
        10: .line 324
            invokestatic java.lang.Runtime.version:()Ljava/lang/Runtime$Version;
            aastore
        11: .line 322
            invokestatic jdk.tools.jlink.internal.plugins.PluginsResourceBundle.getMessage:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        12: .line 320
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        13: .line 326
      StackMap locals:
      StackMap stack:
            aload 1 /* in */
            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/tools/jlink/internal/plugins/GenerateJLIClassesPlugin.lambda$4(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Ljdk/tools/jlink/plugin/ResourcePoolEntry; (6)
                  (Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Ljdk/tools/jlink/plugin/ResourcePoolEntry;
            aload 2 /* out */
            invokeinterface jdk.tools.jlink.plugin.ResourcePool.transformAndCopy:(Ljava/util/function/Function;Ljdk/tools/jlink/plugin/ResourcePoolBuilder;)V
        14: .line 327
            aload 2 /* out */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolBuilder.build:()Ljdk/tools/jlink/plugin/ResourcePool;
            areturn
        15: .line 330
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* in */
            invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.initialize:(Ljdk/tools/jlink/plugin/ResourcePool;)V
        16: .line 332
            aload 1 /* in */
            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/tools/jlink/internal/plugins/GenerateJLIClassesPlugin.lambda$5(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Ljdk/tools/jlink/plugin/ResourcePoolEntry; (6)
                  (Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Ljdk/tools/jlink/plugin/ResourcePoolEntry;
        17: .line 342
            aload 2 /* out */
        18: .line 332
            invokeinterface jdk.tools.jlink.plugin.ResourcePool.transformAndCopy:(Ljava/util/function/Function;Ljdk/tools/jlink/plugin/ResourcePoolBuilder;)V
        19: .line 345
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.speciesTypes:Ljava/util/Set;
            aload 0 /* this */
            aload 2 /* out */
            invokedynamic accept(Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;Ljdk/tools/jlink/plugin/ResourcePoolBuilder;)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/tools/jlink/internal/plugins/GenerateJLIClassesPlugin.lambda$6(Ljdk/tools/jlink/plugin/ResourcePoolBuilder;Ljava/lang/String;)V (7)
                  (Ljava/lang/String;)V
            invokeinterface java.util.Set.forEach:(Ljava/util/function/Consumer;)V
        20: .line 348
            aload 0 /* this */
            aload 2 /* out */
            invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.generateHolderClasses:(Ljdk/tools/jlink/plugin/ResourcePoolBuilder;)V
        21: .line 351
            aload 0 /* this */
            aconst_null
            putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.speciesTypes:Ljava/util/Set;
        22: .line 352
            aload 0 /* this */
            aconst_null
            putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.invokerTypes:Ljava/util/Set;
        23: .line 353
            aload 0 /* this */
            aconst_null
            putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.dmhMethods:Ljava/util/Map;
        24: .line 355
            aload 2 /* out */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolBuilder.build:()Ljdk/tools/jlink/plugin/ResourcePool;
            areturn
        end local 2 // jdk.tools.jlink.plugin.ResourcePoolBuilder out
        end local 1 // jdk.tools.jlink.plugin.ResourcePool in
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   25     0  this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
            0   25     1    in  Ljdk/tools/jlink/plugin/ResourcePool;
            0   25     2   out  Ljdk/tools/jlink/plugin/ResourcePoolBuilder;
    MethodParameters:
      Name  Flags
      in    
      out   

  private void generateBMHClass(java.lang.String, jdk.tools.jlink.plugin.ResourcePoolBuilder);
    descriptor: (Ljava/lang/String;Ljdk/tools/jlink/plugin/ResourcePoolBuilder;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=7, args_size=3
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
        start local 1 // java.lang.String types
        start local 2 // jdk.tools.jlink.plugin.ResourcePoolBuilder out
         0: .line 363
            getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.JLIA:Ljdk/internal/misc/JavaLangInvokeAccess;
            aload 1 /* types */
            invokeinterface jdk.internal.misc.JavaLangInvokeAccess.generateConcreteBMHClassBytes:(Ljava/lang/String;)Ljava/util/Map$Entry;
         1: .line 362
            astore 3 /* result */
        start local 3 // java.util.Map$Entry result
         2: .line 364
            aload 3 /* result */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 4 /* className */
        start local 4 // java.lang.String className
         3: .line 365
            aload 3 /* result */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast byte[]
            astore 5 /* bytes */
        start local 5 // byte[] bytes
         4: .line 369
            new java.lang.StringBuilder
            dup
            ldc "/java.base/"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* className */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ".class"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         5: .line 370
            aload 5 /* bytes */
         6: .line 368
            invokestatic jdk.tools.jlink.plugin.ResourcePoolEntry.create:(Ljava/lang/String;[B)Ljdk/tools/jlink/plugin/ResourcePoolEntry;
            astore 6 /* ndata */
        start local 6 // jdk.tools.jlink.plugin.ResourcePoolEntry ndata
         7: .line 371
            aload 2 /* out */
            aload 6 /* ndata */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolBuilder.add:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)V
        end local 6 // jdk.tools.jlink.plugin.ResourcePoolEntry ndata
        end local 5 // byte[] bytes
        end local 4 // java.lang.String className
        end local 3 // java.util.Map$Entry result
         8: .line 372
            goto 11
      StackMap locals:
      StackMap stack: java.lang.Exception
         9: astore 3 /* ex */
        start local 3 // java.lang.Exception ex
        10: .line 373
            new jdk.tools.jlink.plugin.PluginException
            dup
            aload 3 /* ex */
            invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.lang.Exception ex
        11: .line 375
      StackMap locals:
      StackMap stack:
            return
        end local 2 // jdk.tools.jlink.plugin.ResourcePoolBuilder out
        end local 1 // java.lang.String types
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   12     0       this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
            0   12     1      types  Ljava/lang/String;
            0   12     2        out  Ljdk/tools/jlink/plugin/ResourcePoolBuilder;
            2    8     3     result  Ljava/util/Map$Entry<Ljava/lang/String;[B>;
            3    8     4  className  Ljava/lang/String;
            4    8     5      bytes  [B
            7    8     6      ndata  Ljdk/tools/jlink/plugin/ResourcePoolEntry;
           10   11     3         ex  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     8       9  Class java.lang.Exception
    MethodParameters:
       Name  Flags
      types  
      out    

  private void generateHolderClasses(jdk.tools.jlink.plugin.ResourcePoolBuilder);
    descriptor: (Ljdk/tools/jlink/plugin/ResourcePoolBuilder;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=12, args_size=2
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
        start local 1 // jdk.tools.jlink.plugin.ResourcePoolBuilder out
         0: .line 378
            iconst_0
            istore 2 /* count */
        start local 2 // int count
         1: .line 379
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.dmhMethods:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 4
            goto 4
      StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePoolBuilder int top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Set
            astore 3 /* entry */
        start local 3 // java.util.Set entry
         3: .line 380
            iload 2 /* count */
            aload 3 /* entry */
            invokeinterface java.util.Set.size:()I
            iadd
            istore 2 /* count */
        end local 3 // java.util.Set entry
         4: .line 379
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 382
            iload 2 /* count */
            anewarray java.lang.invoke.MethodType
            astore 3 /* directMethodTypes */
        start local 3 // java.lang.invoke.MethodType[] directMethodTypes
         6: .line 383
            iload 2 /* count */
            newarray 10
            astore 4 /* dmhTypes */
        start local 4 // int[] dmhTypes
         7: .line 384
            iconst_0
            istore 5 /* index */
        start local 5 // int index
         8: .line 385
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.dmhMethods:Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 7
            goto 23
      StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePoolBuilder int java.lang.invoke.MethodType[] int[] int top java.util.Iterator
      StackMap stack:
         9: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 6 /* entry */
        start local 6 // java.util.Map$Entry entry
        10: .line 386
            aload 6 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 8 /* dmhType */
        start local 8 // java.lang.String dmhType
        11: .line 387
            aload 6 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.util.Set
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 10
            goto 22
      StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePoolBuilder int java.lang.invoke.MethodType[] int[] int java.util.Map$Entry java.util.Iterator java.lang.String top java.util.Iterator
      StackMap stack:
        12: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 9 /* type */
        start local 9 // java.lang.String type
        13: .line 390
            aload 9 /* type */
            invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.asMethodType:(Ljava/lang/String;)Ljava/lang/invoke/MethodType;
            astore 11 /* mt */
        start local 11 // java.lang.invoke.MethodType mt
        14: .line 391
            aload 11 /* mt */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            iconst_1
            if_icmplt 16
        15: .line 392
            aload 11 /* mt */
            iconst_0
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            ldc Ljava/lang/Object;
            if_acmpeq 19
        16: .line 393
      StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePoolBuilder int java.lang.invoke.MethodType[] int[] int java.util.Map$Entry java.util.Iterator java.lang.String java.lang.String java.util.Iterator java.lang.invoke.MethodType
      StackMap stack:
            new jdk.tools.jlink.plugin.PluginException
            dup
        17: .line 394
            ldc "DMH type parameter must start with L"
        18: .line 393
            invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/String;)V
            athrow
        19: .line 396
      StackMap locals:
      StackMap stack:
            aload 3 /* directMethodTypes */
            iload 5 /* index */
            aload 11 /* mt */
            iconst_0
            iconst_1
            invokevirtual java.lang.invoke.MethodType.dropParameterTypes:(II)Ljava/lang/invoke/MethodType;
            aastore
        20: .line 397
            aload 4 /* dmhTypes */
            iload 5 /* index */
            getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.DMH_METHOD_TYPE_MAP:Ljava/util/Map;
            aload 8 /* dmhType */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            iastore
        21: .line 398
            iinc 5 /* index */ 1
        end local 11 // java.lang.invoke.MethodType mt
        end local 9 // java.lang.String type
        22: .line 387
      StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePoolBuilder int java.lang.invoke.MethodType[] int[] int java.util.Map$Entry java.util.Iterator java.lang.String top java.util.Iterator
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 12
        end local 8 // java.lang.String dmhType
        end local 6 // java.util.Map$Entry entry
        23: .line 385
      StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePoolBuilder int java.lang.invoke.MethodType[] int[] int top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        24: .line 401
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.invokerTypes:Ljava/util/Set;
            invokeinterface java.util.Set.size:()I
            anewarray java.lang.invoke.MethodType
            astore 6 /* invokerMethodTypes */
        start local 6 // java.lang.invoke.MethodType[] invokerMethodTypes
        25: .line 402
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        26: .line 403
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.invokerTypes:Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 9
            goto 39
      StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePoolBuilder int java.lang.invoke.MethodType[] int[] int java.lang.invoke.MethodType[] int top java.util.Iterator
      StackMap stack:
        27: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 8 /* invokerType */
        start local 8 // java.lang.String invokerType
        28: .line 406
            aload 8 /* invokerType */
            invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.asMethodType:(Ljava/lang/String;)Ljava/lang/invoke/MethodType;
            astore 10 /* mt */
        start local 10 // java.lang.invoke.MethodType mt
        29: .line 407
            aload 10 /* mt */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            iconst_1
            isub
            istore 11 /* lastParam */
        start local 11 // int lastParam
        30: .line 408
            aload 10 /* mt */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            iconst_2
            if_icmplt 33
        31: .line 409
            aload 10 /* mt */
            iconst_0
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            ldc Ljava/lang/Object;
            if_acmpne 33
        32: .line 410
            aload 10 /* mt */
            iload 11 /* lastParam */
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            ldc Ljava/lang/Object;
            if_acmpeq 36
        33: .line 411
      StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePoolBuilder int java.lang.invoke.MethodType[] int[] int java.lang.invoke.MethodType[] int java.lang.String java.util.Iterator java.lang.invoke.MethodType int
      StackMap stack:
            new jdk.tools.jlink.plugin.PluginException
            dup
        34: .line 412
            ldc "Invoker type parameter must start and end with L"
        35: .line 411
            invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/String;)V
            athrow
        36: .line 414
      StackMap locals:
      StackMap stack:
            aload 10 /* mt */
            iload 11 /* lastParam */
            iload 11 /* lastParam */
            iconst_1
            iadd
            invokevirtual java.lang.invoke.MethodType.dropParameterTypes:(II)Ljava/lang/invoke/MethodType;
            astore 10 /* mt */
        37: .line 415
            aload 6 /* invokerMethodTypes */
            iload 7 /* i */
            aload 10 /* mt */
            iconst_0
            iconst_1
            invokevirtual java.lang.invoke.MethodType.dropParameterTypes:(II)Ljava/lang/invoke/MethodType;
            aastore
        38: .line 416
            iinc 7 /* i */ 1
        end local 11 // int lastParam
        end local 10 // java.lang.invoke.MethodType mt
        end local 8 // java.lang.String invokerType
        39: .line 403
      StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePoolBuilder int java.lang.invoke.MethodType[] int[] int java.lang.invoke.MethodType[] int top java.util.Iterator
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 27
        40: .line 419
            getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.JLIA:Ljdk/internal/misc/JavaLangInvokeAccess;
        41: .line 420
            ldc "java/lang/invoke/DirectMethodHandle$Holder"
            aload 3 /* directMethodTypes */
            aload 4 /* dmhTypes */
        42: .line 419
            invokeinterface jdk.internal.misc.JavaLangInvokeAccess.generateDirectMethodHandleHolderClassBytes:(Ljava/lang/String;[Ljava/lang/invoke/MethodType;[I)[B
            astore 8 /* bytes */
        start local 8 // byte[] bytes
        43: .line 422
            ldc "/java.base/java/lang/invoke/DirectMethodHandle$Holder.class"
            aload 8 /* bytes */
            invokestatic jdk.tools.jlink.plugin.ResourcePoolEntry.create:(Ljava/lang/String;[B)Ljdk/tools/jlink/plugin/ResourcePoolEntry;
        44: .line 421
            astore 9 /* ndata */
        start local 9 // jdk.tools.jlink.plugin.ResourcePoolEntry ndata
        45: .line 423
            aload 1 /* out */
            aload 9 /* ndata */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolBuilder.add:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)V
        46: .line 425
            getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.JLIA:Ljdk/internal/misc/JavaLangInvokeAccess;
        47: .line 426
            ldc "java/lang/invoke/DelegatingMethodHandle$Holder"
            aload 3 /* directMethodTypes */
        48: .line 425
            invokeinterface jdk.internal.misc.JavaLangInvokeAccess.generateDelegatingMethodHandleHolderClassBytes:(Ljava/lang/String;[Ljava/lang/invoke/MethodType;)[B
            astore 8 /* bytes */
        49: .line 427
            ldc "/java.base/java/lang/invoke/DelegatingMethodHandle$Holder.class"
            aload 8 /* bytes */
            invokestatic jdk.tools.jlink.plugin.ResourcePoolEntry.create:(Ljava/lang/String;[B)Ljdk/tools/jlink/plugin/ResourcePoolEntry;
            astore 9 /* ndata */
        50: .line 428
            aload 1 /* out */
            aload 9 /* ndata */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolBuilder.add:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)V
        51: .line 430
            getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.JLIA:Ljdk/internal/misc/JavaLangInvokeAccess;
            ldc "java/lang/invoke/Invokers$Holder"
        52: .line 431
            aload 6 /* invokerMethodTypes */
        53: .line 430
            invokeinterface jdk.internal.misc.JavaLangInvokeAccess.generateInvokersHolderClassBytes:(Ljava/lang/String;[Ljava/lang/invoke/MethodType;)[B
            astore 8 /* bytes */
        54: .line 432
            ldc "/java.base/java/lang/invoke/Invokers$Holder.class"
            aload 8 /* bytes */
            invokestatic jdk.tools.jlink.plugin.ResourcePoolEntry.create:(Ljava/lang/String;[B)Ljdk/tools/jlink/plugin/ResourcePoolEntry;
            astore 9 /* ndata */
        55: .line 433
            aload 1 /* out */
            aload 9 /* ndata */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolBuilder.add:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)V
        56: .line 435
            getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.JLIA:Ljdk/internal/misc/JavaLangInvokeAccess;
            ldc "java/lang/invoke/LambdaForm$Holder"
            invokeinterface jdk.internal.misc.JavaLangInvokeAccess.generateBasicFormsClassBytes:(Ljava/lang/String;)[B
            astore 8 /* bytes */
        57: .line 436
            ldc "/java.base/java/lang/invoke/LambdaForm$Holder.class"
            aload 8 /* bytes */
            invokestatic jdk.tools.jlink.plugin.ResourcePoolEntry.create:(Ljava/lang/String;[B)Ljdk/tools/jlink/plugin/ResourcePoolEntry;
            astore 9 /* ndata */
        58: .line 437
            aload 1 /* out */
            aload 9 /* ndata */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolBuilder.add:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)V
        end local 9 // jdk.tools.jlink.plugin.ResourcePoolEntry ndata
        end local 8 // byte[] bytes
        59: .line 438
            goto 62
      StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePoolBuilder int java.lang.invoke.MethodType[] int[] int java.lang.invoke.MethodType[] int
      StackMap stack: java.lang.Exception
        60: astore 8 /* ex */
        start local 8 // java.lang.Exception ex
        61: .line 439
            new jdk.tools.jlink.plugin.PluginException
            dup
            aload 8 /* ex */
            invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 8 // java.lang.Exception ex
        62: .line 441
      StackMap locals:
      StackMap stack:
            return
        end local 7 // int i
        end local 6 // java.lang.invoke.MethodType[] invokerMethodTypes
        end local 5 // int index
        end local 4 // int[] dmhTypes
        end local 3 // java.lang.invoke.MethodType[] directMethodTypes
        end local 2 // int count
        end local 1 // jdk.tools.jlink.plugin.ResourcePoolBuilder out
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   63     0                this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
            0   63     1                 out  Ljdk/tools/jlink/plugin/ResourcePoolBuilder;
            1   63     2               count  I
            3    4     3               entry  Ljava/util/Set<Ljava/lang/String;>;
            6   63     3   directMethodTypes  [Ljava/lang/invoke/MethodType;
            7   63     4            dmhTypes  [I
            8   63     5               index  I
           10   23     6               entry  Ljava/util/Map$Entry<Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;>;
           11   23     8             dmhType  Ljava/lang/String;
           13   22     9                type  Ljava/lang/String;
           14   22    11                  mt  Ljava/lang/invoke/MethodType;
           25   63     6  invokerMethodTypes  [Ljava/lang/invoke/MethodType;
           26   63     7                   i  I
           28   39     8         invokerType  Ljava/lang/String;
           29   39    10                  mt  Ljava/lang/invoke/MethodType;
           30   39    11           lastParam  I
           43   59     8               bytes  [B
           45   59     9               ndata  Ljdk/tools/jlink/plugin/ResourcePoolEntry;
           61   62     8                  ex  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
          40    59      60  Class java.lang.Exception
    MethodParameters:
      Name  Flags
      out   

  private static java.lang.String expandSignature(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=7, args_size=1
        start local 0 // java.lang.String signature
         0: .line 453
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 1 /* sb */
        start local 1 // java.lang.StringBuilder sb
         1: .line 454
            bipush 88
            istore 2 /* last */
        start local 2 // char last
         2: .line 455
            iconst_0
            istore 3 /* count */
        start local 3 // int count
         3: .line 456
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         4: goto 20
         5: .line 457
      StackMap locals: java.lang.String java.lang.StringBuilder int int int
      StackMap stack:
            aload 0 /* signature */
            iload 4 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            istore 5 /* c */
        start local 5 // char c
         6: .line 458
            iload 5 /* c */
            bipush 48
            if_icmplt 10
            iload 5 /* c */
            bipush 57
            if_icmpgt 10
         7: .line 459
            iload 3 /* count */
            bipush 10
            imul
            istore 3 /* count */
         8: .line 460
            iload 3 /* count */
            iload 5 /* c */
            bipush 48
            isub
            iadd
            istore 3 /* count */
         9: .line 461
            goto 19
        10: .line 462
      StackMap locals: int
      StackMap stack:
            iload 5 /* c */
            invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.requireBasicType:(C)V
        11: .line 463
            iconst_1
            istore 6 /* j */
        start local 6 // int j
        12: goto 15
        13: .line 464
      StackMap locals: int
      StackMap stack:
            aload 1 /* sb */
            iload 2 /* last */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        14: .line 463
            iinc 6 /* j */ 1
      StackMap locals:
      StackMap stack:
        15: iload 6 /* j */
            iload 3 /* count */
            if_icmplt 13
        end local 6 // int j
        16: .line 466
            aload 1 /* sb */
            iload 5 /* c */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        17: .line 467
            iload 5 /* c */
            istore 2 /* last */
        18: .line 468
            iconst_0
            istore 3 /* count */
        end local 5 // char c
        19: .line 456
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        20: iload 4 /* i */
            aload 0 /* signature */
            invokevirtual java.lang.String.length:()I
            if_icmplt 5
        end local 4 // int i
        21: .line 473
            iload 3 /* count */
            iconst_1
            if_icmple 28
        22: .line 474
            iload 2 /* last */
            invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.requireBasicType:(C)V
        23: .line 475
            iconst_1
            istore 4 /* j */
        start local 4 // int j
        24: goto 27
        25: .line 476
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            iload 2 /* last */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        26: .line 475
            iinc 4 /* j */ 1
      StackMap locals:
      StackMap stack:
        27: iload 4 /* j */
            iload 3 /* count */
            if_icmplt 25
        end local 4 // int j
        28: .line 479
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 3 // int count
        end local 2 // char last
        end local 1 // java.lang.StringBuilder sb
        end local 0 // java.lang.String signature
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   29     0  signature  Ljava/lang/String;
            1   29     1         sb  Ljava/lang/StringBuilder;
            2   29     2       last  C
            3   29     3      count  I
            4   21     4          i  I
            6   19     5          c  C
           12   16     6          j  I
           24   28     4          j  I
    MethodParameters:
           Name  Flags
      signature  

  private static java.lang.invoke.MethodType asMethodType(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/invoke/MethodType;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=1
        start local 0 // java.lang.String basicSignatureString
         0: .line 483
            aload 0 /* basicSignatureString */
            ldc "_"
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 1 /* parts */
        start local 1 // java.lang.String[] parts
         1: .line 484
            getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.$assertionsDisabled:Z
            ifne 2
            aload 1 /* parts */
            arraylength
            iconst_2
            if_icmpeq 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 485
      StackMap locals: java.lang.String[]
      StackMap stack:
            getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.$assertionsDisabled:Z
            ifne 3
            aload 1 /* parts */
            iconst_1
            aaload
            invokevirtual java.lang.String.length:()I
            iconst_1
            if_icmpeq 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 486
      StackMap locals:
      StackMap stack:
            aload 1 /* parts */
            iconst_0
            aaload
            invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.expandSignature:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* parameters */
        start local 2 // java.lang.String parameters
         4: .line 487
            aload 1 /* parts */
            iconst_1
            aaload
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.simpleType:(C)Ljava/lang/Class;
            astore 3 /* rtype */
        start local 3 // java.lang.Class rtype
         5: .line 488
            aload 2 /* parameters */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 7
         6: .line 489
            aload 3 /* rtype */
            invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
            areturn
         7: .line 491
      StackMap locals: java.lang.String java.lang.Class
      StackMap stack:
            aload 2 /* parameters */
            invokevirtual java.lang.String.length:()I
            anewarray java.lang.Class
            astore 4 /* ptypes */
        start local 4 // java.lang.Class[] ptypes
         8: .line 492
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         9: goto 12
        10: .line 493
      StackMap locals: java.lang.Class[] int
      StackMap stack:
            aload 4 /* ptypes */
            iload 5 /* i */
            aload 2 /* parameters */
            iload 5 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.simpleType:(C)Ljava/lang/Class;
            aastore
        11: .line 492
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: iload 5 /* i */
            aload 4 /* ptypes */
            arraylength
            if_icmplt 10
        end local 5 // int i
        13: .line 495
            aload 3 /* rtype */
            aload 4 /* ptypes */
            invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
            areturn
        end local 4 // java.lang.Class[] ptypes
        end local 3 // java.lang.Class rtype
        end local 2 // java.lang.String parameters
        end local 1 // java.lang.String[] parts
        end local 0 // java.lang.String basicSignatureString
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   14     0  basicSignatureString  Ljava/lang/String;
            1   14     1                 parts  [Ljava/lang/String;
            4   14     2            parameters  Ljava/lang/String;
            5   14     3                 rtype  Ljava/lang/Class<*>;
            8   14     4                ptypes  [Ljava/lang/Class;
            9   13     5                     i  I
    MethodParameters:
                      Name  Flags
      basicSignatureString  

  private static java.lang.Class<?> simpleType(char);
    descriptor: (C)Ljava/lang/Class;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // char c
         0: .line 500
            iload 0 /* c */
            tableswitch { // 66 - 90
                   66: 7
                   67: 7
                   68: 2
                   69: 10
                   70: 1
                   71: 10
                   72: 10
                   73: 3
                   74: 5
                   75: 10
                   76: 4
                   77: 10
                   78: 10
                   79: 10
                   80: 10
                   81: 10
                   82: 10
                   83: 7
                   84: 10
                   85: 10
                   86: 6
                   87: 10
                   88: 10
                   89: 10
                   90: 7
              default: 10
          }
         1: .line 502
      StackMap locals:
      StackMap stack:
            getstatic java.lang.Float.TYPE:Ljava/lang/Class;
            areturn
         2: .line 504
      StackMap locals:
      StackMap stack:
            getstatic java.lang.Double.TYPE:Ljava/lang/Class;
            areturn
         3: .line 506
      StackMap locals:
      StackMap stack:
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            areturn
         4: .line 508
      StackMap locals:
      StackMap stack:
            ldc Ljava/lang/Object;
            areturn
         5: .line 510
      StackMap locals:
      StackMap stack:
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            areturn
         6: .line 512
      StackMap locals:
      StackMap stack:
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            areturn
         7: .line 517
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Not a valid primitive: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 0 /* c */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
         8: .line 518
            ldc " (use I instead)"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         9: .line 517
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 520
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Not a primitive: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 0 /* c */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // char c
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0     c  C
    Signature: (C)Ljava/lang/Class<*>;
    MethodParameters:
      Name  Flags
      c     

  private static java.lang.String lambda$0(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.String type
         0: .line 179
            aload 0 /* type */
            invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.expandSignature:(Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 0 // java.lang.String type
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  type  Ljava/lang/String;

  private static jdk.tools.jlink.plugin.PluginException lambda$1();
    descriptor: ()Ljdk/tools/jlink/plugin/PluginException;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 226
            new jdk.tools.jlink.plugin.PluginException
            dup
            ldc "No version defined in the java.base being linked"
            invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/String;)V
         1: .line 227
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static java.lang.String[] lambda$2(java.lang.String);
    descriptor: (Ljava/lang/String;)[Ljava/lang/String;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String line
         0: .line 242
            aload 0 /* line */
            ldc " "
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            areturn
        end local 0 // java.lang.String line
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  line  Ljava/lang/String;

  private void lambda$3(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
        start local 1 // java.lang.String[] parts
         0: .line 244
            aload 1 /* parts */
            iconst_0
            aaload
            dup
            astore 2
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 2
           -606951941: 1
           1636066446: 2
              default: 15
          }
      StackMap locals: java.lang.String
      StackMap stack:
         1: aload 2
            ldc "[LF_RESOLVE]"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 5
            goto 15
      StackMap locals:
      StackMap stack:
         2: aload 2
            ldc "[BMH_RESOLVE]"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 3
            goto 15
         3: .line 246
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.speciesTypes:Ljava/util/Set;
            aload 1 /* parts */
            iconst_1
            aaload
            invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.expandSignature:(Ljava/lang/String;)Ljava/lang/String;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         4: .line 247
            goto 15
         5: .line 249
      StackMap locals:
      StackMap stack:
            aload 1 /* parts */
            iconst_3
            aaload
            astore 3 /* methodType */
        start local 3 // java.lang.String methodType
         6: .line 250
            aload 0 /* this */
            aload 3 /* methodType */
            invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.validateMethodType:(Ljava/lang/String;)V
         7: .line 251
            aload 1 /* parts */
            iconst_1
            aaload
            ldc "Invokers"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 10
         8: .line 252
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.invokerTypes:Ljava/util/Set;
            aload 3 /* methodType */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         9: .line 253
            goto 15
      StackMap locals: java.lang.String
      StackMap stack:
        10: aload 1 /* parts */
            iconst_1
            aaload
            ldc "DirectMethodHandle"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 15
        11: .line 254
            aload 1 /* parts */
            iconst_2
            aaload
            astore 4 /* dmh */
        start local 4 // java.lang.String dmh
        12: .line 257
            getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.DMH_METHOD_TYPE_MAP:Ljava/util/Map;
            aload 4 /* dmh */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 15
        13: .line 258
            aload 0 /* this */
            aload 4 /* dmh */
            aload 3 /* methodType */
            invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.addDMHMethodType:(Ljava/lang/String;Ljava/lang/String;)V
        end local 4 // java.lang.String dmh
        14: .line 261
            goto 15
        end local 3 // java.lang.String methodType
        15: .line 264
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String[] parts
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   16     0        this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
            0   16     1       parts  [Ljava/lang/String;
            6   15     3  methodType  Ljava/lang/String;
           12   14     4         dmh  Ljava/lang/String;

  private static jdk.tools.jlink.plugin.ResourcePoolEntry lambda$4(jdk.tools.jlink.plugin.ResourcePoolEntry);
    descriptor: (Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Ljdk/tools/jlink/plugin/ResourcePoolEntry;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.tools.jlink.plugin.ResourcePoolEntry entry
         0: .line 326
            aload 0 /* entry */
            areturn
        end local 0 // jdk.tools.jlink.plugin.ResourcePoolEntry entry
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  entry  Ljdk/tools/jlink/plugin/ResourcePoolEntry;

  private static jdk.tools.jlink.plugin.ResourcePoolEntry lambda$5(jdk.tools.jlink.plugin.ResourcePoolEntry);
    descriptor: (Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Ljdk/tools/jlink/plugin/ResourcePoolEntry;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.tools.jlink.plugin.ResourcePoolEntry entry
         0: .line 334
            aload 0 /* entry */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.path:()Ljava/lang/String;
            ldc "/java.base/java/lang/invoke/DirectMethodHandle$Holder.class"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 4
         1: .line 335
            aload 0 /* entry */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.path:()Ljava/lang/String;
            ldc "/java.base/java/lang/invoke/DelegatingMethodHandle$Holder.class"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 4
         2: .line 336
            aload 0 /* entry */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.path:()Ljava/lang/String;
            ldc "/java.base/java/lang/invoke/Invokers$Holder.class"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 4
         3: .line 337
            aload 0 /* entry */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.path:()Ljava/lang/String;
            ldc "/java.base/java/lang/invoke/LambdaForm$Holder.class"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 5
         4: .line 338
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
         5: .line 340
      StackMap locals:
      StackMap stack:
            aload 0 /* entry */
            areturn
        end local 0 // jdk.tools.jlink.plugin.ResourcePoolEntry entry
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0  entry  Ljdk/tools/jlink/plugin/ResourcePoolEntry;

  private void lambda$6(jdk.tools.jlink.plugin.ResourcePoolBuilder, java.lang.String);
    descriptor: (Ljdk/tools/jlink/plugin/ResourcePoolBuilder;Ljava/lang/String;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
        start local 2 // java.lang.String types
         0: .line 345
            aload 0 /* this */
            aload 2 /* types */
            aload 1
            invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.generateBMHClass:(Ljava/lang/String;Ljdk/tools/jlink/plugin/ResourcePoolBuilder;)V
            return
        end local 2 // java.lang.String types
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
            0    1     2  types  Ljava/lang/String;
}
SourceFile: "GenerateJLIClassesPlugin.java"
InnerClasses:
  public final Version = java.lang.Runtime$Version of java.lang.Runtime
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public final Version = java.lang.module.ModuleDescriptor$Version of java.lang.module.ModuleDescriptor
  public abstract Entry = java.util.Map$Entry of java.util.Map
  public final State = jdk.tools.jlink.plugin.Plugin$State of jdk.tools.jlink.plugin.Plugin