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 DESCRIPTION;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  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 DMH_INVOKE_SPECIAL_IFC;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "invokeSpecialIFC"

  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_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "java.lang.invoke.Invokers$Holder"

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

  private static final jdk.internal.access.JavaLangInvokeAccess JLIA;
    descriptor: Ljdk/internal/access/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.Set<java.lang.String> callSiteTypes;
    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) 

  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

  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=14, locals=0, args_size=0
         0: .line 52
            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 56
            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 73
            ldc "java.lang.invoke.Invokers$Holder"
            bipush 46
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            putstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.INVOKERS_HOLDER_INTERNAL_NAME:Ljava/lang/String;
         5: .line 76
            invokestatic jdk.internal.access.SharedSecrets.getJavaLangInvokeAccess:()Ljdk/internal/access/JavaLangInvokeAccess;
         6: .line 75
            putstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.JLIA:Ljdk/internal/access/JavaLangInvokeAccess;
         7: .line 173
            ldc "invokeVirtual"
            iconst_0
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
         8: .line 174
            ldc "invokeStatic"
            iconst_1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
         9: .line 175
            ldc "invokeSpecial"
            iconst_2
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
        10: .line 176
            ldc "newInvokeSpecial"
            iconst_3
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
        11: .line 177
            ldc "invokeInterface"
            iconst_4
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
        12: .line 178
            ldc "invokeStaticInit"
            iconst_5
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
        13: .line 179
            ldc "invokeSpecialIFC"
            bipush 20
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
        14: .line 172
            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/lang/Object;Ljava/lang/Object;)Ljava/util/Map;
        15: .line 171
            putstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.DMH_METHOD_TYPE_MAP:Ljava/util/Map;
        16: .line 455
            new java.lang.StringBuilder
            dup
            ldc "/java.base/"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.INVOKERS_HOLDER_INTERNAL_NAME:Ljava/lang/String;
            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;
        17: .line 454
            putstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.INVOKERS_HOLDER_ENTRY:Ljava/lang/String;
        18: .line 455
            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 88
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 78
            aload 0 /* this */
            invokestatic java.util.Set.of:()Ljava/util/Set;
            putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.speciesTypes:Ljava/util/Set;
         2: .line 80
            aload 0 /* this */
            invokestatic java.util.Set.of:()Ljava/util/Set;
            putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.invokerTypes:Ljava/util/Set;
         3: .line 82
            aload 0 /* this */
            invokestatic java.util.Set.of:()Ljava/util/Set;
            putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.callSiteTypes:Ljava/util/Set;
         4: .line 84
            aload 0 /* this */
            invokestatic java.util.Map.of:()Ljava/util/Map;
            putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.dmhMethods:Ljava/util/Map;
         5: .line 89
            return
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     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 93
            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 98
            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 103
            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 108
            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 113
            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 124
            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 125
            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 126
            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 127
            ldc "LILL"
            aastore
            dup
            bipush 25
            ldc "I"
            aastore
            dup
            bipush 26
            ldc "LLILL"
            aastore
         4: .line 124
            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=7, locals=0, args_size=0
         0: .line 134
            ldc "LL_L"
            ldc "LL_I"
            ldc "LLLL_L"
            ldc "LLLL_I"
            ldc "LLIL_L"
            ldc "LLIL_I"
         1: .line 135
            ldc "L6_L"
         2: .line 134
            invokestatic java.util.Set.of:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;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.Set<java.lang.String> defaultCallSiteTypes();
    descriptor: ()Ljava/util/Set;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 142
            ldc "L5_L"
            ldc "LIL3_L"
            ldc "ILL_L"
            invokestatic java.util.Set.of:(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=12, locals=0, args_size=0
         0: .line 150
            ldc "invokeInterface"
            ldc "LL_L"
            ldc "L3_I"
            ldc "L3_V"
            invokestatic java.util.Set.of:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Set;
         1: .line 151
            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;
         2: .line 152
            ldc "invokeSpecial"
            bipush 33
            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
         3: .line 153
            ldc "L3_I"
            aastore
            dup
            iconst_5
            ldc "L3_L"
            aastore
            dup
            bipush 6
            ldc "L4_L"
            aastore
            dup
            bipush 7
            ldc "L5_L"
            aastore
            dup
            bipush 8
            ldc "L6_L"
            aastore
            dup
            bipush 9
            ldc "L7_L"
            aastore
            dup
            bipush 10
            ldc "L8_L"
            aastore
            dup
            bipush 11
         4: .line 154
            ldc "LLI_I"
            aastore
            dup
            bipush 12
            ldc "LLI_L"
            aastore
            dup
            bipush 13
            ldc "LLIL_I"
            aastore
            dup
            bipush 14
            ldc "LLIL_L"
            aastore
            dup
            bipush 15
            ldc "LLII_I"
            aastore
            dup
            bipush 16
            ldc "LLII_L"
            aastore
            dup
            bipush 17
         5: .line 155
            ldc "L3I_L"
            aastore
            dup
            bipush 18
            ldc "L3I_I"
            aastore
            dup
            bipush 19
            ldc "L3ILL_L"
            aastore
            dup
            bipush 20
            ldc "LLILI_I"
            aastore
            dup
            bipush 21
            ldc "LLIIL_L"
            aastore
            dup
            bipush 22
            ldc "LLIILL_L"
            aastore
            dup
            bipush 23
         6: .line 156
            ldc "LLIILL_I"
            aastore
            dup
            bipush 24
            ldc "LLIIL_I"
            aastore
            dup
            bipush 25
            ldc "LLILIL_I"
            aastore
            dup
            bipush 26
            ldc "LLILILL_I"
            aastore
            dup
            bipush 27
            ldc "LLILII_I"
            aastore
            dup
            bipush 28
         7: .line 157
            ldc "LLI3_I"
            aastore
            dup
            bipush 29
            ldc "LLI3L_I"
            aastore
            dup
            bipush 30
            ldc "LLI3LL_I"
            aastore
            dup
            bipush 31
            ldc "LLI3_L"
            aastore
            dup
            bipush 32
            ldc "LLI4_I"
            aastore
         8: .line 152
            invokestatic java.util.Set.of:([Ljava/lang/Object;)Ljava/util/Set;
         9: .line 158
            ldc "invokeStatic"
            bipush 37
            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
        10: .line 159
            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
        11: .line 160
            ldc "LL_I"
            aastore
            dup
            bipush 13
            ldc "LLILL_L"
            aastore
            dup
            bipush 14
            ldc "LLIL3_L"
            aastore
            dup
            bipush 15
            ldc "LL_V"
            aastore
            dup
            bipush 16
            ldc "LL_L"
            aastore
            dup
            bipush 17
            ldc "L3_I"
            aastore
            dup
            bipush 18
            ldc "L3_L"
            aastore
            dup
            bipush 19
        12: .line 161
            ldc "L3_V"
            aastore
            dup
            bipush 20
            ldc "L4_I"
            aastore
            dup
            bipush 21
            ldc "L4_L"
            aastore
            dup
            bipush 22
            ldc "L5_L"
            aastore
            dup
            bipush 23
            ldc "L6_L"
            aastore
            dup
            bipush 24
            ldc "L7_L"
            aastore
            dup
            bipush 25
            ldc "L8_L"
            aastore
            dup
            bipush 26
            ldc "L9_L"
            aastore
            dup
            bipush 27
        13: .line 162
            ldc "L10_L"
            aastore
            dup
            bipush 28
            ldc "L10I_L"
            aastore
            dup
            bipush 29
            ldc "L10II_L"
            aastore
            dup
            bipush 30
            ldc "L10IIL_L"
            aastore
            dup
            bipush 31
            ldc "L11_L"
            aastore
            dup
            bipush 32
            ldc "L12_L"
            aastore
            dup
            bipush 33
        14: .line 163
            ldc "L13_L"
            aastore
            dup
            bipush 34
            ldc "L14_L"
            aastore
            dup
            bipush 35
            ldc "L14I_L"
            aastore
            dup
            bipush 36
            ldc "L14II_L"
            aastore
        15: .line 158
            invokestatic java.util.Set.of:([Ljava/lang/Object;)Ljava/util/Set;
        16: .line 164
            ldc "newInvokeSpecial"
            ldc "L_L"
            ldc "LL_L"
            invokestatic java.util.Set.of:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Set;
        17: .line 165
            ldc "invokeSpecialIFC"
            ldc "L5_I"
            invokestatic java.util.Set.of:(Ljava/lang/Object;)Ljava/util/Set;
        18: .line 149
            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;
            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 184
            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 185
            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    2     0    this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
            0    2     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 189
            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 190
            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 191
            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 189
            putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.speciesTypes:Ljava/util/Set;
         4: .line 193
            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 194
            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 196
            aload 0 /* this */
            invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.defaultCallSiteTypes:()Ljava/util/Set;
            putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.callSiteTypes:Ljava/util/Set;
         7: .line 198
            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;
         8: .line 199
            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 11
      StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePool top java.util.Iterator
      StackMap stack:
         9: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Set
            astore 2 /* dmhMethodTypes */
        start local 2 // java.util.Set dmhMethodTypes
        10: .line 200
            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
        11: .line 199
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        12: .line 205
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.mainArgument:Ljava/lang/String;
            ifnull 13
            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 31
        13: .line 206
      StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePool
      StackMap stack:
            aconst_null
            astore 2
            aconst_null
            astore 3
        14: .line 207
            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;
        15: .line 206
            astore 4 /* traceFile */
        start local 4 // java.io.InputStream traceFile
        16: .line 208
            aload 4 /* traceFile */
            ifnull 23
        17: .line 209
            aload 0 /* this */
        18: .line 210
            new java.io.BufferedReader
            dup
        19: .line 211
            new java.io.InputStreamReader
            dup
            aload 4 /* traceFile */
            invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;)V
        20: .line 210
            invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
        21: .line 211
            invokevirtual java.io.BufferedReader.lines:()Ljava/util/stream/Stream;
        22: .line 209
            invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.readTraceConfig:(Ljava/util/stream/Stream;)V
        23: .line 213
      StackMap locals: java.lang.Throwable java.lang.Throwable java.io.InputStream
      StackMap stack:
            aload 4 /* traceFile */
            ifnull 34
            aload 4 /* traceFile */
            invokevirtual java.io.InputStream.close:()V
            goto 34
      StackMap locals:
      StackMap stack: java.lang.Throwable
        24: astore 2
            aload 4 /* traceFile */
            ifnull 25
            aload 4 /* traceFile */
            invokevirtual java.io.InputStream.close:()V
        end local 4 // java.io.InputStream traceFile
      StackMap locals:
      StackMap stack:
        25: aload 2
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        26: astore 3
            aload 2
            ifnonnull 27
            aload 3
            astore 2
            goto 28
      StackMap locals:
      StackMap stack:
        27: aload 2
            aload 3
            if_acmpeq 28
            aload 2
            aload 3
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        28: aload 2
            athrow
      StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePool
      StackMap stack: java.lang.Exception
        29: astore 2 /* e */
        start local 2 // java.lang.Exception e
        30: .line 214
            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
        31: .line 217
      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
        32: .line 218
            aload 2 /* file */
            invokevirtual java.io.File.exists:()Z
            ifeq 34
        33: .line 219
            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
        34: .line 222
      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   35     0            this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
            0   35     1              in  Ljdk/tools/jlink/plugin/ResourcePool;
           10   11     2  dmhMethodTypes  Ljava/util/Set<Ljava/lang/String;>;
           16   25     4       traceFile  Ljava/io/InputStream;
           30   31     2               e  Ljava/lang/Exception;
           32   34     2            file  Ljava/io/File;
      Exception table:
        from    to  target  type
          16    23      24  any
          14    26      26  any
          13    29      29  Class java.lang.Exception
    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 228
            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 229
            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 230
            aload 0 /* this */
            new java.util.TreeSet
            dup
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.callSiteTypes:Ljava/util/Set;
            invokespecial java.util.TreeSet.<init>:(Ljava/util/Collection;)V
            putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.callSiteTypes:Ljava/util/Set;
         3: .line 232
            new java.util.TreeMap
            dup
            invokespecial java.util.TreeMap.<init>:()V
            astore 2 /* newDMHMethods */
        start local 2 // java.util.TreeMap newDMHMethods
         4: .line 233
            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 7
      StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin java.util.stream.Stream java.util.TreeMap top java.util.Iterator
      StackMap stack:
         5: 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
         6: .line 234
            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
         7: .line 233
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
         8: .line 236
            aload 0 /* this */
            aload 2 /* newDMHMethods */
            putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.dmhMethods:Ljava/util/Map;
         9: .line 237
            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$1(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;
        10: .line 238
            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$2([Ljava/lang/String;)V (7)
                  ([Ljava/lang/String;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        11: .line 271
            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   12     0           this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
            0   12     1          lines  Ljava/util/stream/Stream<Ljava/lang/String;>;
            4   12     2  newDMHMethods  Ljava/util/TreeMap<Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;>;
            6    7     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 274
            aload 0 /* this */
            aload 2 /* methodType */
            invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.validateMethodType:(Ljava/lang/String;)V
         1: .line 275
            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 276
            aload 3 /* methodTypes */
            ifnonnull 5
         3: .line 277
            new java.util.TreeSet
            dup
            invokespecial java.util.TreeSet.<init>:()V
            astore 3 /* methodTypes */
         4: .line 278
            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 280
      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 281
            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 285
            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 286
      StackMap locals:
      StackMap stack: java.io.IOException
            pop
         3: .line 287
            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 292
            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 293
            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 292
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         4: .line 295
            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 298
            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 300
            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 301
            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 302
      StackMap locals: java.lang.String[]
      StackMap stack:
            new jdk.tools.jlink.plugin.PluginException
            dup
         4: .line 303
            ldc "Method type signature must be of form [LJIFD]*_[LJIFDV]"
         5: .line 302
            invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 306
      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 307
            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 310
            ldc "LIJFD"
            iload 0 /* c */
            invokevirtual java.lang.String.indexOf:(I)I
            ifge 4
         1: .line 311
            new jdk.tools.jlink.plugin.PluginException
            dup
         2: .line 312
            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 311
            invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 314
      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=3, 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 318
            aload 0 /* this */
            aload 1 /* in */
            invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.initialize:(Ljdk/tools/jlink/plugin/ResourcePool;)V
         1: .line 320
            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$3(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Ljdk/tools/jlink/plugin/ResourcePoolEntry; (6)
                  (Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Ljdk/tools/jlink/plugin/ResourcePoolEntry;
         2: .line 331
            aload 2 /* out */
         3: .line 320
            invokeinterface jdk.tools.jlink.plugin.ResourcePool.transformAndCopy:(Ljava/util/function/Function;Ljdk/tools/jlink/plugin/ResourcePoolBuilder;)V
         4: .line 334
            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$4(Ljdk/tools/jlink/plugin/ResourcePoolBuilder;Ljava/lang/String;)V (7)
                  (Ljava/lang/String;)V
            invokeinterface java.util.Set.forEach:(Ljava/util/function/Consumer;)V
         5: .line 337
            aload 0 /* this */
            aload 2 /* out */
            invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.generateHolderClasses:(Ljdk/tools/jlink/plugin/ResourcePoolBuilder;)V
         6: .line 340
            aload 0 /* this */
            aconst_null
            putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.speciesTypes:Ljava/util/Set;
         7: .line 341
            aload 0 /* this */
            aconst_null
            putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.invokerTypes:Ljava/util/Set;
         8: .line 342
            aload 0 /* this */
            aconst_null
            putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.dmhMethods:Ljava/util/Map;
         9: .line 344
            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   10     0  this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
            0   10     1    in  Ljdk/tools/jlink/plugin/ResourcePool;
            0   10     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 352
            getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.JLIA:Ljdk/internal/access/JavaLangInvokeAccess;
            aload 1 /* types */
            invokeinterface jdk.internal.access.JavaLangInvokeAccess.generateConcreteBMHClassBytes:(Ljava/lang/String;)Ljava/util/Map$Entry;
         1: .line 351
            astore 3 /* result */
        start local 3 // java.util.Map$Entry result
         2: .line 353
            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 354
            aload 3 /* result */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast byte[]
            astore 5 /* bytes */
        start local 5 // byte[] bytes
         4: .line 358
            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 359
            aload 5 /* bytes */
         6: .line 357
            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 360
            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 361
            goto 11
      StackMap locals:
      StackMap stack: java.lang.Exception
         9: astore 3 /* ex */
        start local 3 // java.lang.Exception ex
        10: .line 362
            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 364
      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=6, locals=13, args_size=2
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
        start local 1 // jdk.tools.jlink.plugin.ResourcePoolBuilder out
         0: .line 367
            iconst_0
            istore 2 /* count */
        start local 2 // int count
         1: .line 368
            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 369
            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 368
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 371
            iload 2 /* count */
            anewarray java.lang.invoke.MethodType
            astore 3 /* directMethodTypes */
        start local 3 // java.lang.invoke.MethodType[] directMethodTypes
         6: .line 372
            iload 2 /* count */
            newarray 10
            astore 4 /* dmhTypes */
        start local 4 // int[] dmhTypes
         7: .line 373
            iconst_0
            istore 5 /* index */
        start local 5 // int index
         8: .line 374
            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 375
            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 376
            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 379
            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 380
            aload 11 /* mt */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            iconst_1
            if_icmplt 16
        15: .line 381
            aload 11 /* mt */
            iconst_0
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            ldc Ljava/lang/Object;
            if_acmpeq 19
        16: .line 382
      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 383
            ldc "DMH type parameter must start with L"
        18: .line 382
            invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/String;)V
            athrow
        19: .line 385
      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 386
            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 387
            iinc 5 /* index */ 1
        end local 11 // java.lang.invoke.MethodType mt
        end local 9 // java.lang.String type
        22: .line 376
      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 374
      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 393
            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 394
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        26: .line 395
            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 396
            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 397
            aload 10 /* mt */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            iconst_1
            isub
            istore 11 /* lastParam */
        start local 11 // int lastParam
        30: .line 398
            aload 10 /* mt */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            iconst_2
            if_icmplt 33
        31: .line 399
            aload 10 /* mt */
            iconst_0
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            ldc Ljava/lang/Object;
            if_acmpne 33
        32: .line 400
            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 401
      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 402
            new java.lang.StringBuilder
            dup
            ldc "Invoker type parameter must start and end with Object: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 8 /* invokerType */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        35: .line 401
            invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/String;)V
            athrow
        36: .line 404
      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 405
            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 406
            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 395
      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 411
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.callSiteTypes:Ljava/util/Set;
            invokeinterface java.util.Set.size:()I
            anewarray java.lang.invoke.MethodType
            astore 8 /* callSiteMethodTypes */
        start local 8 // java.lang.invoke.MethodType[] callSiteMethodTypes
        41: .line 412
            iconst_0
            istore 7 /* i */
        42: .line 413
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.callSiteTypes:Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 10
            goto 53
      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.invoke.MethodType[] top java.util.Iterator
      StackMap stack:
        43: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 9 /* callSiteType */
        start local 9 // java.lang.String callSiteType
        44: .line 414
            aload 9 /* callSiteType */
            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
        45: .line 415
            aload 11 /* mt */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            iconst_1
            isub
            istore 12 /* lastParam */
        start local 12 // int lastParam
        46: .line 416
            aload 11 /* mt */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            iconst_1
            if_icmplt 48
        47: .line 417
            aload 11 /* mt */
            iload 12 /* lastParam */
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            ldc Ljava/lang/Object;
            if_acmpeq 51
        48: .line 418
      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.invoke.MethodType[] java.lang.String java.util.Iterator java.lang.invoke.MethodType int
      StackMap stack:
            new jdk.tools.jlink.plugin.PluginException
            dup
        49: .line 419
            new java.lang.StringBuilder
            dup
            ldc "CallSite type parameter must end with Object: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 9 /* callSiteType */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        50: .line 418
            invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/String;)V
            athrow
        51: .line 421
      StackMap locals:
      StackMap stack:
            aload 8 /* callSiteMethodTypes */
            iload 7 /* i */
            aload 11 /* mt */
            iload 12 /* lastParam */
            iload 12 /* lastParam */
            iconst_1
            iadd
            invokevirtual java.lang.invoke.MethodType.dropParameterTypes:(II)Ljava/lang/invoke/MethodType;
            aastore
        52: .line 422
            iinc 7 /* i */ 1
        end local 12 // int lastParam
        end local 11 // java.lang.invoke.MethodType mt
        end local 9 // java.lang.String callSiteType
        53: .line 413
      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.invoke.MethodType[] top java.util.Iterator
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 43
        54: .line 425
            getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.JLIA:Ljdk/internal/access/JavaLangInvokeAccess;
        55: .line 426
            ldc "java/lang/invoke/DirectMethodHandle$Holder"
            aload 3 /* directMethodTypes */
            aload 4 /* dmhTypes */
        56: .line 425
            invokeinterface jdk.internal.access.JavaLangInvokeAccess.generateDirectMethodHandleHolderClassBytes:(Ljava/lang/String;[Ljava/lang/invoke/MethodType;[I)[B
            astore 9 /* bytes */
        start local 9 // byte[] bytes
        57: .line 428
            ldc "/java.base/java/lang/invoke/DirectMethodHandle$Holder.class"
            aload 9 /* bytes */
            invokestatic jdk.tools.jlink.plugin.ResourcePoolEntry.create:(Ljava/lang/String;[B)Ljdk/tools/jlink/plugin/ResourcePoolEntry;
        58: .line 427
            astore 10 /* ndata */
        start local 10 // jdk.tools.jlink.plugin.ResourcePoolEntry ndata
        59: .line 429
            aload 1 /* out */
            aload 10 /* ndata */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolBuilder.add:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)V
        60: .line 431
            getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.JLIA:Ljdk/internal/access/JavaLangInvokeAccess;
        61: .line 432
            ldc "java/lang/invoke/DelegatingMethodHandle$Holder"
            aload 3 /* directMethodTypes */
        62: .line 431
            invokeinterface jdk.internal.access.JavaLangInvokeAccess.generateDelegatingMethodHandleHolderClassBytes:(Ljava/lang/String;[Ljava/lang/invoke/MethodType;)[B
            astore 9 /* bytes */
        63: .line 433
            ldc "/java.base/java/lang/invoke/DelegatingMethodHandle$Holder.class"
            aload 9 /* bytes */
            invokestatic jdk.tools.jlink.plugin.ResourcePoolEntry.create:(Ljava/lang/String;[B)Ljdk/tools/jlink/plugin/ResourcePoolEntry;
            astore 10 /* ndata */
        64: .line 434
            aload 1 /* out */
            aload 10 /* ndata */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolBuilder.add:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)V
        65: .line 436
            getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.JLIA:Ljdk/internal/access/JavaLangInvokeAccess;
            getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.INVOKERS_HOLDER_INTERNAL_NAME:Ljava/lang/String;
        66: .line 437
            aload 6 /* invokerMethodTypes */
            aload 8 /* callSiteMethodTypes */
        67: .line 436
            invokeinterface jdk.internal.access.JavaLangInvokeAccess.generateInvokersHolderClassBytes:(Ljava/lang/String;[Ljava/lang/invoke/MethodType;[Ljava/lang/invoke/MethodType;)[B
            astore 9 /* bytes */
        68: .line 438
            getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.INVOKERS_HOLDER_ENTRY:Ljava/lang/String;
            aload 9 /* bytes */
            invokestatic jdk.tools.jlink.plugin.ResourcePoolEntry.create:(Ljava/lang/String;[B)Ljdk/tools/jlink/plugin/ResourcePoolEntry;
            astore 10 /* ndata */
        69: .line 439
            aload 1 /* out */
            aload 10 /* ndata */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolBuilder.add:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)V
        70: .line 441
            getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.JLIA:Ljdk/internal/access/JavaLangInvokeAccess;
            ldc "java/lang/invoke/LambdaForm$Holder"
            invokeinterface jdk.internal.access.JavaLangInvokeAccess.generateBasicFormsClassBytes:(Ljava/lang/String;)[B
            astore 9 /* bytes */
        71: .line 442
            ldc "/java.base/java/lang/invoke/LambdaForm$Holder.class"
            aload 9 /* bytes */
            invokestatic jdk.tools.jlink.plugin.ResourcePoolEntry.create:(Ljava/lang/String;[B)Ljdk/tools/jlink/plugin/ResourcePoolEntry;
            astore 10 /* ndata */
        72: .line 443
            aload 1 /* out */
            aload 10 /* ndata */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolBuilder.add:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)V
        end local 10 // jdk.tools.jlink.plugin.ResourcePoolEntry ndata
        end local 9 // byte[] bytes
        73: .line 444
            goto 76
      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.invoke.MethodType[]
      StackMap stack: java.lang.Exception
        74: astore 9 /* ex */
        start local 9 // java.lang.Exception ex
        75: .line 445
            new jdk.tools.jlink.plugin.PluginException
            dup
            aload 9 /* ex */
            invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 9 // java.lang.Exception ex
        76: .line 447
      StackMap locals:
      StackMap stack:
            return
        end local 8 // java.lang.invoke.MethodType[] callSiteMethodTypes
        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   77     0                 this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
            0   77     1                  out  Ljdk/tools/jlink/plugin/ResourcePoolBuilder;
            1   77     2                count  I
            3    4     3                entry  Ljava/util/Set<Ljava/lang/String;>;
            6   77     3    directMethodTypes  [Ljava/lang/invoke/MethodType;
            7   77     4             dmhTypes  [I
            8   77     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   77     6   invokerMethodTypes  [Ljava/lang/invoke/MethodType;
           26   77     7                    i  I
           28   39     8          invokerType  Ljava/lang/String;
           29   39    10                   mt  Ljava/lang/invoke/MethodType;
           30   39    11            lastParam  I
           41   77     8  callSiteMethodTypes  [Ljava/lang/invoke/MethodType;
           44   53     9         callSiteType  Ljava/lang/String;
           45   53    11                   mt  Ljava/lang/invoke/MethodType;
           46   53    12            lastParam  I
           57   73     9                bytes  [B
           59   73    10                ndata  Ljdk/tools/jlink/plugin/ResourcePoolEntry;
           75   76     9                   ex  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
          54    73      74  Class java.lang.Exception
    MethodParameters:
      Name  Flags
      out   

  public static java.lang.String expandSignature(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=7, args_size=1
        start local 0 // java.lang.String signature
         0: .line 459
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 1 /* sb */
        start local 1 // java.lang.StringBuilder sb
         1: .line 460
            bipush 88
            istore 2 /* last */
        start local 2 // char last
         2: .line 461
            iconst_0
            istore 3 /* count */
        start local 3 // int count
         3: .line 462
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         4: goto 20
         5: .line 463
      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 464
            iload 5 /* c */
            bipush 48
            if_icmplt 10
            iload 5 /* c */
            bipush 57
            if_icmpgt 10
         7: .line 465
            iload 3 /* count */
            bipush 10
            imul
            istore 3 /* count */
         8: .line 466
            iload 3 /* count */
            iload 5 /* c */
            bipush 48
            isub
            iadd
            istore 3 /* count */
         9: .line 467
            goto 19
        10: .line 468
      StackMap locals: int
      StackMap stack:
            iload 5 /* c */
            invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.requireBasicType:(C)V
        11: .line 469
            iconst_1
            istore 6 /* j */
        start local 6 // int j
        12: goto 15
        13: .line 470
      StackMap locals: int
      StackMap stack:
            aload 1 /* sb */
            iload 2 /* last */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        14: .line 469
            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 472
            aload 1 /* sb */
            iload 5 /* c */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        17: .line 473
            iload 5 /* c */
            istore 2 /* last */
        18: .line 474
            iconst_0
            istore 3 /* count */
        end local 5 // char c
        19: .line 462
      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 479
            iload 3 /* count */
            iconst_1
            if_icmple 28
        22: .line 480
            iload 2 /* last */
            invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.requireBasicType:(C)V
        23: .line 481
            iconst_1
            istore 4 /* j */
        start local 4 // int j
        24: goto 27
        25: .line 482
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            iload 2 /* last */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        26: .line 481
            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 485
      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 489
            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 490
            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 491
      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 492
      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 493
            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 494
            aload 2 /* parameters */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 7
         6: .line 495
            aload 3 /* rtype */
            invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
            areturn
         7: .line 497
      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 498
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         9: goto 12
        10: .line 499
      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 498
            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 501
            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 506
            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 508
      StackMap locals:
      StackMap stack:
            getstatic java.lang.Float.TYPE:Ljava/lang/Class;
            areturn
         2: .line 510
      StackMap locals:
      StackMap stack:
            getstatic java.lang.Double.TYPE:Ljava/lang/Class;
            areturn
         3: .line 512
      StackMap locals:
      StackMap stack:
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            areturn
         4: .line 514
      StackMap locals:
      StackMap stack:
            ldc Ljava/lang/Object;
            areturn
         5: .line 516
      StackMap locals:
      StackMap stack:
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            areturn
         6: .line 518
      StackMap locals:
      StackMap stack:
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            areturn
         7: .line 523
      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 524
            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 523
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 526
      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 190
            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 java.lang.String[] lambda$1(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 237
            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$2(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 239
            aload 1 /* parts */
            iconst_0
            aaload
            dup
            astore 2
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 2
           -685835729: 1
           -606951941: 2
              default: 22
          }
      StackMap locals: java.lang.String
      StackMap stack:
         1: aload 2
            ldc "[SPECIES_RESOLVE]"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 3
            goto 22
      StackMap locals:
      StackMap stack:
         2: aload 2
            ldc "[LF_RESOLVE]"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 8
            goto 22
         3: .line 242
      StackMap locals:
      StackMap stack:
            aload 1 /* parts */
            arraylength
            iconst_3
            if_icmpne 22
            aload 1 /* parts */
            iconst_1
            aaload
            ldc "java.lang.invoke.BoundMethodHandle$Species_"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 22
         4: .line 243
            aload 1 /* parts */
            iconst_1
            aaload
            ldc "java.lang.invoke.BoundMethodHandle$Species_"
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 3 /* species */
        start local 3 // java.lang.String species
         5: .line 244
            ldc "L"
            aload 3 /* species */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 22
         6: .line 245
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.speciesTypes:Ljava/util/Set;
            aload 3 /* species */
            invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.expandSignature:(Ljava/lang/String;)Ljava/lang/String;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // java.lang.String species
         7: .line 248
            goto 22
         8: .line 250
      StackMap locals:
      StackMap stack:
            aload 1 /* parts */
            iconst_3
            aaload
            astore 3 /* methodType */
        start local 3 // java.lang.String methodType
         9: .line 251
            aload 0 /* this */
            aload 3 /* methodType */
            invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.validateMethodType:(Ljava/lang/String;)V
        10: .line 252
            aload 1 /* parts */
            iconst_1
            aaload
            ldc "java.lang.invoke.Invokers$Holder"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 17
        11: .line 253
            ldc "linkToTargetMethod"
            aload 1 /* parts */
            iconst_2
            aaload
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 13
        12: .line 254
            ldc "linkToCallSite"
            aload 1 /* parts */
            iconst_2
            aaload
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 15
        13: .line 255
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.callSiteTypes:Ljava/util/Set;
            aload 3 /* methodType */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        14: .line 256
            goto 22
        15: .line 257
      StackMap locals:
      StackMap stack:
            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
        16: .line 259
            goto 22
      StackMap locals:
      StackMap stack:
        17: aload 1 /* parts */
            iconst_1
            aaload
            ldc "DirectMethodHandle"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 22
        18: .line 260
            aload 1 /* parts */
            iconst_2
            aaload
            astore 4 /* dmh */
        start local 4 // java.lang.String dmh
        19: .line 263
            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 22
        20: .line 264
            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
        21: .line 267
            goto 22
        end local 3 // java.lang.String methodType
        22: .line 270
      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   23     0        this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
            0   23     1       parts  [Ljava/lang/String;
            5    7     3     species  Ljava/lang/String;
            9   22     3  methodType  Ljava/lang/String;
           19   21     4         dmh  Ljava/lang/String;

  private static jdk.tools.jlink.plugin.ResourcePoolEntry lambda$3(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=2, args_size=1
        start local 0 // jdk.tools.jlink.plugin.ResourcePoolEntry entry
         0: .line 322
            aload 0 /* entry */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.path:()Ljava/lang/String;
            astore 1 /* path */
        start local 1 // java.lang.String path
         1: .line 323
            aload 1 /* path */
            ldc "/java.base/java/lang/invoke/DirectMethodHandle$Holder.class"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 5
         2: .line 324
            aload 1 /* path */
            ldc "/java.base/java/lang/invoke/DelegatingMethodHandle$Holder.class"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 5
         3: .line 325
            aload 1 /* path */
            getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.INVOKERS_HOLDER_ENTRY:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 5
         4: .line 326
            aload 1 /* path */
            ldc "/java.base/java/lang/invoke/LambdaForm$Holder.class"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 6
         5: .line 327
      StackMap locals: java.lang.String
      StackMap stack:
            aconst_null
            areturn
         6: .line 329
      StackMap locals:
      StackMap stack:
            aload 0 /* entry */
            areturn
        end local 1 // java.lang.String path
        end local 0 // jdk.tools.jlink.plugin.ResourcePoolEntry entry
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0  entry  Ljdk/tools/jlink/plugin/ResourcePoolEntry;
            1    7     1   path  Ljava/lang/String;

  private void lambda$4(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 334
            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 Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  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