public class java.lang.invoke.MethodHandles
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: java.lang.invoke.MethodHandles
  super_class: java.lang.Object
{
  static final java.lang.invoke.MemberName$Factory IMPL_NAMES;
    descriptor: Ljava/lang/invoke/MemberName$Factory;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  private static final java.security.Permission ACCESS_PERMISSION;
    descriptor: Ljava/security/Permission;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.invoke.MethodHandle[] IDENTITY_MHS;
    descriptor: [Ljava/lang/invoke/MethodHandle;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.invoke.MethodHandle[] ZERO_MHS;
    descriptor: [Ljava/lang/invoke/MethodHandle;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

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

  private static volatile int[] $SWITCH_TABLE$sun$invoke$util$Wrapper;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 85
            ldc Ljava/lang/invoke/MethodHandles;
            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 java.lang.invoke.MethodHandles.$assertionsDisabled:Z
         3: .line 89
            invokestatic java.lang.invoke.MemberName.getFactory:()Ljava/lang/invoke/MemberName$Factory;
            putstatic java.lang.invoke.MethodHandles.IMPL_NAMES:Ljava/lang/invoke/MemberName$Factory;
         4: .line 353
            new java.lang.reflect.ReflectPermission
            dup
            ldc "suppressAccessChecks"
            invokespecial java.lang.reflect.ReflectPermission.<init>:(Ljava/lang/String;)V
         5: .line 352
            putstatic java.lang.invoke.MethodHandles.ACCESS_PERMISSION:Ljava/security/Permission;
         6: .line 4835
            bipush 10
            anewarray java.lang.invoke.MethodHandle
            putstatic java.lang.invoke.MethodHandles.IDENTITY_MHS:[Ljava/lang/invoke/MethodHandle;
         7: .line 4853
            bipush 10
            anewarray java.lang.invoke.MethodHandle
            putstatic java.lang.invoke.MethodHandles.ZERO_MHS:[Ljava/lang/invoke/MethodHandle;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

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

  public static java.lang.invoke.MethodHandles$Lookup lookup();
    descriptor: ()Ljava/lang/invoke/MethodHandles$Lookup;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 114
            new java.lang.invoke.MethodHandles$Lookup
            dup
            invokestatic jdk.internal.reflect.Reflection.getCallerClass:()Ljava/lang/Class;
            invokespecial java.lang.invoke.MethodHandles$Lookup.<init>:(Ljava/lang/Class;)V
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    RuntimeVisibleAnnotations: 
      jdk.internal.reflect.CallerSensitive()
      jdk.internal.vm.annotation.ForceInline()

  private static java.lang.invoke.MethodHandles$Lookup reflected$lookup();
    descriptor: ()Ljava/lang/invoke/MethodHandles$Lookup;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 123
            invokestatic jdk.internal.reflect.Reflection.getCallerClass:()Ljava/lang/Class;
            astore 0 /* caller */
        start local 0 // java.lang.Class caller
         1: .line 124
            aload 0 /* caller */
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            ifnonnull 3
         2: .line 125
            new java.lang.StringBuilder
            dup
            ldc "illegal lookupClass: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* caller */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
         3: .line 127
      StackMap locals: java.lang.Class
      StackMap stack:
            new java.lang.invoke.MethodHandles$Lookup
            dup
            aload 0 /* caller */
            invokespecial java.lang.invoke.MethodHandles$Lookup.<init>:(Ljava/lang/Class;)V
            areturn
        end local 0 // java.lang.Class caller
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            1    4     0  caller  Ljava/lang/Class<*>;
    RuntimeVisibleAnnotations: 
      jdk.internal.reflect.CallerSensitive()

  public static java.lang.invoke.MethodHandles$Lookup publicLookup();
    descriptor: ()Ljava/lang/invoke/MethodHandles$Lookup;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 159
            getstatic java.lang.invoke.MethodHandles$Lookup.PUBLIC_LOOKUP:Ljava/lang/invoke/MethodHandles$Lookup;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static java.lang.invoke.MethodHandles$Lookup privateLookupIn(java.lang.Class<?>, java.lang.invoke.MethodHandles$Lookup);
    descriptor: (Ljava/lang/Class;Ljava/lang/invoke/MethodHandles$Lookup;)Ljava/lang/invoke/MethodHandles$Lookup;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=9, args_size=2
        start local 0 // java.lang.Class targetClass
        start local 1 // java.lang.invoke.MethodHandles$Lookup caller
         0: .line 225
            aload 1 /* caller */
            getfield java.lang.invoke.MethodHandles$Lookup.allowedModes:I
            iconst_m1
            if_icmpne 2
         1: .line 226
            new java.lang.invoke.MethodHandles$Lookup
            dup
            aload 0 /* targetClass */
            invokespecial java.lang.invoke.MethodHandles$Lookup.<init>:(Ljava/lang/Class;)V
            areturn
         2: .line 229
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            astore 2 /* sm */
        start local 2 // java.lang.SecurityManager sm
         3: .line 230
            aload 2 /* sm */
            ifnull 4
            aload 2 /* sm */
            getstatic java.lang.invoke.MethodHandles.ACCESS_PERMISSION:Ljava/security/Permission;
            invokevirtual java.lang.SecurityManager.checkPermission:(Ljava/security/Permission;)V
         4: .line 231
      StackMap locals: java.lang.SecurityManager
      StackMap stack:
            aload 0 /* targetClass */
            invokevirtual java.lang.Class.isPrimitive:()Z
            ifeq 6
         5: .line 232
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 0 /* targetClass */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " is a primitive class"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 233
      StackMap locals:
      StackMap stack:
            aload 0 /* targetClass */
            invokevirtual java.lang.Class.isArray:()Z
            ifeq 8
         7: .line 234
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 0 /* targetClass */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " is an array class"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 236
      StackMap locals:
      StackMap stack:
            aload 1 /* caller */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.hasFullPrivilegeAccess:()Z
            ifne 10
         9: .line 237
            new java.lang.IllegalAccessException
            dup
            ldc "caller does not have PRIVATE and MODULE lookup mode"
            invokespecial java.lang.IllegalAccessException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 240
      StackMap locals:
      StackMap stack:
            getstatic java.lang.invoke.MethodHandles.$assertionsDisabled:Z
            ifne 11
            aload 1 /* caller */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.previousLookupClass:()Ljava/lang/Class;
            ifnull 11
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        11: .line 242
      StackMap locals:
      StackMap stack:
            aload 1 /* caller */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupClass:()Ljava/lang/Class;
            astore 3 /* callerClass */
        start local 3 // java.lang.Class callerClass
        12: .line 243
            aload 3 /* callerClass */
            invokevirtual java.lang.Class.getModule:()Ljava/lang/Module;
            astore 4 /* callerModule */
        start local 4 // java.lang.Module callerModule
        13: .line 244
            aload 0 /* targetClass */
            invokevirtual java.lang.Class.getModule:()Ljava/lang/Module;
            astore 5 /* targetModule */
        start local 5 // java.lang.Module targetModule
        14: .line 245
            aconst_null
            astore 6 /* newPreviousClass */
        start local 6 // java.lang.Class newPreviousClass
        15: .line 246
            bipush 31
            istore 7 /* newModes */
        start local 7 // int newModes
        16: .line 248
            aload 5 /* targetModule */
            aload 4 /* callerModule */
            if_acmpeq 30
        17: .line 249
            aload 4 /* callerModule */
            aload 5 /* targetModule */
            invokevirtual java.lang.Module.canRead:(Ljava/lang/Module;)Z
            ifne 19
        18: .line 250
            new java.lang.IllegalAccessException
            dup
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 4 /* callerModule */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " does not read "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* targetModule */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalAccessException.<init>:(Ljava/lang/String;)V
            athrow
        19: .line 251
      StackMap locals: java.lang.Class java.lang.invoke.MethodHandles$Lookup java.lang.SecurityManager java.lang.Class java.lang.Module java.lang.Module java.lang.Class int
      StackMap stack:
            aload 5 /* targetModule */
            invokevirtual java.lang.Module.isNamed:()Z
            ifeq 24
        20: .line 252
            aload 0 /* targetClass */
            invokevirtual java.lang.Class.getPackageName:()Ljava/lang/String;
            astore 8 /* pn */
        start local 8 // java.lang.String pn
        21: .line 253
            getstatic java.lang.invoke.MethodHandles.$assertionsDisabled:Z
            ifne 22
            aload 8 /* pn */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 22
            new java.lang.AssertionError
            dup
            ldc "unnamed package cannot be in named module"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        22: .line 254
      StackMap locals: java.lang.String
      StackMap stack:
            aload 5 /* targetModule */
            aload 8 /* pn */
            aload 4 /* callerModule */
            invokevirtual java.lang.Module.isOpen:(Ljava/lang/String;Ljava/lang/Module;)Z
            ifne 24
        23: .line 255
            new java.lang.IllegalAccessException
            dup
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 5 /* targetModule */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " does not open "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* pn */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " to "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* callerModule */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalAccessException.<init>:(Ljava/lang/String;)V
            athrow
        end local 8 // java.lang.String pn
        24: .line 259
      StackMap locals:
      StackMap stack:
            aload 3 /* callerClass */
            astore 6 /* newPreviousClass */
        25: .line 260
            iload 7 /* newModes */
            bipush -17
            iand
            istore 7 /* newModes */
        26: .line 262
            aload 4 /* callerModule */
            invokevirtual java.lang.Module.isNamed:()Z
            ifne 30
            aload 5 /* targetModule */
            invokevirtual java.lang.Module.isNamed:()Z
            ifeq 30
        27: .line 263
            invokestatic jdk.internal.module.IllegalAccessLogger.illegalAccessLogger:()Ljdk/internal/module/IllegalAccessLogger;
            astore 8 /* logger */
        start local 8 // jdk.internal.module.IllegalAccessLogger logger
        28: .line 264
            aload 8 /* logger */
            ifnull 30
        29: .line 265
            aload 8 /* logger */
            aload 1 /* caller */
            aload 0 /* targetClass */
            invokevirtual jdk.internal.module.IllegalAccessLogger.logIfOpenedForIllegalAccess:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/Class;)V
        end local 8 // jdk.internal.module.IllegalAccessLogger logger
        30: .line 269
      StackMap locals:
      StackMap stack:
            aload 0 /* targetClass */
            aload 6 /* newPreviousClass */
            iload 7 /* newModes */
            invokestatic java.lang.invoke.MethodHandles$Lookup.newLookup:(Ljava/lang/Class;Ljava/lang/Class;I)Ljava/lang/invoke/MethodHandles$Lookup;
            areturn
        end local 7 // int newModes
        end local 6 // java.lang.Class newPreviousClass
        end local 5 // java.lang.Module targetModule
        end local 4 // java.lang.Module callerModule
        end local 3 // java.lang.Class callerClass
        end local 2 // java.lang.SecurityManager sm
        end local 1 // java.lang.invoke.MethodHandles$Lookup caller
        end local 0 // java.lang.Class targetClass
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   31     0       targetClass  Ljava/lang/Class<*>;
            0   31     1            caller  Ljava/lang/invoke/MethodHandles$Lookup;
            3   31     2                sm  Ljava/lang/SecurityManager;
           12   31     3       callerClass  Ljava/lang/Class<*>;
           13   31     4      callerModule  Ljava/lang/Module;
           14   31     5      targetModule  Ljava/lang/Module;
           15   31     6  newPreviousClass  Ljava/lang/Class<*>;
           16   31     7          newModes  I
           21   24     8                pn  Ljava/lang/String;
           28   30     8            logger  Ljdk/internal/module/IllegalAccessLogger;
    Exceptions:
      throws java.lang.IllegalAccessException
    Signature: (Ljava/lang/Class<*>;Ljava/lang/invoke/MethodHandles$Lookup;)Ljava/lang/invoke/MethodHandles$Lookup;
    MethodParameters:
             Name  Flags
      targetClass  
      caller       

  static <T> T classData(java.lang.invoke.MethodHandles$Lookup, java.lang.String, java.lang.Class<T>);
    descriptor: (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // java.lang.invoke.MethodHandles$Lookup caller
        start local 1 // java.lang.String name
        start local 2 // java.lang.Class type
         0: .line 316
            aload 0 /* caller */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.hasFullPrivilegeAccess:()Z
            ifne 2
         1: .line 317
            new java.lang.IllegalAccessException
            dup
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 0 /* caller */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " does not have full privilege access"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalAccessException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 319
      StackMap locals:
      StackMap stack:
            aload 0 /* caller */
            getfield java.lang.invoke.MethodHandles$Lookup.lookupClass:Ljava/lang/Class;
            invokestatic java.lang.invoke.MethodHandleNatives.classData:(Ljava/lang/Class;)Ljava/lang/Object;
            astore 3 /* classData */
        start local 3 // java.lang.Object classData
         3: .line 320
            aload 2 /* type */
            aload 3 /* classData */
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 3 // java.lang.Object classData
        end local 2 // java.lang.Class type
        end local 1 // java.lang.String name
        end local 0 // java.lang.invoke.MethodHandles$Lookup caller
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0     caller  Ljava/lang/invoke/MethodHandles$Lookup;
            0    4     1       name  Ljava/lang/String;
            0    4     2       type  Ljava/lang/Class<TT;>;
            3    4     3  classData  Ljava/lang/Object;
    Exceptions:
      throws java.lang.IllegalAccessException
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/Class<TT;>;)TT;
    MethodParameters:
        Name  Flags
      caller  
      name    
      type    

  public static <T extends java.lang.reflect.Member> T reflectAs(java.lang.Class<T>, java.lang.invoke.MethodHandle);
    descriptor: (Ljava/lang/Class;Ljava/lang/invoke/MethodHandle;)Ljava/lang/reflect/Member;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // java.lang.Class expected
        start local 1 // java.lang.invoke.MethodHandle target
         0: .line 346
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            astore 2 /* smgr */
        start local 2 // java.lang.SecurityManager smgr
         1: .line 347
            aload 2 /* smgr */
            ifnull 2
            aload 2 /* smgr */
            getstatic java.lang.invoke.MethodHandles.ACCESS_PERMISSION:Ljava/security/Permission;
            invokevirtual java.lang.SecurityManager.checkPermission:(Ljava/security/Permission;)V
         2: .line 348
      StackMap locals: java.lang.SecurityManager
      StackMap stack:
            getstatic java.lang.invoke.MethodHandles$Lookup.IMPL_LOOKUP:Ljava/lang/invoke/MethodHandles$Lookup;
            astore 3 /* lookup */
        start local 3 // java.lang.invoke.MethodHandles$Lookup lookup
         3: .line 349
            aload 3 /* lookup */
            aload 1 /* target */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.revealDirect:(Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandleInfo;
            aload 0 /* expected */
            aload 3 /* lookup */
            invokeinterface java.lang.invoke.MethodHandleInfo.reflectAs:(Ljava/lang/Class;Ljava/lang/invoke/MethodHandles$Lookup;)Ljava/lang/reflect/Member;
            areturn
        end local 3 // java.lang.invoke.MethodHandles$Lookup lookup
        end local 2 // java.lang.SecurityManager smgr
        end local 1 // java.lang.invoke.MethodHandle target
        end local 0 // java.lang.Class expected
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0  expected  Ljava/lang/Class<TT;>;
            0    4     1    target  Ljava/lang/invoke/MethodHandle;
            1    4     2      smgr  Ljava/lang/SecurityManager;
            3    4     3    lookup  Ljava/lang/invoke/MethodHandles$Lookup;
    Signature: <T::Ljava/lang/reflect/Member;>(Ljava/lang/Class<TT;>;Ljava/lang/invoke/MethodHandle;)TT;
    MethodParameters:
          Name  Flags
      expected  
      target    

  public static java.lang.invoke.MethodHandle arrayConstructor(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.lang.Class arrayClass
         0: .line 3974
            aload 0 /* arrayClass */
            invokevirtual java.lang.Class.isArray:()Z
            ifne 2
         1: .line 3975
            new java.lang.StringBuilder
            dup
            ldc "not an array class: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* arrayClass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
         2: .line 3977
      StackMap locals:
      StackMap stack:
            bipush 11
            invokestatic java.lang.invoke.MethodHandleImpl.getConstantHandle:(I)Ljava/lang/invoke/MethodHandle;
         3: .line 3978
            aload 0 /* arrayClass */
            invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
            invokevirtual java.lang.invoke.MethodHandle.bindTo:(Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
         4: .line 3977
            astore 1 /* ani */
        start local 1 // java.lang.invoke.MethodHandle ani
         5: .line 3979
            aload 1 /* ani */
            aload 1 /* ani */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            aload 0 /* arrayClass */
            invokevirtual java.lang.invoke.MethodType.changeReturnType:(Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodHandle.asType:(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 1 // java.lang.invoke.MethodHandle ani
        end local 0 // java.lang.Class arrayClass
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0  arrayClass  Ljava/lang/Class<*>;
            5    6     1         ani  Ljava/lang/invoke/MethodHandle;
    Exceptions:
      throws java.lang.IllegalArgumentException
    Signature: (Ljava/lang/Class<*>;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
            Name  Flags
      arrayClass  

  public static java.lang.invoke.MethodHandle arrayLength(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Class arrayClass
         0: .line 3999
            aload 0 /* arrayClass */
            getstatic java.lang.invoke.MethodHandleImpl$ArrayAccess.LENGTH:Ljava/lang/invoke/MethodHandleImpl$ArrayAccess;
            invokestatic java.lang.invoke.MethodHandleImpl.makeArrayElementAccessor:(Ljava/lang/Class;Ljava/lang/invoke/MethodHandleImpl$ArrayAccess;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 0 // java.lang.Class arrayClass
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0  arrayClass  Ljava/lang/Class<*>;
    Exceptions:
      throws java.lang.IllegalArgumentException
    Signature: (Ljava/lang/Class<*>;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
            Name  Flags
      arrayClass  

  public static java.lang.invoke.MethodHandle arrayElementGetter(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Class arrayClass
         0: .line 4023
            aload 0 /* arrayClass */
            getstatic java.lang.invoke.MethodHandleImpl$ArrayAccess.GET:Ljava/lang/invoke/MethodHandleImpl$ArrayAccess;
            invokestatic java.lang.invoke.MethodHandleImpl.makeArrayElementAccessor:(Ljava/lang/Class;Ljava/lang/invoke/MethodHandleImpl$ArrayAccess;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 0 // java.lang.Class arrayClass
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0  arrayClass  Ljava/lang/Class<*>;
    Exceptions:
      throws java.lang.IllegalArgumentException
    Signature: (Ljava/lang/Class<*>;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
            Name  Flags
      arrayClass  

  public static java.lang.invoke.MethodHandle arrayElementSetter(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Class arrayClass
         0: .line 4047
            aload 0 /* arrayClass */
            getstatic java.lang.invoke.MethodHandleImpl$ArrayAccess.SET:Ljava/lang/invoke/MethodHandleImpl$ArrayAccess;
            invokestatic java.lang.invoke.MethodHandleImpl.makeArrayElementAccessor:(Ljava/lang/Class;Ljava/lang/invoke/MethodHandleImpl$ArrayAccess;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 0 // java.lang.Class arrayClass
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0  arrayClass  Ljava/lang/Class<*>;
    Exceptions:
      throws java.lang.IllegalArgumentException
    Signature: (Ljava/lang/Class<*>;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
            Name  Flags
      arrayClass  

  public static java.lang.invoke.VarHandle arrayElementVarHandle(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/invoke/VarHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Class arrayClass
         0: .line 4111
            aload 0 /* arrayClass */
            invokestatic java.lang.invoke.VarHandles.makeArrayElementHandle:(Ljava/lang/Class;)Ljava/lang/invoke/VarHandle;
            areturn
        end local 0 // java.lang.Class arrayClass
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0  arrayClass  Ljava/lang/Class<*>;
    Exceptions:
      throws java.lang.IllegalArgumentException
    Signature: (Ljava/lang/Class<*>;)Ljava/lang/invoke/VarHandle;
    MethodParameters:
            Name  Flags
      arrayClass  

  public static java.lang.invoke.VarHandle byteArrayViewVarHandle(java.lang.Class<?>, java.nio.ByteOrder);
    descriptor: (Ljava/lang/Class;Ljava/nio/ByteOrder;)Ljava/lang/invoke/VarHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.Class viewArrayClass
        start local 1 // java.nio.ByteOrder byteOrder
         0: .line 4192
            aload 1 /* byteOrder */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 4193
            aload 0 /* viewArrayClass */
         2: .line 4194
            aload 1 /* byteOrder */
            getstatic java.nio.ByteOrder.BIG_ENDIAN:Ljava/nio/ByteOrder;
            if_acmpne 3
            iconst_1
            goto 4
      StackMap locals:
      StackMap stack: java.lang.Class
         3: iconst_0
         4: .line 4193
      StackMap locals: java.lang.Class java.nio.ByteOrder
      StackMap stack: java.lang.Class int
            invokestatic java.lang.invoke.VarHandles.byteArrayViewHandle:(Ljava/lang/Class;Z)Ljava/lang/invoke/VarHandle;
            areturn
        end local 1 // java.nio.ByteOrder byteOrder
        end local 0 // java.lang.Class viewArrayClass
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0  viewArrayClass  Ljava/lang/Class<*>;
            0    5     1       byteOrder  Ljava/nio/ByteOrder;
    Exceptions:
      throws java.lang.IllegalArgumentException
    Signature: (Ljava/lang/Class<*>;Ljava/nio/ByteOrder;)Ljava/lang/invoke/VarHandle;
    MethodParameters:
                Name  Flags
      viewArrayClass  
      byteOrder       

  public static java.lang.invoke.VarHandle byteBufferViewVarHandle(java.lang.Class<?>, java.nio.ByteOrder);
    descriptor: (Ljava/lang/Class;Ljava/nio/ByteOrder;)Ljava/lang/invoke/VarHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.Class viewArrayClass
        start local 1 // java.nio.ByteOrder byteOrder
         0: .line 4279
            aload 1 /* byteOrder */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 4280
            aload 0 /* viewArrayClass */
         2: .line 4281
            aload 1 /* byteOrder */
            getstatic java.nio.ByteOrder.BIG_ENDIAN:Ljava/nio/ByteOrder;
            if_acmpne 3
            iconst_1
            goto 4
      StackMap locals:
      StackMap stack: java.lang.Class
         3: iconst_0
         4: .line 4280
      StackMap locals: java.lang.Class java.nio.ByteOrder
      StackMap stack: java.lang.Class int
            invokestatic java.lang.invoke.VarHandles.makeByteBufferViewHandle:(Ljava/lang/Class;Z)Ljava/lang/invoke/VarHandle;
            areturn
        end local 1 // java.nio.ByteOrder byteOrder
        end local 0 // java.lang.Class viewArrayClass
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0  viewArrayClass  Ljava/lang/Class<*>;
            0    5     1       byteOrder  Ljava/nio/ByteOrder;
    Exceptions:
      throws java.lang.IllegalArgumentException
    Signature: (Ljava/lang/Class<*>;Ljava/nio/ByteOrder;)Ljava/lang/invoke/VarHandle;
    MethodParameters:
                Name  Flags
      viewArrayClass  
      byteOrder       

  public static java.lang.invoke.MethodHandle spreadInvoker(java.lang.invoke.MethodType, int);
    descriptor: (Ljava/lang/invoke/MethodType;I)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // java.lang.invoke.MethodType type
        start local 1 // int leadingArgCount
         0: .line 4334
            iload 1 /* leadingArgCount */
            iflt 1
            iload 1 /* leadingArgCount */
            aload 0 /* type */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            if_icmple 2
         1: .line 4335
      StackMap locals:
      StackMap stack:
            ldc "bad argument count"
            iload 1 /* leadingArgCount */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
         2: .line 4336
      StackMap locals:
      StackMap stack:
            aload 0 /* type */
            ldc [Ljava/lang/Object;
            iload 1 /* leadingArgCount */
            aload 0 /* type */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            iload 1 /* leadingArgCount */
            isub
            invokevirtual java.lang.invoke.MethodType.asSpreaderType:(Ljava/lang/Class;II)Ljava/lang/invoke/MethodType;
            astore 0 /* type */
         3: .line 4337
            aload 0 /* type */
            invokevirtual java.lang.invoke.MethodType.invokers:()Ljava/lang/invoke/Invokers;
            iload 1 /* leadingArgCount */
            invokevirtual java.lang.invoke.Invokers.spreadInvoker:(I)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 1 // int leadingArgCount
        end local 0 // java.lang.invoke.MethodType type
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    4     0             type  Ljava/lang/invoke/MethodType;
            0    4     1  leadingArgCount  I
    MethodParameters:
                 Name  Flags
      type             
      leadingArgCount  

  public static java.lang.invoke.MethodHandle exactInvoker(java.lang.invoke.MethodType);
    descriptor: (Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.invoke.MethodType type
         0: .line 4376
            aload 0 /* type */
            invokevirtual java.lang.invoke.MethodType.invokers:()Ljava/lang/invoke/Invokers;
            invokevirtual java.lang.invoke.Invokers.exactInvoker:()Ljava/lang/invoke/MethodHandle;
            areturn
        end local 0 // java.lang.invoke.MethodType type
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  type  Ljava/lang/invoke/MethodType;
    MethodParameters:
      Name  Flags
      type  

  public static java.lang.invoke.MethodHandle invoker(java.lang.invoke.MethodType);
    descriptor: (Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.invoke.MethodType type
         0: .line 4414
            aload 0 /* type */
            invokevirtual java.lang.invoke.MethodType.invokers:()Ljava/lang/invoke/Invokers;
            invokevirtual java.lang.invoke.Invokers.genericInvoker:()Ljava/lang/invoke/MethodHandle;
            areturn
        end local 0 // java.lang.invoke.MethodType type
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  type  Ljava/lang/invoke/MethodType;
    MethodParameters:
      Name  Flags
      type  

  public static java.lang.invoke.MethodHandle varHandleExactInvoker(java.lang.invoke.VarHandle$AccessMode, java.lang.invoke.MethodType);
    descriptor: (Ljava/lang/invoke/VarHandle$AccessMode;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.invoke.VarHandle$AccessMode accessMode
        start local 1 // java.lang.invoke.MethodType type
         0: .line 4432
            aload 1 /* type */
            invokevirtual java.lang.invoke.MethodType.invokers:()Ljava/lang/invoke/Invokers;
            aload 0 /* accessMode */
            invokevirtual java.lang.invoke.Invokers.varHandleMethodExactInvoker:(Ljava/lang/invoke/VarHandle$AccessMode;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 1 // java.lang.invoke.MethodType type
        end local 0 // java.lang.invoke.VarHandle$AccessMode accessMode
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0  accessMode  Ljava/lang/invoke/VarHandle$AccessMode;
            0    1     1        type  Ljava/lang/invoke/MethodType;
    MethodParameters:
            Name  Flags
      accessMode  
      type        

  public static java.lang.invoke.MethodHandle varHandleInvoker(java.lang.invoke.VarHandle$AccessMode, java.lang.invoke.MethodType);
    descriptor: (Ljava/lang/invoke/VarHandle$AccessMode;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.invoke.VarHandle$AccessMode accessMode
        start local 1 // java.lang.invoke.MethodType type
         0: .line 4460
            aload 1 /* type */
            invokevirtual java.lang.invoke.MethodType.invokers:()Ljava/lang/invoke/Invokers;
            aload 0 /* accessMode */
            invokevirtual java.lang.invoke.Invokers.varHandleMethodInvoker:(Ljava/lang/invoke/VarHandle$AccessMode;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 1 // java.lang.invoke.MethodType type
        end local 0 // java.lang.invoke.VarHandle$AccessMode accessMode
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0  accessMode  Ljava/lang/invoke/VarHandle$AccessMode;
            0    1     1        type  Ljava/lang/invoke/MethodType;
    MethodParameters:
            Name  Flags
      accessMode  
      type        

  static java.lang.invoke.MethodHandle basicInvoker(java.lang.invoke.MethodType);
    descriptor: (Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.invoke.MethodType type
         0: .line 4465
            aload 0 /* type */
            invokevirtual java.lang.invoke.MethodType.invokers:()Ljava/lang/invoke/Invokers;
            invokevirtual java.lang.invoke.Invokers.basicInvoker:()Ljava/lang/invoke/MethodHandle;
            areturn
        end local 0 // java.lang.invoke.MethodType type
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  type  Ljava/lang/invoke/MethodType;
    MethodParameters:
      Name  Flags
      type  

  public static java.lang.invoke.MethodHandle explicitCastArguments(java.lang.invoke.MethodHandle, java.lang.invoke.MethodType);
    descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.lang.invoke.MethodHandle target
        start local 1 // java.lang.invoke.MethodType newType
         0: .line 4515
            aload 0 /* target */
            aload 1 /* newType */
            invokestatic java.lang.invoke.MethodHandles.explicitCastArgumentsChecks:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)V
         1: .line 4517
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 2 /* oldType */
        start local 2 // java.lang.invoke.MethodType oldType
         2: .line 4518
            aload 2 /* oldType */
            aload 1 /* newType */
            if_acmpne 3
            aload 0 /* target */
            areturn
         3: .line 4519
      StackMap locals: java.lang.invoke.MethodType
      StackMap stack:
            aload 2 /* oldType */
            aload 1 /* newType */
            invokevirtual java.lang.invoke.MethodType.explicitCastEquivalentToAsType:(Ljava/lang/invoke/MethodType;)Z
            ifeq 5
         4: .line 4520
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.asFixedArity:()Ljava/lang/invoke/MethodHandle;
            aload 1 /* newType */
            invokevirtual java.lang.invoke.MethodHandle.asType:(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            areturn
         5: .line 4522
      StackMap locals:
      StackMap stack:
            aload 0 /* target */
            aload 1 /* newType */
            iconst_0
            invokestatic java.lang.invoke.MethodHandleImpl.makePairwiseConvert:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;Z)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 2 // java.lang.invoke.MethodType oldType
        end local 1 // java.lang.invoke.MethodType newType
        end local 0 // java.lang.invoke.MethodHandle target
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0   target  Ljava/lang/invoke/MethodHandle;
            0    6     1  newType  Ljava/lang/invoke/MethodType;
            2    6     2  oldType  Ljava/lang/invoke/MethodType;
    MethodParameters:
         Name  Flags
      target   
      newType  

  private static void explicitCastArgumentsChecks(java.lang.invoke.MethodHandle, java.lang.invoke.MethodType);
    descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // java.lang.invoke.MethodHandle target
        start local 1 // java.lang.invoke.MethodType newType
         0: .line 4526
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            aload 1 /* newType */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            if_icmpeq 2
         1: .line 4527
            new java.lang.invoke.WrongMethodTypeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "cannot explicitly cast "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* target */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " to "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* newType */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.invoke.WrongMethodTypeException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 4529
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.invoke.MethodType newType
        end local 0 // java.lang.invoke.MethodHandle target
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0   target  Ljava/lang/invoke/MethodHandle;
            0    3     1  newType  Ljava/lang/invoke/MethodType;
    MethodParameters:
         Name  Flags
      target   
      newType  

  public static java.lang.invoke.MethodHandle permuteArguments(java.lang.invoke.MethodHandle, java.lang.invoke.MethodType, int[]);
    descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;[I)Ljava/lang/invoke/MethodHandle;
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=6, locals=13, args_size=3
        start local 0 // java.lang.invoke.MethodHandle target
        start local 1 // java.lang.invoke.MethodType newType
        start local 2 // int[] reorder
         0: .line 4594
            aload 2 /* reorder */
            invokevirtual int[].clone:()Ljava/lang/Object;
            checkcast int[]
            astore 2 /* reorder */
         1: .line 4595
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 3 /* oldType */
        start local 3 // java.lang.invoke.MethodType oldType
         2: .line 4596
            aload 2 /* reorder */
            aload 1 /* newType */
            aload 3 /* oldType */
            invokestatic java.lang.invoke.MethodHandles.permuteArgumentChecks:([ILjava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;)Z
            pop
         3: .line 4599
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.rebind:()Ljava/lang/invoke/BoundMethodHandle;
            astore 4 /* result */
        start local 4 // java.lang.invoke.BoundMethodHandle result
         4: .line 4600
            aload 4 /* result */
            getfield java.lang.invoke.BoundMethodHandle.form:Ljava/lang/invoke/LambdaForm;
            astore 5 /* form */
        start local 5 // java.lang.invoke.LambdaForm form
         5: .line 4601
            aload 1 /* newType */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            istore 6 /* newArity */
        start local 6 // int newArity
         6: .line 4606
            goto 39
        start local 7 // int ddIdx
         7: .line 4607
      StackMap locals: java.lang.invoke.MethodHandle java.lang.invoke.MethodType int[] java.lang.invoke.MethodType java.lang.invoke.BoundMethodHandle java.lang.invoke.LambdaForm int int
      StackMap stack:
            iload 7 /* ddIdx */
            ifle 26
         8: .line 4614
            iload 7 /* ddIdx */
            istore 8 /* srcPos */
        start local 8 // int srcPos
         9: iload 8 /* srcPos */
            istore 9 /* dstPos */
        start local 9 // int dstPos
        10: aload 2 /* reorder */
            iload 8 /* srcPos */
            iaload
            istore 10 /* dupVal */
        start local 10 // int dupVal
        11: .line 4615
            iconst_0
            istore 11 /* killFirst */
        start local 11 // boolean killFirst
        12: .line 4616
            goto 14
        start local 12 // int val
        13: .line 4619
      StackMap locals: java.lang.invoke.MethodHandle java.lang.invoke.MethodType int[] java.lang.invoke.MethodType java.lang.invoke.BoundMethodHandle java.lang.invoke.LambdaForm int int int int int int int
      StackMap stack:
            iload 10 /* dupVal */
            iload 12 /* val */
            if_icmple 14
            iconst_1
            istore 11 /* killFirst */
        end local 12 // int val
        14: .line 4616
      StackMap locals:
      StackMap stack:
            aload 2 /* reorder */
            iinc 9 /* dstPos */ -1
            iload 9 /* dstPos */
            iaload
            dup
            istore 12 /* val */
        start local 12 // int val
        15: iload 10 /* dupVal */
            if_icmpne 13
        end local 12 // int val
        16: .line 4621
            iload 11 /* killFirst */
            ifne 19
        17: .line 4622
            iload 9 /* dstPos */
            istore 8 /* srcPos */
        18: .line 4623
            iload 7 /* ddIdx */
            istore 9 /* dstPos */
        19: .line 4625
      StackMap locals:
      StackMap stack:
            aload 5 /* form */
            invokevirtual java.lang.invoke.LambdaForm.editor:()Ljava/lang/invoke/LambdaFormEditor;
            iconst_1
            iload 8 /* srcPos */
            iadd
            iconst_1
            iload 9 /* dstPos */
            iadd
            invokevirtual java.lang.invoke.LambdaFormEditor.dupArgumentForm:(II)Ljava/lang/invoke/LambdaForm;
            astore 5 /* form */
        20: .line 4626
            getstatic java.lang.invoke.MethodHandles.$assertionsDisabled:Z
            ifne 21
            aload 2 /* reorder */
            iload 8 /* srcPos */
            iaload
            aload 2 /* reorder */
            iload 9 /* dstPos */
            iaload
            if_icmpeq 21
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        21: .line 4627
      StackMap locals:
      StackMap stack:
            aload 3 /* oldType */
            iload 9 /* dstPos */
            iload 9 /* dstPos */
            iconst_1
            iadd
            invokevirtual java.lang.invoke.MethodType.dropParameterTypes:(II)Ljava/lang/invoke/MethodType;
            astore 3 /* oldType */
        22: .line 4629
            iload 9 /* dstPos */
            iconst_1
            iadd
            istore 12 /* tailPos */
        start local 12 // int tailPos
        23: .line 4630
            aload 2 /* reorder */
            iload 12 /* tailPos */
            aload 2 /* reorder */
            iload 9 /* dstPos */
            aload 2 /* reorder */
            arraylength
            iload 12 /* tailPos */
            isub
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        24: .line 4631
            aload 2 /* reorder */
            aload 2 /* reorder */
            arraylength
            iconst_1
            isub
            invokestatic java.util.Arrays.copyOf:([II)[I
            astore 2 /* reorder */
        end local 12 // int tailPos
        end local 11 // boolean killFirst
        end local 10 // int dupVal
        end local 9 // int dstPos
        end local 8 // int srcPos
        25: .line 4632
            goto 38
        26: .line 4633
      StackMap locals: java.lang.invoke.MethodHandle java.lang.invoke.MethodType int[] java.lang.invoke.MethodType java.lang.invoke.BoundMethodHandle java.lang.invoke.LambdaForm int int
      StackMap stack:
            iload 7 /* ddIdx */
            iconst_m1
            ixor
            istore 8 /* dropVal */
        start local 8 // int dropVal
        27: iconst_0
            istore 9 /* insPos */
        start local 9 // int insPos
        28: .line 4634
            goto 30
        29: .line 4637
      StackMap locals: int int
      StackMap stack:
            iinc 9 /* insPos */ 1
        30: .line 4634
      StackMap locals:
      StackMap stack:
            iload 9 /* insPos */
            aload 2 /* reorder */
            arraylength
            if_icmpge 31
            aload 2 /* reorder */
            iload 9 /* insPos */
            iaload
            iload 8 /* dropVal */
            if_icmplt 29
        31: .line 4639
      StackMap locals:
      StackMap stack:
            aload 1 /* newType */
            iload 8 /* dropVal */
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            astore 10 /* ptype */
        start local 10 // java.lang.Class ptype
        32: .line 4640
            aload 5 /* form */
            invokevirtual java.lang.invoke.LambdaForm.editor:()Ljava/lang/invoke/LambdaFormEditor;
            iconst_1
            iload 9 /* insPos */
            iadd
            aload 10 /* ptype */
            invokestatic java.lang.invoke.LambdaForm$BasicType.basicType:(Ljava/lang/Class;)Ljava/lang/invoke/LambdaForm$BasicType;
            invokevirtual java.lang.invoke.LambdaFormEditor.addArgumentForm:(ILjava/lang/invoke/LambdaForm$BasicType;)Ljava/lang/invoke/LambdaForm;
            astore 5 /* form */
        33: .line 4641
            aload 3 /* oldType */
            iload 9 /* insPos */
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            aload 10 /* ptype */
            aastore
            invokevirtual java.lang.invoke.MethodType.insertParameterTypes:(I[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
            astore 3 /* oldType */
        34: .line 4643
            iload 9 /* insPos */
            iconst_1
            iadd
            istore 11 /* tailPos */
        start local 11 // int tailPos
        35: .line 4644
            aload 2 /* reorder */
            aload 2 /* reorder */
            arraylength
            iconst_1
            iadd
            invokestatic java.util.Arrays.copyOf:([II)[I
            astore 2 /* reorder */
        36: .line 4645
            aload 2 /* reorder */
            iload 9 /* insPos */
            aload 2 /* reorder */
            iload 11 /* tailPos */
            aload 2 /* reorder */
            arraylength
            iload 11 /* tailPos */
            isub
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        37: .line 4646
            aload 2 /* reorder */
            iload 9 /* insPos */
            iload 8 /* dropVal */
            iastore
        end local 11 // int tailPos
        end local 10 // java.lang.Class ptype
        end local 9 // int insPos
        end local 8 // int dropVal
        38: .line 4648
      StackMap locals:
      StackMap stack:
            getstatic java.lang.invoke.MethodHandles.$assertionsDisabled:Z
            ifne 39
            aload 2 /* reorder */
            aload 1 /* newType */
            aload 3 /* oldType */
            invokestatic java.lang.invoke.MethodHandles.permuteArgumentChecks:([ILjava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;)Z
            ifne 39
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        end local 7 // int ddIdx
        39: .line 4606
      StackMap locals:
      StackMap stack:
            aload 2 /* reorder */
            iload 6 /* newArity */
            invokestatic java.lang.invoke.MethodHandles.findFirstDupOrDrop:([II)I
            dup
            istore 7 /* ddIdx */
        start local 7 // int ddIdx
        40: ifne 7
        end local 7 // int ddIdx
        41: .line 4650
            getstatic java.lang.invoke.MethodHandles.$assertionsDisabled:Z
            ifne 42
            aload 2 /* reorder */
            arraylength
            iload 6 /* newArity */
            if_icmpeq 42
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        42: .line 4652
      StackMap locals:
      StackMap stack:
            aload 5 /* form */
            invokevirtual java.lang.invoke.LambdaForm.editor:()Ljava/lang/invoke/LambdaFormEditor;
            iconst_1
            aload 2 /* reorder */
            invokevirtual java.lang.invoke.LambdaFormEditor.permuteArgumentsForm:(I[I)Ljava/lang/invoke/LambdaForm;
            astore 5 /* form */
        43: .line 4653
            aload 1 /* newType */
            aload 4 /* result */
            invokevirtual java.lang.invoke.BoundMethodHandle.type:()Ljava/lang/invoke/MethodType;
            if_acmpne 45
            aload 5 /* form */
            aload 4 /* result */
            invokevirtual java.lang.invoke.BoundMethodHandle.internalForm:()Ljava/lang/invoke/LambdaForm;
            if_acmpne 45
        44: .line 4654
            aload 4 /* result */
            areturn
        45: .line 4655
      StackMap locals:
      StackMap stack:
            aload 4 /* result */
            aload 1 /* newType */
            aload 5 /* form */
            invokevirtual java.lang.invoke.BoundMethodHandle.copyWith:(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/LambdaForm;)Ljava/lang/invoke/BoundMethodHandle;
            areturn
        end local 6 // int newArity
        end local 5 // java.lang.invoke.LambdaForm form
        end local 4 // java.lang.invoke.BoundMethodHandle result
        end local 3 // java.lang.invoke.MethodType oldType
        end local 2 // int[] reorder
        end local 1 // java.lang.invoke.MethodType newType
        end local 0 // java.lang.invoke.MethodHandle target
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   46     0     target  Ljava/lang/invoke/MethodHandle;
            0   46     1    newType  Ljava/lang/invoke/MethodType;
            0   46     2    reorder  [I
            2   46     3    oldType  Ljava/lang/invoke/MethodType;
            4   46     4     result  Ljava/lang/invoke/BoundMethodHandle;
            5   46     5       form  Ljava/lang/invoke/LambdaForm;
            6   46     6   newArity  I
            7   39     7      ddIdx  I
           40   41     7      ddIdx  I
            9   25     8     srcPos  I
           10   25     9     dstPos  I
           11   25    10     dupVal  I
           12   25    11  killFirst  Z
           13   14    12        val  I
           15   16    12        val  I
           23   25    12    tailPos  I
           27   38     8    dropVal  I
           28   38     9     insPos  I
           32   38    10      ptype  Ljava/lang/Class<*>;
           35   38    11    tailPos  I
    MethodParameters:
         Name  Flags
      target   
      newType  
      reorder  

  private static int findFirstDupOrDrop(int[], int);
    descriptor: ([II)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=8, args_size=2
        start local 0 // int[] reorder
        start local 1 // int newArity
         0: .line 4667
            iload 1 /* newArity */
            bipush 63
            if_icmpge 22
         1: .line 4668
            lconst_0
            lstore 2 /* mask */
        start local 2 // long mask
         2: .line 4669
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         3: goto 12
         4: .line 4670
      StackMap locals: long int
      StackMap stack:
            aload 0 /* reorder */
            iload 4 /* i */
            iaload
            istore 5 /* arg */
        start local 5 // int arg
         5: .line 4671
            iload 5 /* arg */
            iload 1 /* newArity */
            if_icmplt 7
         6: .line 4672
            aload 0 /* reorder */
            arraylength
            ireturn
         7: .line 4674
      StackMap locals: int
      StackMap stack:
            lconst_1
            iload 5 /* arg */
            lshl
            lstore 6 /* bit */
        start local 6 // long bit
         8: .line 4675
            lload 2 /* mask */
            lload 6 /* bit */
            land
            lconst_0
            lcmp
            ifeq 10
         9: .line 4676
            iload 4 /* i */
            ireturn
        10: .line 4678
      StackMap locals: long
      StackMap stack:
            lload 2 /* mask */
            lload 6 /* bit */
            lor
            lstore 2 /* mask */
        end local 6 // long bit
        end local 5 // int arg
        11: .line 4669
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: iload 4 /* i */
            aload 0 /* reorder */
            arraylength
            if_icmplt 4
        end local 4 // int i
        13: .line 4680
            lload 2 /* mask */
            lconst_1
            iload 1 /* newArity */
            lshl
            lconst_1
            lsub
            lcmp
            ifne 16
        14: .line 4681
            getstatic java.lang.invoke.MethodHandles.$assertionsDisabled:Z
            ifne 15
            lload 2 /* mask */
            ldc -1
            lxor
            invokestatic java.lang.Long.lowestOneBit:(J)J
            invokestatic java.lang.Long.numberOfTrailingZeros:(J)I
            iload 1 /* newArity */
            if_icmpeq 15
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        15: .line 4682
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        16: .line 4685
      StackMap locals:
      StackMap stack:
            lload 2 /* mask */
            ldc -1
            lxor
            invokestatic java.lang.Long.lowestOneBit:(J)J
            lstore 4 /* zeroBit */
        start local 4 // long zeroBit
        17: .line 4686
            lload 4 /* zeroBit */
            invokestatic java.lang.Long.numberOfTrailingZeros:(J)I
            istore 6 /* zeroPos */
        start local 6 // int zeroPos
        18: .line 4687
            getstatic java.lang.invoke.MethodHandles.$assertionsDisabled:Z
            ifne 19
            iload 6 /* zeroPos */
            iload 1 /* newArity */
            if_icmple 19
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        19: .line 4688
      StackMap locals: long int
      StackMap stack:
            iload 6 /* zeroPos */
            iload 1 /* newArity */
            if_icmpne 21
        20: .line 4689
            iconst_0
            ireturn
        21: .line 4691
      StackMap locals:
      StackMap stack:
            iload 6 /* zeroPos */
            iconst_m1
            ixor
            ireturn
        end local 6 // int zeroPos
        end local 4 // long zeroBit
        end local 2 // long mask
        22: .line 4694
      StackMap locals:
      StackMap stack:
            new java.util.BitSet
            dup
            iload 1 /* newArity */
            invokespecial java.util.BitSet.<init>:(I)V
            astore 2 /* mask */
        start local 2 // java.util.BitSet mask
        23: .line 4695
            iconst_0
            istore 3 /* i */
        start local 3 // int i
        24: goto 32
        25: .line 4696
      StackMap locals: java.util.BitSet int
      StackMap stack:
            aload 0 /* reorder */
            iload 3 /* i */
            iaload
            istore 4 /* arg */
        start local 4 // int arg
        26: .line 4697
            iload 4 /* arg */
            iload 1 /* newArity */
            if_icmplt 28
        27: .line 4698
            aload 0 /* reorder */
            arraylength
            ireturn
        28: .line 4700
      StackMap locals: int
      StackMap stack:
            aload 2 /* mask */
            iload 4 /* arg */
            invokevirtual java.util.BitSet.get:(I)Z
            ifeq 30
        29: .line 4701
            iload 3 /* i */
            ireturn
        30: .line 4703
      StackMap locals:
      StackMap stack:
            aload 2 /* mask */
            iload 4 /* arg */
            invokevirtual java.util.BitSet.set:(I)V
        end local 4 // int arg
        31: .line 4695
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        32: iload 3 /* i */
            aload 0 /* reorder */
            arraylength
            if_icmplt 25
        end local 3 // int i
        33: .line 4705
            aload 2 /* mask */
            iconst_0
            invokevirtual java.util.BitSet.nextClearBit:(I)I
            istore 3 /* zeroPos */
        start local 3 // int zeroPos
        34: .line 4706
            getstatic java.lang.invoke.MethodHandles.$assertionsDisabled:Z
            ifne 35
            iload 3 /* zeroPos */
            iload 1 /* newArity */
            if_icmple 35
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        35: .line 4707
      StackMap locals:
      StackMap stack:
            iload 3 /* zeroPos */
            iload 1 /* newArity */
            if_icmpne 37
        36: .line 4708
            iconst_0
            ireturn
        37: .line 4710
      StackMap locals:
      StackMap stack:
            iload 3 /* zeroPos */
            iconst_m1
            ixor
            ireturn
        end local 3 // int zeroPos
        end local 2 // java.util.BitSet mask
        end local 1 // int newArity
        end local 0 // int[] reorder
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   38     0   reorder  [I
            0   38     1  newArity  I
            2   22     2      mask  J
            3   13     4         i  I
            5   11     5       arg  I
            8   11     6       bit  J
           17   22     4   zeroBit  J
           18   22     6   zeroPos  I
           23   38     2      mask  Ljava/util/BitSet;
           24   33     3         i  I
           26   31     4       arg  I
           34   38     3   zeroPos  I
    MethodParameters:
          Name  Flags
      reorder   
      newArity  

  static boolean permuteArgumentChecks(int[], java.lang.invoke.MethodType, java.lang.invoke.MethodType);
    descriptor: ([ILjava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=9, args_size=3
        start local 0 // int[] reorder
        start local 1 // java.lang.invoke.MethodType newType
        start local 2 // java.lang.invoke.MethodType oldType
         0: .line 4715
            aload 1 /* newType */
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            aload 2 /* oldType */
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            if_acmpeq 4
         1: .line 4716
            ldc "return types do not match"
         2: .line 4717
            aload 2 /* oldType */
            aload 1 /* newType */
         3: .line 4716
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
         4: .line 4718
      StackMap locals:
      StackMap stack:
            aload 0 /* reorder */
            arraylength
            aload 2 /* oldType */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            if_icmpne 21
         5: .line 4719
            aload 1 /* newType */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            istore 3 /* limit */
        start local 3 // int limit
         6: .line 4720
            iconst_0
            istore 4 /* bad */
        start local 4 // boolean bad
         7: .line 4721
            iconst_0
            istore 5 /* j */
        start local 5 // int j
         8: goto 19
         9: .line 4722
      StackMap locals: int int int
      StackMap stack:
            aload 0 /* reorder */
            iload 5 /* j */
            iaload
            istore 6 /* i */
        start local 6 // int i
        10: .line 4723
            iload 6 /* i */
            iflt 11
            iload 6 /* i */
            iload 3 /* limit */
            if_icmplt 12
        11: .line 4724
      StackMap locals: int
      StackMap stack:
            iconst_1
            istore 4 /* bad */
            goto 20
        12: .line 4726
      StackMap locals:
      StackMap stack:
            aload 1 /* newType */
            iload 6 /* i */
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            astore 7 /* src */
        start local 7 // java.lang.Class src
        13: .line 4727
            aload 2 /* oldType */
            iload 5 /* j */
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            astore 8 /* dst */
        start local 8 // java.lang.Class dst
        14: .line 4728
            aload 7 /* src */
            aload 8 /* dst */
            if_acmpeq 18
        15: .line 4729
            ldc "parameter types do not match after reorder"
        16: .line 4730
            aload 2 /* oldType */
            aload 1 /* newType */
        17: .line 4729
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
        end local 8 // java.lang.Class dst
        end local 7 // java.lang.Class src
        end local 6 // int i
        18: .line 4721
      StackMap locals:
      StackMap stack:
            iinc 5 /* j */ 1
      StackMap locals:
      StackMap stack:
        19: iload 5 /* j */
            aload 0 /* reorder */
            arraylength
            if_icmplt 9
        end local 5 // int j
        20: .line 4732
      StackMap locals:
      StackMap stack:
            iload 4 /* bad */
            ifne 21
            iconst_1
            ireturn
        end local 4 // boolean bad
        end local 3 // int limit
        21: .line 4734
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "bad reorder array: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* reorder */
            invokestatic java.util.Arrays.toString:([I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        end local 2 // java.lang.invoke.MethodType oldType
        end local 1 // java.lang.invoke.MethodType newType
        end local 0 // int[] reorder
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   22     0  reorder  [I
            0   22     1  newType  Ljava/lang/invoke/MethodType;
            0   22     2  oldType  Ljava/lang/invoke/MethodType;
            6   21     3    limit  I
            7   21     4      bad  Z
            8   20     5        j  I
           10   18     6        i  I
           13   18     7      src  Ljava/lang/Class<*>;
           14   18     8      dst  Ljava/lang/Class<*>;
    MethodParameters:
         Name  Flags
      reorder  
      newType  
      oldType  

  public static java.lang.invoke.MethodHandle constant(java.lang.Class<?>, );
    descriptor: (Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // java.lang.Class type
        start local 1 // java.lang.Object value
         0: .line 4753
            aload 0 /* type */
            invokevirtual java.lang.Class.isPrimitive:()Z
            ifeq 8
         1: .line 4754
            aload 0 /* type */
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            if_acmpne 3
         2: .line 4755
            ldc "void type"
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
         3: .line 4756
      StackMap locals:
      StackMap stack:
            aload 0 /* type */
            invokestatic sun.invoke.util.Wrapper.forPrimitiveType:(Ljava/lang/Class;)Lsun/invoke/util/Wrapper;
            astore 2 /* w */
        start local 2 // sun.invoke.util.Wrapper w
         4: .line 4757
            aload 2 /* w */
            aload 1 /* value */
            aload 0 /* type */
            invokevirtual sun.invoke.util.Wrapper.convert:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
            astore 1 /* value */
         5: .line 4758
            aload 2 /* w */
            invokevirtual sun.invoke.util.Wrapper.zero:()Ljava/lang/Object;
            aload 1 /* value */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 7
         6: .line 4759
            aload 2 /* w */
            aload 0 /* type */
            invokestatic java.lang.invoke.MethodHandles.zero:(Lsun/invoke/util/Wrapper;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            areturn
         7: .line 4760
      StackMap locals: sun.invoke.util.Wrapper
      StackMap stack:
            aload 0 /* type */
            invokestatic java.lang.invoke.MethodHandles.identity:(Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            iconst_0
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* value */
            aastore
            invokestatic java.lang.invoke.MethodHandles.insertArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 2 // sun.invoke.util.Wrapper w
         8: .line 4762
      StackMap locals:
      StackMap stack:
            aload 1 /* value */
            ifnonnull 10
         9: .line 4763
            getstatic sun.invoke.util.Wrapper.OBJECT:Lsun/invoke/util/Wrapper;
            aload 0 /* type */
            invokestatic java.lang.invoke.MethodHandles.zero:(Lsun/invoke/util/Wrapper;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            areturn
        10: .line 4764
      StackMap locals:
      StackMap stack:
            aload 0 /* type */
            invokestatic java.lang.invoke.MethodHandles.identity:(Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            aload 1 /* value */
            invokevirtual java.lang.invoke.MethodHandle.bindTo:(Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 1 // java.lang.Object value
        end local 0 // java.lang.Class type
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   11     0   type  Ljava/lang/Class<*>;
            0   11     1  value  Ljava/lang/Object;
            4    8     2      w  Lsun/invoke/util/Wrapper;
    Signature: (Ljava/lang/Class<*>;Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
       Name  Flags
      type   
      value  

  public static java.lang.invoke.MethodHandle identity(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // java.lang.Class type
         0: .line 4776
            aload 0 /* type */
            invokevirtual java.lang.Class.isPrimitive:()Z
            ifeq 1
            aload 0 /* type */
            invokestatic sun.invoke.util.Wrapper.forPrimitiveType:(Ljava/lang/Class;)Lsun/invoke/util/Wrapper;
            goto 2
      StackMap locals:
      StackMap stack:
         1: getstatic sun.invoke.util.Wrapper.OBJECT:Lsun/invoke/util/Wrapper;
      StackMap locals:
      StackMap stack: sun.invoke.util.Wrapper
         2: astore 1 /* btw */
        start local 1 // sun.invoke.util.Wrapper btw
         3: .line 4777
            aload 1 /* btw */
            invokevirtual sun.invoke.util.Wrapper.ordinal:()I
            istore 2 /* pos */
        start local 2 // int pos
         4: .line 4778
            getstatic java.lang.invoke.MethodHandles.IDENTITY_MHS:[Ljava/lang/invoke/MethodHandle;
            iload 2 /* pos */
            aaload
            astore 3 /* ident */
        start local 3 // java.lang.invoke.MethodHandle ident
         5: .line 4779
            aload 3 /* ident */
            ifnonnull 7
         6: .line 4780
            getstatic java.lang.invoke.MethodHandles.IDENTITY_MHS:[Ljava/lang/invoke/MethodHandle;
            iload 2 /* pos */
            aload 1 /* btw */
            invokevirtual sun.invoke.util.Wrapper.primitiveType:()Ljava/lang/Class;
            invokestatic java.lang.invoke.MethodHandles.makeIdentity:(Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            invokestatic java.lang.invoke.MethodHandles.setCachedMethodHandle:([Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
            astore 3 /* ident */
         7: .line 4782
      StackMap locals: sun.invoke.util.Wrapper int java.lang.invoke.MethodHandle
      StackMap stack:
            aload 3 /* ident */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            aload 0 /* type */
            if_acmpne 9
         8: .line 4783
            aload 3 /* ident */
            areturn
         9: .line 4785
      StackMap locals:
      StackMap stack:
            getstatic java.lang.invoke.MethodHandles.$assertionsDisabled:Z
            ifne 10
            aload 1 /* btw */
            getstatic sun.invoke.util.Wrapper.OBJECT:Lsun/invoke/util/Wrapper;
            if_acmpeq 10
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        10: .line 4786
      StackMap locals:
      StackMap stack:
            aload 0 /* type */
            invokestatic java.lang.invoke.MethodHandles.makeIdentity:(Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 3 // java.lang.invoke.MethodHandle ident
        end local 2 // int pos
        end local 1 // sun.invoke.util.Wrapper btw
        end local 0 // java.lang.Class type
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   11     0   type  Ljava/lang/Class<*>;
            3   11     1    btw  Lsun/invoke/util/Wrapper;
            4   11     2    pos  I
            5   11     3  ident  Ljava/lang/invoke/MethodHandle;
    Signature: (Ljava/lang/Class<*>;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
      Name  Flags
      type  

  public static java.lang.invoke.MethodHandle zero(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Class type
         0: .line 4806
            aload 0 /* type */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 4807
            aload 0 /* type */
            invokevirtual java.lang.Class.isPrimitive:()Z
            ifeq 2
            aload 0 /* type */
            invokestatic sun.invoke.util.Wrapper.forPrimitiveType:(Ljava/lang/Class;)Lsun/invoke/util/Wrapper;
            aload 0 /* type */
            invokestatic java.lang.invoke.MethodHandles.zero:(Lsun/invoke/util/Wrapper;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            goto 3
      StackMap locals:
      StackMap stack:
         2: getstatic sun.invoke.util.Wrapper.OBJECT:Lsun/invoke/util/Wrapper;
            aload 0 /* type */
            invokestatic java.lang.invoke.MethodHandles.zero:(Lsun/invoke/util/Wrapper;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
      StackMap locals:
      StackMap stack: java.lang.invoke.MethodHandle
         3: areturn
        end local 0 // java.lang.Class type
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  type  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
      Name  Flags
      type  

  private static java.lang.invoke.MethodHandle identityOrVoid(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Class type
         0: .line 4811
            aload 0 /* type */
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            if_acmpne 1
            aload 0 /* type */
            invokestatic java.lang.invoke.MethodHandles.zero:(Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* type */
            invokestatic java.lang.invoke.MethodHandles.identity:(Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
      StackMap locals:
      StackMap stack: java.lang.invoke.MethodHandle
         2: areturn
        end local 0 // java.lang.Class type
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  type  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
      Name  Flags
      type  

  public static java.lang.invoke.MethodHandle empty(java.lang.invoke.MethodType);
    descriptor: (Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.invoke.MethodType type
         0: .line 4831
            aload 0 /* type */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 4832
            aload 0 /* type */
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            invokestatic java.lang.invoke.MethodHandles.zero:(Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            iconst_0
            aload 0 /* type */
            invokevirtual java.lang.invoke.MethodType.parameterList:()Ljava/util/List;
            invokestatic java.lang.invoke.MethodHandles.dropArguments:(Ljava/lang/invoke/MethodHandle;ILjava/util/List;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 0 // java.lang.invoke.MethodType type
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  type  Ljava/lang/invoke/MethodType;
    MethodParameters:
      Name  Flags
      type  

  private static java.lang.invoke.MethodHandle makeIdentity(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // java.lang.Class ptype
         0: .line 4837
            aload 0 /* ptype */
            aload 0 /* ptype */
            invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
            astore 1 /* mtype */
        start local 1 // java.lang.invoke.MethodType mtype
         1: .line 4838
            aload 0 /* ptype */
            invokestatic java.lang.invoke.LambdaForm$BasicType.basicType:(Ljava/lang/Class;)Ljava/lang/invoke/LambdaForm$BasicType;
            invokestatic java.lang.invoke.LambdaForm.identityForm:(Ljava/lang/invoke/LambdaForm$BasicType;)Ljava/lang/invoke/LambdaForm;
            astore 2 /* lform */
        start local 2 // java.lang.invoke.LambdaForm lform
         2: .line 4839
            aload 1 /* mtype */
            aload 2 /* lform */
            getstatic java.lang.invoke.MethodHandleImpl$Intrinsic.IDENTITY:Ljava/lang/invoke/MethodHandleImpl$Intrinsic;
            invokestatic java.lang.invoke.MethodHandleImpl.makeIntrinsic:(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/LambdaForm;Ljava/lang/invoke/MethodHandleImpl$Intrinsic;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 2 // java.lang.invoke.LambdaForm lform
        end local 1 // java.lang.invoke.MethodType mtype
        end local 0 // java.lang.Class ptype
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0  ptype  Ljava/lang/Class<*>;
            1    3     1  mtype  Ljava/lang/invoke/MethodType;
            2    3     2  lform  Ljava/lang/invoke/LambdaForm;
    Signature: (Ljava/lang/Class<*>;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
       Name  Flags
      ptype  

  private static java.lang.invoke.MethodHandle zero(sun.invoke.util.Wrapper, java.lang.Class<?>);
    descriptor: (Lsun/invoke/util/Wrapper;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // sun.invoke.util.Wrapper btw
        start local 1 // java.lang.Class rtype
         0: .line 4843
            aload 0 /* btw */
            invokevirtual sun.invoke.util.Wrapper.ordinal:()I
            istore 2 /* pos */
        start local 2 // int pos
         1: .line 4844
            getstatic java.lang.invoke.MethodHandles.ZERO_MHS:[Ljava/lang/invoke/MethodHandle;
            iload 2 /* pos */
            aaload
            astore 3 /* zero */
        start local 3 // java.lang.invoke.MethodHandle zero
         2: .line 4845
            aload 3 /* zero */
            ifnonnull 4
         3: .line 4846
            getstatic java.lang.invoke.MethodHandles.ZERO_MHS:[Ljava/lang/invoke/MethodHandle;
            iload 2 /* pos */
            aload 0 /* btw */
            invokevirtual sun.invoke.util.Wrapper.primitiveType:()Ljava/lang/Class;
            invokestatic java.lang.invoke.MethodHandles.makeZero:(Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            invokestatic java.lang.invoke.MethodHandles.setCachedMethodHandle:([Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
            astore 3 /* zero */
         4: .line 4848
      StackMap locals: int java.lang.invoke.MethodHandle
      StackMap stack:
            aload 3 /* zero */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            aload 1 /* rtype */
            if_acmpne 6
         5: .line 4849
            aload 3 /* zero */
            areturn
         6: .line 4850
      StackMap locals:
      StackMap stack:
            getstatic java.lang.invoke.MethodHandles.$assertionsDisabled:Z
            ifne 7
            aload 0 /* btw */
            getstatic sun.invoke.util.Wrapper.OBJECT:Lsun/invoke/util/Wrapper;
            if_acmpeq 7
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         7: .line 4851
      StackMap locals:
      StackMap stack:
            aload 1 /* rtype */
            invokestatic java.lang.invoke.MethodHandles.makeZero:(Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 3 // java.lang.invoke.MethodHandle zero
        end local 2 // int pos
        end local 1 // java.lang.Class rtype
        end local 0 // sun.invoke.util.Wrapper btw
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0    btw  Lsun/invoke/util/Wrapper;
            0    8     1  rtype  Ljava/lang/Class<*>;
            1    8     2    pos  I
            2    8     3   zero  Ljava/lang/invoke/MethodHandle;
    Signature: (Lsun/invoke/util/Wrapper;Ljava/lang/Class<*>;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
       Name  Flags
      btw    
      rtype  

  private static java.lang.invoke.MethodHandle makeZero(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // java.lang.Class rtype
         0: .line 4855
            aload 0 /* rtype */
            invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
            astore 1 /* mtype */
        start local 1 // java.lang.invoke.MethodType mtype
         1: .line 4856
            aload 0 /* rtype */
            invokestatic java.lang.invoke.LambdaForm$BasicType.basicType:(Ljava/lang/Class;)Ljava/lang/invoke/LambdaForm$BasicType;
            invokestatic java.lang.invoke.LambdaForm.zeroForm:(Ljava/lang/invoke/LambdaForm$BasicType;)Ljava/lang/invoke/LambdaForm;
            astore 2 /* lform */
        start local 2 // java.lang.invoke.LambdaForm lform
         2: .line 4857
            aload 1 /* mtype */
            aload 2 /* lform */
            getstatic java.lang.invoke.MethodHandleImpl$Intrinsic.ZERO:Ljava/lang/invoke/MethodHandleImpl$Intrinsic;
            invokestatic java.lang.invoke.MethodHandleImpl.makeIntrinsic:(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/LambdaForm;Ljava/lang/invoke/MethodHandleImpl$Intrinsic;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 2 // java.lang.invoke.LambdaForm lform
        end local 1 // java.lang.invoke.MethodType mtype
        end local 0 // java.lang.Class rtype
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0  rtype  Ljava/lang/Class<*>;
            1    3     1  mtype  Ljava/lang/invoke/MethodType;
            2    3     2  lform  Ljava/lang/invoke/LambdaForm;
    Signature: (Ljava/lang/Class<*>;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
       Name  Flags
      rtype  

  private static synchronized java.lang.invoke.MethodHandle setCachedMethodHandle(java.lang.invoke.MethodHandle[], int, java.lang.invoke.MethodHandle);
    descriptor: ([Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
    flags: (0x002a) ACC_PRIVATE, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // java.lang.invoke.MethodHandle[] cache
        start local 1 // int pos
        start local 2 // java.lang.invoke.MethodHandle value
         0: .line 4862
            aload 0 /* cache */
            iload 1 /* pos */
            aaload
            astore 3 /* prev */
        start local 3 // java.lang.invoke.MethodHandle prev
         1: .line 4863
            aload 3 /* prev */
            ifnull 2
            aload 3 /* prev */
            areturn
         2: .line 4864
      StackMap locals: java.lang.invoke.MethodHandle
      StackMap stack:
            aload 0 /* cache */
            iload 1 /* pos */
            aload 2 /* value */
            dup_x2
            aastore
            areturn
        end local 3 // java.lang.invoke.MethodHandle prev
        end local 2 // java.lang.invoke.MethodHandle value
        end local 1 // int pos
        end local 0 // java.lang.invoke.MethodHandle[] cache
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0  cache  [Ljava/lang/invoke/MethodHandle;
            0    3     1    pos  I
            0    3     2  value  Ljava/lang/invoke/MethodHandle;
            1    3     3   prev  Ljava/lang/invoke/MethodHandle;
    MethodParameters:
       Name  Flags
      cache  
      pos    
      value  

  public static java.lang.invoke.MethodHandle insertArguments(java.lang.invoke.MethodHandle, int, java.lang.Object[]);
    descriptor: (Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=4, locals=9, args_size=3
        start local 0 // java.lang.invoke.MethodHandle target
        start local 1 // int pos
        start local 2 // java.lang.Object[] values
         0: .line 4906
            aload 2 /* values */
            arraylength
            istore 3 /* insCount */
        start local 3 // int insCount
         1: .line 4907
            aload 0 /* target */
            iload 3 /* insCount */
            iload 1 /* pos */
            invokestatic java.lang.invoke.MethodHandles.insertArgumentsChecks:(Ljava/lang/invoke/MethodHandle;II)[Ljava/lang/Class;
            astore 4 /* ptypes */
        start local 4 // java.lang.Class[] ptypes
         2: .line 4908
            iload 3 /* insCount */
            ifne 3
            aload 0 /* target */
            areturn
         3: .line 4909
      StackMap locals: int java.lang.Class[]
      StackMap stack:
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.rebind:()Ljava/lang/invoke/BoundMethodHandle;
            astore 5 /* result */
        start local 5 // java.lang.invoke.BoundMethodHandle result
         4: .line 4910
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         5: goto 14
         6: .line 4911
      StackMap locals: java.lang.invoke.BoundMethodHandle int
      StackMap stack:
            aload 2 /* values */
            iload 6 /* i */
            aaload
            astore 7 /* value */
        start local 7 // java.lang.Object value
         7: .line 4912
            aload 4 /* ptypes */
            iload 1 /* pos */
            iload 6 /* i */
            iadd
            aaload
            astore 8 /* ptype */
        start local 8 // java.lang.Class ptype
         8: .line 4913
            aload 8 /* ptype */
            invokevirtual java.lang.Class.isPrimitive:()Z
            ifeq 11
         9: .line 4914
            aload 5 /* result */
            iload 1 /* pos */
            aload 8 /* ptype */
            aload 7 /* value */
            invokestatic java.lang.invoke.MethodHandles.insertArgumentPrimitive:(Ljava/lang/invoke/BoundMethodHandle;ILjava/lang/Class;Ljava/lang/Object;)Ljava/lang/invoke/BoundMethodHandle;
            astore 5 /* result */
        10: .line 4915
            goto 13
        11: .line 4916
      StackMap locals: java.lang.Object java.lang.Class
      StackMap stack:
            aload 8 /* ptype */
            aload 7 /* value */
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 7 /* value */
        12: .line 4917
            aload 5 /* result */
            iload 1 /* pos */
            aload 7 /* value */
            invokevirtual java.lang.invoke.BoundMethodHandle.bindArgumentL:(ILjava/lang/Object;)Ljava/lang/invoke/BoundMethodHandle;
            astore 5 /* result */
        end local 8 // java.lang.Class ptype
        end local 7 // java.lang.Object value
        13: .line 4910
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 6 /* i */
            iload 3 /* insCount */
            if_icmplt 6
        end local 6 // int i
        15: .line 4920
            aload 5 /* result */
            areturn
        end local 5 // java.lang.invoke.BoundMethodHandle result
        end local 4 // java.lang.Class[] ptypes
        end local 3 // int insCount
        end local 2 // java.lang.Object[] values
        end local 1 // int pos
        end local 0 // java.lang.invoke.MethodHandle target
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   16     0    target  Ljava/lang/invoke/MethodHandle;
            0   16     1       pos  I
            0   16     2    values  [Ljava/lang/Object;
            1   16     3  insCount  I
            2   16     4    ptypes  [Ljava/lang/Class;
            4   16     5    result  Ljava/lang/invoke/BoundMethodHandle;
            5   15     6         i  I
            7   13     7     value  Ljava/lang/Object;
            8   13     8     ptype  Ljava/lang/Class<*>;
    MethodParameters:
        Name  Flags
      target  
      pos     
      values  

  private static java.lang.invoke.BoundMethodHandle insertArgumentPrimitive(java.lang.invoke.BoundMethodHandle, int, java.lang.Class<?>, );
    descriptor: (Ljava/lang/invoke/BoundMethodHandle;ILjava/lang/Class;Ljava/lang/Object;)Ljava/lang/invoke/BoundMethodHandle;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // java.lang.invoke.BoundMethodHandle result
        start local 1 // int pos
        start local 2 // java.lang.Class ptype
        start local 3 // java.lang.Object value
         0: .line 4925
            aload 2 /* ptype */
            invokestatic sun.invoke.util.Wrapper.forPrimitiveType:(Ljava/lang/Class;)Lsun/invoke/util/Wrapper;
            astore 4 /* w */
        start local 4 // sun.invoke.util.Wrapper w
         1: .line 4927
            aload 4 /* w */
            aload 3 /* value */
            aload 2 /* ptype */
            invokevirtual sun.invoke.util.Wrapper.convert:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
            astore 3 /* value */
         2: .line 4928
            invokestatic java.lang.invoke.MethodHandles.$SWITCH_TABLE$sun$invoke$util$Wrapper:()[I
            aload 4 /* w */
            invokevirtual sun.invoke.util.Wrapper.ordinal:()I
            iaload
            tableswitch { // 5 - 8
                    5: 3
                    6: 4
                    7: 5
                    8: 6
              default: 7
          }
         3: .line 4929
      StackMap locals: sun.invoke.util.Wrapper
      StackMap stack:
            aload 0 /* result */
            iload 1 /* pos */
            aload 3 /* value */
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            invokevirtual java.lang.invoke.BoundMethodHandle.bindArgumentI:(II)Ljava/lang/invoke/BoundMethodHandle;
            areturn
         4: .line 4930
      StackMap locals:
      StackMap stack:
            aload 0 /* result */
            iload 1 /* pos */
            aload 3 /* value */
            checkcast java.lang.Long
            invokevirtual java.lang.Long.longValue:()J
            invokevirtual java.lang.invoke.BoundMethodHandle.bindArgumentJ:(IJ)Ljava/lang/invoke/BoundMethodHandle;
            areturn
         5: .line 4931
      StackMap locals:
      StackMap stack:
            aload 0 /* result */
            iload 1 /* pos */
            aload 3 /* value */
            checkcast java.lang.Float
            invokevirtual java.lang.Float.floatValue:()F
            invokevirtual java.lang.invoke.BoundMethodHandle.bindArgumentF:(IF)Ljava/lang/invoke/BoundMethodHandle;
            areturn
         6: .line 4932
      StackMap locals:
      StackMap stack:
            aload 0 /* result */
            iload 1 /* pos */
            aload 3 /* value */
            checkcast java.lang.Double
            invokevirtual java.lang.Double.doubleValue:()D
            invokevirtual java.lang.invoke.BoundMethodHandle.bindArgumentD:(ID)Ljava/lang/invoke/BoundMethodHandle;
            areturn
         7: .line 4933
      StackMap locals:
      StackMap stack:
            aload 0 /* result */
            iload 1 /* pos */
            aload 3 /* value */
            invokestatic sun.invoke.util.ValueConversions.widenSubword:(Ljava/lang/Object;)I
            invokevirtual java.lang.invoke.BoundMethodHandle.bindArgumentI:(II)Ljava/lang/invoke/BoundMethodHandle;
            areturn
        end local 4 // sun.invoke.util.Wrapper w
        end local 3 // java.lang.Object value
        end local 2 // java.lang.Class ptype
        end local 1 // int pos
        end local 0 // java.lang.invoke.BoundMethodHandle result
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0  result  Ljava/lang/invoke/BoundMethodHandle;
            0    8     1     pos  I
            0    8     2   ptype  Ljava/lang/Class<*>;
            0    8     3   value  Ljava/lang/Object;
            1    8     4       w  Lsun/invoke/util/Wrapper;
    Signature: (Ljava/lang/invoke/BoundMethodHandle;ILjava/lang/Class<*>;Ljava/lang/Object;)Ljava/lang/invoke/BoundMethodHandle;
    MethodParameters:
        Name  Flags
      result  
      pos     
      ptype   
      value   

  private static java.lang.Class<?>[] insertArgumentsChecks(java.lang.invoke.MethodHandle, int, int);
    descriptor: (Ljava/lang/invoke/MethodHandle;II)[Ljava/lang/Class;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=6, args_size=3
        start local 0 // java.lang.invoke.MethodHandle target
        start local 1 // int insCount
        start local 2 // int pos
         0: .line 4938
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 3 /* oldType */
        start local 3 // java.lang.invoke.MethodType oldType
         1: .line 4939
            aload 3 /* oldType */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            istore 4 /* outargs */
        start local 4 // int outargs
         2: .line 4940
            iload 4 /* outargs */
            iload 1 /* insCount */
            isub
            istore 5 /* inargs */
        start local 5 // int inargs
         3: .line 4941
            iload 5 /* inargs */
            ifge 5
         4: .line 4942
            ldc "too many values to insert"
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
         5: .line 4943
      StackMap locals: java.lang.invoke.MethodType int int
      StackMap stack:
            iload 2 /* pos */
            iflt 6
            iload 2 /* pos */
            iload 5 /* inargs */
            if_icmple 7
         6: .line 4944
      StackMap locals:
      StackMap stack:
            ldc "no argument type to append"
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
         7: .line 4945
      StackMap locals:
      StackMap stack:
            aload 3 /* oldType */
            invokevirtual java.lang.invoke.MethodType.ptypes:()[Ljava/lang/Class;
            areturn
        end local 5 // int inargs
        end local 4 // int outargs
        end local 3 // java.lang.invoke.MethodType oldType
        end local 2 // int pos
        end local 1 // int insCount
        end local 0 // java.lang.invoke.MethodHandle target
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0    target  Ljava/lang/invoke/MethodHandle;
            0    8     1  insCount  I
            0    8     2       pos  I
            1    8     3   oldType  Ljava/lang/invoke/MethodType;
            2    8     4   outargs  I
            3    8     5    inargs  I
    Exceptions:
      throws java.lang.RuntimeException
    Signature: (Ljava/lang/invoke/MethodHandle;II)[Ljava/lang/Class<*>;
    MethodParameters:
          Name  Flags
      target    
      insCount  
      pos       

  public static java.lang.invoke.MethodHandle dropArguments(java.lang.invoke.MethodHandle, int, java.util.List<java.lang.Class<?>>);
    descriptor: (Ljava/lang/invoke/MethodHandle;ILjava/util/List;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.lang.invoke.MethodHandle target
        start local 1 // int pos
        start local 2 // java.util.List valueTypes
         0: .line 4991
            aload 0 /* target */
            iload 1 /* pos */
            aload 2 /* valueTypes */
            invokeinterface java.util.List.toArray:()[Ljava/lang/Object;
            invokestatic java.lang.invoke.MethodHandles.copyTypes:([Ljava/lang/Object;)Ljava/util/List;
            invokestatic java.lang.invoke.MethodHandles.dropArguments0:(Ljava/lang/invoke/MethodHandle;ILjava/util/List;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 2 // java.util.List valueTypes
        end local 1 // int pos
        end local 0 // java.lang.invoke.MethodHandle target
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0      target  Ljava/lang/invoke/MethodHandle;
            0    1     1         pos  I
            0    1     2  valueTypes  Ljava/util/List<Ljava/lang/Class<*>;>;
    Signature: (Ljava/lang/invoke/MethodHandle;ILjava/util/List<Ljava/lang/Class<*>;>;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
            Name  Flags
      target      
      pos         
      valueTypes  

  private static java.util.List<java.lang.Class<?>> copyTypes([]);
    descriptor: ([Ljava/lang/Object;)Ljava/util/List;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.Object[] array
         0: .line 4995
            aload 0 /* array */
            aload 0 /* array */
            arraylength
            ldc [Ljava/lang/Class;
            invokestatic java.util.Arrays.copyOf:([Ljava/lang/Object;ILjava/lang/Class;)[Ljava/lang/Object;
            checkcast java.lang.Class[]
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            areturn
        end local 0 // java.lang.Object[] array
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  array  [Ljava/lang/Object;
    Signature: ([Ljava/lang/Object;)Ljava/util/List<Ljava/lang/Class<*>;>;
    MethodParameters:
       Name  Flags
      array  

  private static java.lang.invoke.MethodHandle dropArguments0(java.lang.invoke.MethodHandle, int, java.util.List<java.lang.Class<?>>);
    descriptor: (Ljava/lang/invoke/MethodHandle;ILjava/util/List;)Ljava/lang/invoke/MethodHandle;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=11, args_size=3
        start local 0 // java.lang.invoke.MethodHandle target
        start local 1 // int pos
        start local 2 // java.util.List valueTypes
         0: .line 4999
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 3 /* oldType */
        start local 3 // java.lang.invoke.MethodType oldType
         1: .line 5000
            aload 3 /* oldType */
            iload 1 /* pos */
            aload 2 /* valueTypes */
            invokestatic java.lang.invoke.MethodHandles.dropArgumentChecks:(Ljava/lang/invoke/MethodType;ILjava/util/List;)I
            istore 4 /* dropped */
        start local 4 // int dropped
         2: .line 5001
            aload 3 /* oldType */
            iload 1 /* pos */
            aload 2 /* valueTypes */
            invokevirtual java.lang.invoke.MethodType.insertParameterTypes:(ILjava/util/List;)Ljava/lang/invoke/MethodType;
            astore 5 /* newType */
        start local 5 // java.lang.invoke.MethodType newType
         3: .line 5002
            iload 4 /* dropped */
            ifne 4
            aload 0 /* target */
            areturn
         4: .line 5003
      StackMap locals: java.lang.invoke.MethodType int java.lang.invoke.MethodType
      StackMap stack:
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.rebind:()Ljava/lang/invoke/BoundMethodHandle;
            astore 6 /* result */
        start local 6 // java.lang.invoke.BoundMethodHandle result
         5: .line 5004
            aload 6 /* result */
            getfield java.lang.invoke.BoundMethodHandle.form:Ljava/lang/invoke/LambdaForm;
            astore 7 /* lform */
        start local 7 // java.lang.invoke.LambdaForm lform
         6: .line 5005
            iconst_1
            iload 1 /* pos */
            iadd
            istore 8 /* insertFormArg */
        start local 8 // int insertFormArg
         7: .line 5006
            aload 2 /* valueTypes */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 10
            goto 10
      StackMap locals: java.lang.invoke.MethodHandle int java.util.List java.lang.invoke.MethodType int java.lang.invoke.MethodType java.lang.invoke.BoundMethodHandle java.lang.invoke.LambdaForm int top java.util.Iterator
      StackMap stack:
         8: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Class
            astore 9 /* ptype */
        start local 9 // java.lang.Class ptype
         9: .line 5007
            aload 7 /* lform */
            invokevirtual java.lang.invoke.LambdaForm.editor:()Ljava/lang/invoke/LambdaFormEditor;
            iload 8 /* insertFormArg */
            iinc 8 /* insertFormArg */ 1
            aload 9 /* ptype */
            invokestatic java.lang.invoke.LambdaForm$BasicType.basicType:(Ljava/lang/Class;)Ljava/lang/invoke/LambdaForm$BasicType;
            invokevirtual java.lang.invoke.LambdaFormEditor.addArgumentForm:(ILjava/lang/invoke/LambdaForm$BasicType;)Ljava/lang/invoke/LambdaForm;
            astore 7 /* lform */
        end local 9 // java.lang.Class ptype
        10: .line 5006
      StackMap locals:
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        11: .line 5009
            aload 6 /* result */
            aload 5 /* newType */
            aload 7 /* lform */
            invokevirtual java.lang.invoke.BoundMethodHandle.copyWith:(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/LambdaForm;)Ljava/lang/invoke/BoundMethodHandle;
            astore 6 /* result */
        12: .line 5010
            aload 6 /* result */
            areturn
        end local 8 // int insertFormArg
        end local 7 // java.lang.invoke.LambdaForm lform
        end local 6 // java.lang.invoke.BoundMethodHandle result
        end local 5 // java.lang.invoke.MethodType newType
        end local 4 // int dropped
        end local 3 // java.lang.invoke.MethodType oldType
        end local 2 // java.util.List valueTypes
        end local 1 // int pos
        end local 0 // java.lang.invoke.MethodHandle target
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   13     0         target  Ljava/lang/invoke/MethodHandle;
            0   13     1            pos  I
            0   13     2     valueTypes  Ljava/util/List<Ljava/lang/Class<*>;>;
            1   13     3        oldType  Ljava/lang/invoke/MethodType;
            2   13     4        dropped  I
            3   13     5        newType  Ljava/lang/invoke/MethodType;
            5   13     6         result  Ljava/lang/invoke/BoundMethodHandle;
            6   13     7          lform  Ljava/lang/invoke/LambdaForm;
            7   13     8  insertFormArg  I
            9   10     9          ptype  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/invoke/MethodHandle;ILjava/util/List<Ljava/lang/Class<*>;>;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
            Name  Flags
      target      
      pos         
      valueTypes  

  private static int dropArgumentChecks(java.lang.invoke.MethodType, int, java.util.List<java.lang.Class<?>>);
    descriptor: (Ljava/lang/invoke/MethodType;ILjava/util/List;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // java.lang.invoke.MethodType oldType
        start local 1 // int pos
        start local 2 // java.util.List valueTypes
         0: .line 5014
            aload 2 /* valueTypes */
            invokeinterface java.util.List.size:()I
            istore 3 /* dropped */
        start local 3 // int dropped
         1: .line 5015
            iload 3 /* dropped */
            invokestatic java.lang.invoke.MethodType.checkSlotCount:(I)V
         2: .line 5016
            aload 0 /* oldType */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            istore 4 /* outargs */
        start local 4 // int outargs
         3: .line 5017
            iload 4 /* outargs */
            iload 3 /* dropped */
            iadd
            istore 5 /* inargs */
        start local 5 // int inargs
         4: .line 5018
            iload 1 /* pos */
            iflt 5
            iload 1 /* pos */
            iload 4 /* outargs */
            if_icmple 8
         5: .line 5019
      StackMap locals: int int int
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "no argument type to remove"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         6: .line 5020
            iconst_5
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* oldType */
            aastore
            dup
            iconst_1
            iload 1 /* pos */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            aload 2 /* valueTypes */
            aastore
            dup
            iconst_3
            iload 5 /* inargs */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_4
            iload 4 /* outargs */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         7: .line 5019
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
         8: .line 5022
      StackMap locals:
      StackMap stack:
            iload 3 /* dropped */
            ireturn
        end local 5 // int inargs
        end local 4 // int outargs
        end local 3 // int dropped
        end local 2 // java.util.List valueTypes
        end local 1 // int pos
        end local 0 // java.lang.invoke.MethodType oldType
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    9     0     oldType  Ljava/lang/invoke/MethodType;
            0    9     1         pos  I
            0    9     2  valueTypes  Ljava/util/List<Ljava/lang/Class<*>;>;
            1    9     3     dropped  I
            3    9     4     outargs  I
            4    9     5      inargs  I
    Signature: (Ljava/lang/invoke/MethodType;ILjava/util/List<Ljava/lang/Class<*>;>;)I
    MethodParameters:
            Name  Flags
      oldType     
      pos         
      valueTypes  

  public static java.lang.invoke.MethodHandle dropArguments(java.lang.invoke.MethodHandle, int, java.lang.Class<?>[]);
    descriptor: (Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.lang.invoke.MethodHandle target
        start local 1 // int pos
        start local 2 // java.lang.Class[] valueTypes
         0: .line 5072
            aload 0 /* target */
            iload 1 /* pos */
            aload 2 /* valueTypes */
            invokestatic java.lang.invoke.MethodHandles.copyTypes:([Ljava/lang/Object;)Ljava/util/List;
            invokestatic java.lang.invoke.MethodHandles.dropArguments0:(Ljava/lang/invoke/MethodHandle;ILjava/util/List;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 2 // java.lang.Class[] valueTypes
        end local 1 // int pos
        end local 0 // java.lang.invoke.MethodHandle target
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0      target  Ljava/lang/invoke/MethodHandle;
            0    1     1         pos  I
            0    1     2  valueTypes  [Ljava/lang/Class;
    Signature: (Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Class<*>;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
            Name  Flags
      target      
      pos         
      valueTypes  

  private static java.lang.invoke.MethodHandle dropArgumentsToMatch(java.lang.invoke.MethodHandle, int, java.util.List<java.lang.Class<?>>, int, boolean);
    descriptor: (Ljava/lang/invoke/MethodHandle;ILjava/util/List;IZ)Ljava/lang/invoke/MethodHandle;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=10, args_size=5
        start local 0 // java.lang.invoke.MethodHandle target
        start local 1 // int skip
        start local 2 // java.util.List newTypes
        start local 3 // int pos
        start local 4 // boolean nullOnFailure
         0: .line 5078
            aload 2 /* newTypes */
            invokeinterface java.util.List.toArray:()[Ljava/lang/Object;
            invokestatic java.lang.invoke.MethodHandles.copyTypes:([Ljava/lang/Object;)Ljava/util/List;
            astore 2 /* newTypes */
         1: .line 5079
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.parameterList:()Ljava/util/List;
            astore 5 /* oldTypes */
        start local 5 // java.util.List oldTypes
         2: .line 5080
            aload 5 /* oldTypes */
            invokeinterface java.util.List.size:()I
            istore 6 /* match */
        start local 6 // int match
         3: .line 5081
            iload 1 /* skip */
            ifeq 8
         4: .line 5082
            iload 1 /* skip */
            iflt 5
            iload 1 /* skip */
            iload 6 /* match */
            if_icmple 6
         5: .line 5083
      StackMap locals: java.util.List int
      StackMap stack:
            ldc "illegal skip"
            iload 1 /* skip */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 0 /* target */
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
         6: .line 5085
      StackMap locals:
      StackMap stack:
            aload 5 /* oldTypes */
            iload 1 /* skip */
            iload 6 /* match */
            invokeinterface java.util.List.subList:(II)Ljava/util/List;
            astore 5 /* oldTypes */
         7: .line 5086
            iload 6 /* match */
            iload 1 /* skip */
            isub
            istore 6 /* match */
         8: .line 5088
      StackMap locals:
      StackMap stack:
            aload 2 /* newTypes */
            astore 7 /* addTypes */
        start local 7 // java.util.List addTypes
         9: .line 5089
            aload 7 /* addTypes */
            invokeinterface java.util.List.size:()I
            istore 8 /* add */
        start local 8 // int add
        10: .line 5090
            iload 3 /* pos */
            ifeq 16
        11: .line 5091
            iload 3 /* pos */
            iflt 12
            iload 3 /* pos */
            iload 8 /* add */
            if_icmple 13
        12: .line 5092
      StackMap locals: java.util.List int
      StackMap stack:
            ldc "illegal pos"
            iload 3 /* pos */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 2 /* newTypes */
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
        13: .line 5094
      StackMap locals:
      StackMap stack:
            aload 7 /* addTypes */
            iload 3 /* pos */
            iload 8 /* add */
            invokeinterface java.util.List.subList:(II)Ljava/util/List;
            astore 7 /* addTypes */
        14: .line 5095
            iload 8 /* add */
            iload 3 /* pos */
            isub
            istore 8 /* add */
        15: .line 5096
            getstatic java.lang.invoke.MethodHandles.$assertionsDisabled:Z
            ifne 16
            aload 7 /* addTypes */
            invokeinterface java.util.List.size:()I
            iload 8 /* add */
            if_icmpeq 16
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        16: .line 5099
      StackMap locals:
      StackMap stack:
            iload 6 /* match */
            iload 8 /* add */
            if_icmpgt 17
            aload 5 /* oldTypes */
            aload 7 /* addTypes */
            iconst_0
            iload 6 /* match */
            invokeinterface java.util.List.subList:(II)Ljava/util/List;
            invokeinterface java.util.List.equals:(Ljava/lang/Object;)Z
            ifne 20
        17: .line 5100
      StackMap locals:
      StackMap stack:
            iload 4 /* nullOnFailure */
            ifeq 19
        18: .line 5101
            aconst_null
            areturn
        19: .line 5103
      StackMap locals:
      StackMap stack:
            ldc "argument lists do not match"
            aload 5 /* oldTypes */
            aload 2 /* newTypes */
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
        20: .line 5105
      StackMap locals:
      StackMap stack:
            aload 7 /* addTypes */
            iload 6 /* match */
            iload 8 /* add */
            invokeinterface java.util.List.subList:(II)Ljava/util/List;
            astore 7 /* addTypes */
        21: .line 5106
            iload 8 /* add */
            iload 6 /* match */
            isub
            istore 8 /* add */
        22: .line 5107
            getstatic java.lang.invoke.MethodHandles.$assertionsDisabled:Z
            ifne 23
            aload 7 /* addTypes */
            invokeinterface java.util.List.size:()I
            iload 8 /* add */
            if_icmpeq 23
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        23: .line 5110
      StackMap locals:
      StackMap stack:
            aload 0 /* target */
            astore 9 /* adapter */
        start local 9 // java.lang.invoke.MethodHandle adapter
        24: .line 5111
            iload 8 /* add */
            ifle 26
        25: .line 5112
            aload 9 /* adapter */
            iload 1 /* skip */
            iload 6 /* match */
            iadd
            aload 7 /* addTypes */
            invokestatic java.lang.invoke.MethodHandles.dropArguments0:(Ljava/lang/invoke/MethodHandle;ILjava/util/List;)Ljava/lang/invoke/MethodHandle;
            astore 9 /* adapter */
        26: .line 5115
      StackMap locals: java.lang.invoke.MethodHandle
      StackMap stack:
            iload 3 /* pos */
            ifle 28
        27: .line 5116
            aload 9 /* adapter */
            iload 1 /* skip */
            aload 2 /* newTypes */
            iconst_0
            iload 3 /* pos */
            invokeinterface java.util.List.subList:(II)Ljava/util/List;
            invokestatic java.lang.invoke.MethodHandles.dropArguments0:(Ljava/lang/invoke/MethodHandle;ILjava/util/List;)Ljava/lang/invoke/MethodHandle;
            astore 9 /* adapter */
        28: .line 5119
      StackMap locals:
      StackMap stack:
            aload 9 /* adapter */
            areturn
        end local 9 // java.lang.invoke.MethodHandle adapter
        end local 8 // int add
        end local 7 // java.util.List addTypes
        end local 6 // int match
        end local 5 // java.util.List oldTypes
        end local 4 // boolean nullOnFailure
        end local 3 // int pos
        end local 2 // java.util.List newTypes
        end local 1 // int skip
        end local 0 // java.lang.invoke.MethodHandle target
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   29     0         target  Ljava/lang/invoke/MethodHandle;
            0   29     1           skip  I
            0   29     2       newTypes  Ljava/util/List<Ljava/lang/Class<*>;>;
            0   29     3            pos  I
            0   29     4  nullOnFailure  Z
            2   29     5       oldTypes  Ljava/util/List<Ljava/lang/Class<*>;>;
            3   29     6          match  I
            9   29     7       addTypes  Ljava/util/List<Ljava/lang/Class<*>;>;
           10   29     8            add  I
           24   29     9        adapter  Ljava/lang/invoke/MethodHandle;
    Signature: (Ljava/lang/invoke/MethodHandle;ILjava/util/List<Ljava/lang/Class<*>;>;IZ)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
               Name  Flags
      target         
      skip           
      newTypes       
      pos            
      nullOnFailure  

  public static java.lang.invoke.MethodHandle dropArgumentsToMatch(java.lang.invoke.MethodHandle, int, java.util.List<java.lang.Class<?>>, int);
    descriptor: (Ljava/lang/invoke/MethodHandle;ILjava/util/List;I)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // java.lang.invoke.MethodHandle target
        start local 1 // int skip
        start local 2 // java.util.List newTypes
        start local 3 // int pos
         0: .line 5178
            aload 0 /* target */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 5179
            aload 2 /* newTypes */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 5180
            aload 0 /* target */
            iload 1 /* skip */
            aload 2 /* newTypes */
            iload 3 /* pos */
            iconst_0
            invokestatic java.lang.invoke.MethodHandles.dropArgumentsToMatch:(Ljava/lang/invoke/MethodHandle;ILjava/util/List;IZ)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 3 // int pos
        end local 2 // java.util.List newTypes
        end local 1 // int skip
        end local 0 // java.lang.invoke.MethodHandle target
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0    target  Ljava/lang/invoke/MethodHandle;
            0    3     1      skip  I
            0    3     2  newTypes  Ljava/util/List<Ljava/lang/Class<*>;>;
            0    3     3       pos  I
    Signature: (Ljava/lang/invoke/MethodHandle;ILjava/util/List<Ljava/lang/Class<*>;>;I)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
          Name  Flags
      target    
      skip      
      newTypes  
      pos       

  public static java.lang.invoke.MethodHandle filterArguments(java.lang.invoke.MethodHandle, int, java.lang.invoke.MethodHandle[]);
    descriptor: (Ljava/lang/invoke/MethodHandle;I[Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=4, locals=9, args_size=3
        start local 0 // java.lang.invoke.MethodHandle target
        start local 1 // int pos
        start local 2 // java.lang.invoke.MethodHandle[] filters
         0: .line 5264
            aload 0 /* target */
            iload 1 /* pos */
            aload 2 /* filters */
            invokestatic java.lang.invoke.MethodHandles.filterArgumentsCheckArity:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/invoke/MethodHandle;)V
         1: .line 5265
            aload 0 /* target */
            astore 3 /* adapter */
        start local 3 // java.lang.invoke.MethodHandle adapter
         2: .line 5268
            iconst_0
            istore 4 /* index */
        start local 4 // int index
         3: .line 5269
            aload 2 /* filters */
            arraylength
            newarray 10
            astore 5 /* positions */
        start local 5 // int[] positions
         4: .line 5270
            aconst_null
            astore 6 /* filter */
        start local 6 // java.lang.invoke.MethodHandle filter
         5: .line 5274
            aload 2 /* filters */
            arraylength
            iconst_1
            isub
            istore 7 /* i */
        start local 7 // int i
         6: goto 20
         7: .line 5275
      StackMap locals: java.lang.invoke.MethodHandle int java.lang.invoke.MethodHandle[] java.lang.invoke.MethodHandle int int[] java.lang.invoke.MethodHandle int
      StackMap stack:
            aload 2 /* filters */
            iload 7 /* i */
            aaload
            astore 8 /* newFilter */
        start local 8 // java.lang.invoke.MethodHandle newFilter
         8: .line 5276
            aload 8 /* newFilter */
            ifnonnull 9
            goto 19
         9: .line 5279
      StackMap locals: java.lang.invoke.MethodHandle
      StackMap stack:
            aload 6 /* filter */
            aload 8 /* newFilter */
            if_acmpeq 17
        10: .line 5280
            aload 6 /* filter */
            ifnull 15
        11: .line 5281
            iload 4 /* index */
            iconst_1
            if_icmple 14
        12: .line 5282
            aload 3 /* adapter */
            aload 6 /* filter */
            aload 5 /* positions */
            iload 4 /* index */
            invokestatic java.util.Arrays.copyOf:([II)[I
            invokestatic java.lang.invoke.MethodHandles.filterRepeatedArgument:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;[I)Ljava/lang/invoke/MethodHandle;
            astore 3 /* adapter */
        13: .line 5283
            goto 15
        14: .line 5284
      StackMap locals:
      StackMap stack:
            aload 3 /* adapter */
            aload 5 /* positions */
            iconst_0
            iaload
            iconst_1
            isub
            aload 6 /* filter */
            invokestatic java.lang.invoke.MethodHandles.filterArgument:(Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
            astore 3 /* adapter */
        15: .line 5287
      StackMap locals:
      StackMap stack:
            aload 8 /* newFilter */
            astore 6 /* filter */
        16: .line 5288
            iconst_0
            istore 4 /* index */
        17: .line 5291
      StackMap locals:
      StackMap stack:
            aload 0 /* target */
            iload 1 /* pos */
            iload 7 /* i */
            iadd
            aload 8 /* newFilter */
            invokestatic java.lang.invoke.MethodHandles.filterArgumentChecks:(Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;)V
        18: .line 5292
            aload 5 /* positions */
            iload 4 /* index */
            iinc 4 /* index */ 1
            iload 1 /* pos */
            iload 7 /* i */
            iadd
            iconst_1
            iadd
            iastore
        end local 8 // java.lang.invoke.MethodHandle newFilter
        19: .line 5274
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ -1
      StackMap locals:
      StackMap stack:
        20: iload 7 /* i */
            ifge 7
        end local 7 // int i
        21: .line 5294
            iload 4 /* index */
            iconst_1
            if_icmple 24
        22: .line 5295
            aload 3 /* adapter */
            aload 6 /* filter */
            aload 5 /* positions */
            iload 4 /* index */
            invokestatic java.util.Arrays.copyOf:([II)[I
            invokestatic java.lang.invoke.MethodHandles.filterRepeatedArgument:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;[I)Ljava/lang/invoke/MethodHandle;
            astore 3 /* adapter */
        23: .line 5296
            goto 26
      StackMap locals:
      StackMap stack:
        24: iload 4 /* index */
            iconst_1
            if_icmpne 26
        25: .line 5297
            aload 3 /* adapter */
            aload 5 /* positions */
            iconst_0
            iaload
            iconst_1
            isub
            aload 6 /* filter */
            invokestatic java.lang.invoke.MethodHandles.filterArgument:(Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
            astore 3 /* adapter */
        26: .line 5299
      StackMap locals:
      StackMap stack:
            aload 3 /* adapter */
            areturn
        end local 6 // java.lang.invoke.MethodHandle filter
        end local 5 // int[] positions
        end local 4 // int index
        end local 3 // java.lang.invoke.MethodHandle adapter
        end local 2 // java.lang.invoke.MethodHandle[] filters
        end local 1 // int pos
        end local 0 // java.lang.invoke.MethodHandle target
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   27     0     target  Ljava/lang/invoke/MethodHandle;
            0   27     1        pos  I
            0   27     2    filters  [Ljava/lang/invoke/MethodHandle;
            2   27     3    adapter  Ljava/lang/invoke/MethodHandle;
            3   27     4      index  I
            4   27     5  positions  [I
            5   27     6     filter  Ljava/lang/invoke/MethodHandle;
            6   21     7          i  I
            8   19     8  newFilter  Ljava/lang/invoke/MethodHandle;
    MethodParameters:
         Name  Flags
      target   
      pos      
      filters  

  private static java.lang.invoke.MethodHandle filterRepeatedArgument(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle, int[]);
    descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;[I)Ljava/lang/invoke/MethodHandle;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=12, args_size=3
        start local 0 // java.lang.invoke.MethodHandle adapter
        start local 1 // java.lang.invoke.MethodHandle filter
        start local 2 // int[] positions
         0: .line 5303
            aload 0 /* adapter */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 3 /* targetType */
        start local 3 // java.lang.invoke.MethodType targetType
         1: .line 5304
            aload 1 /* filter */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 4 /* filterType */
        start local 4 // java.lang.invoke.MethodType filterType
         2: .line 5305
            aload 0 /* adapter */
            invokevirtual java.lang.invoke.MethodHandle.rebind:()Ljava/lang/invoke/BoundMethodHandle;
            astore 5 /* result */
        start local 5 // java.lang.invoke.BoundMethodHandle result
         3: .line 5306
            aload 4 /* filterType */
            iconst_0
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            astore 6 /* newParamType */
        start local 6 // java.lang.Class newParamType
         4: .line 5308
            aload 3 /* targetType */
            invokevirtual java.lang.invoke.MethodType.ptypes:()[Ljava/lang/Class;
            invokevirtual java.lang.Class[].clone:()Ljava/lang/Object;
            checkcast java.lang.Class[]
            astore 7 /* ptypes */
        start local 7 // java.lang.Class[] ptypes
         5: .line 5309
            aload 2 /* positions */
            dup
            astore 11
            arraylength
            istore 10
            iconst_0
            istore 9
            goto 9
      StackMap locals: java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle int[] java.lang.invoke.MethodType java.lang.invoke.MethodType java.lang.invoke.BoundMethodHandle java.lang.Class java.lang.Class[] top int int int[]
      StackMap stack:
         6: aload 11
            iload 9
            iaload
            istore 8 /* pos */
        start local 8 // int pos
         7: .line 5310
            aload 7 /* ptypes */
            iload 8 /* pos */
            iconst_1
            isub
            aload 6 /* newParamType */
            aastore
        end local 8 // int pos
         8: .line 5309
            iinc 9 1
      StackMap locals:
      StackMap stack:
         9: iload 9
            iload 10
            if_icmplt 6
        10: .line 5312
            aload 3 /* targetType */
            invokevirtual java.lang.invoke.MethodType.rtype:()Ljava/lang/Class;
            aload 7 /* ptypes */
            iconst_1
            invokestatic java.lang.invoke.MethodType.makeImpl:(Ljava/lang/Class;[Ljava/lang/Class;Z)Ljava/lang/invoke/MethodType;
            astore 8 /* newType */
        start local 8 // java.lang.invoke.MethodType newType
        11: .line 5314
            aload 5 /* result */
            invokevirtual java.lang.invoke.BoundMethodHandle.editor:()Ljava/lang/invoke/LambdaFormEditor;
            aload 6 /* newParamType */
            invokestatic java.lang.invoke.LambdaForm$BasicType.basicType:(Ljava/lang/Class;)Ljava/lang/invoke/LambdaForm$BasicType;
            aload 2 /* positions */
            invokevirtual java.lang.invoke.LambdaFormEditor.filterRepeatedArgumentForm:(Ljava/lang/invoke/LambdaForm$BasicType;[I)Ljava/lang/invoke/LambdaForm;
            astore 9 /* lform */
        start local 9 // java.lang.invoke.LambdaForm lform
        12: .line 5315
            aload 5 /* result */
            aload 8 /* newType */
            aload 9 /* lform */
            aload 1 /* filter */
            invokevirtual java.lang.invoke.BoundMethodHandle.copyWithExtendL:(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/LambdaForm;Ljava/lang/Object;)Ljava/lang/invoke/BoundMethodHandle;
            areturn
        end local 9 // java.lang.invoke.LambdaForm lform
        end local 8 // java.lang.invoke.MethodType newType
        end local 7 // java.lang.Class[] ptypes
        end local 6 // java.lang.Class newParamType
        end local 5 // java.lang.invoke.BoundMethodHandle result
        end local 4 // java.lang.invoke.MethodType filterType
        end local 3 // java.lang.invoke.MethodType targetType
        end local 2 // int[] positions
        end local 1 // java.lang.invoke.MethodHandle filter
        end local 0 // java.lang.invoke.MethodHandle adapter
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   13     0       adapter  Ljava/lang/invoke/MethodHandle;
            0   13     1        filter  Ljava/lang/invoke/MethodHandle;
            0   13     2     positions  [I
            1   13     3    targetType  Ljava/lang/invoke/MethodType;
            2   13     4    filterType  Ljava/lang/invoke/MethodType;
            3   13     5        result  Ljava/lang/invoke/BoundMethodHandle;
            4   13     6  newParamType  Ljava/lang/Class<*>;
            5   13     7        ptypes  [Ljava/lang/Class;
            7    8     8           pos  I
           11   13     8       newType  Ljava/lang/invoke/MethodType;
           12   13     9         lform  Ljava/lang/invoke/LambdaForm;
    MethodParameters:
           Name  Flags
      adapter    
      filter     
      positions  

  static java.lang.invoke.MethodHandle filterArgument(java.lang.invoke.MethodHandle, int, java.lang.invoke.MethodHandle);
    descriptor: (Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=9, args_size=3
        start local 0 // java.lang.invoke.MethodHandle target
        start local 1 // int pos
        start local 2 // java.lang.invoke.MethodHandle filter
         0: .line 5320
            aload 0 /* target */
            iload 1 /* pos */
            aload 2 /* filter */
            invokestatic java.lang.invoke.MethodHandles.filterArgumentChecks:(Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;)V
         1: .line 5321
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 3 /* targetType */
        start local 3 // java.lang.invoke.MethodType targetType
         2: .line 5322
            aload 2 /* filter */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 4 /* filterType */
        start local 4 // java.lang.invoke.MethodType filterType
         3: .line 5323
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.rebind:()Ljava/lang/invoke/BoundMethodHandle;
            astore 5 /* result */
        start local 5 // java.lang.invoke.BoundMethodHandle result
         4: .line 5324
            aload 4 /* filterType */
            iconst_0
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            astore 6 /* newParamType */
        start local 6 // java.lang.Class newParamType
         5: .line 5325
            aload 5 /* result */
            invokevirtual java.lang.invoke.BoundMethodHandle.editor:()Ljava/lang/invoke/LambdaFormEditor;
            iconst_1
            iload 1 /* pos */
            iadd
            aload 6 /* newParamType */
            invokestatic java.lang.invoke.LambdaForm$BasicType.basicType:(Ljava/lang/Class;)Ljava/lang/invoke/LambdaForm$BasicType;
            invokevirtual java.lang.invoke.LambdaFormEditor.filterArgumentForm:(ILjava/lang/invoke/LambdaForm$BasicType;)Ljava/lang/invoke/LambdaForm;
            astore 7 /* lform */
        start local 7 // java.lang.invoke.LambdaForm lform
         6: .line 5326
            aload 3 /* targetType */
            iload 1 /* pos */
            aload 6 /* newParamType */
            invokevirtual java.lang.invoke.MethodType.changeParameterType:(ILjava/lang/Class;)Ljava/lang/invoke/MethodType;
            astore 8 /* newType */
        start local 8 // java.lang.invoke.MethodType newType
         7: .line 5327
            aload 5 /* result */
            aload 8 /* newType */
            aload 7 /* lform */
            aload 2 /* filter */
            invokevirtual java.lang.invoke.BoundMethodHandle.copyWithExtendL:(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/LambdaForm;Ljava/lang/Object;)Ljava/lang/invoke/BoundMethodHandle;
            astore 5 /* result */
         8: .line 5328
            aload 5 /* result */
            areturn
        end local 8 // java.lang.invoke.MethodType newType
        end local 7 // java.lang.invoke.LambdaForm lform
        end local 6 // java.lang.Class newParamType
        end local 5 // java.lang.invoke.BoundMethodHandle result
        end local 4 // java.lang.invoke.MethodType filterType
        end local 3 // java.lang.invoke.MethodType targetType
        end local 2 // java.lang.invoke.MethodHandle filter
        end local 1 // int pos
        end local 0 // java.lang.invoke.MethodHandle target
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    9     0        target  Ljava/lang/invoke/MethodHandle;
            0    9     1           pos  I
            0    9     2        filter  Ljava/lang/invoke/MethodHandle;
            2    9     3    targetType  Ljava/lang/invoke/MethodType;
            3    9     4    filterType  Ljava/lang/invoke/MethodType;
            4    9     5        result  Ljava/lang/invoke/BoundMethodHandle;
            5    9     6  newParamType  Ljava/lang/Class<*>;
            6    9     7         lform  Ljava/lang/invoke/LambdaForm;
            7    9     8       newType  Ljava/lang/invoke/MethodType;
    MethodParameters:
        Name  Flags
      target  
      pos     
      filter  

  private static void filterArgumentsCheckArity(java.lang.invoke.MethodHandle, int, java.lang.invoke.MethodHandle[]);
    descriptor: (Ljava/lang/invoke/MethodHandle;I[Ljava/lang/invoke/MethodHandle;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // java.lang.invoke.MethodHandle target
        start local 1 // int pos
        start local 2 // java.lang.invoke.MethodHandle[] filters
         0: .line 5332
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 3 /* targetType */
        start local 3 // java.lang.invoke.MethodType targetType
         1: .line 5333
            aload 3 /* targetType */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            istore 4 /* maxPos */
        start local 4 // int maxPos
         2: .line 5334
            iload 1 /* pos */
            aload 2 /* filters */
            arraylength
            iadd
            iload 4 /* maxPos */
            if_icmple 4
         3: .line 5335
            ldc "too many filters"
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
         4: .line 5336
      StackMap locals: java.lang.invoke.MethodType int
      StackMap stack:
            return
        end local 4 // int maxPos
        end local 3 // java.lang.invoke.MethodType targetType
        end local 2 // java.lang.invoke.MethodHandle[] filters
        end local 1 // int pos
        end local 0 // java.lang.invoke.MethodHandle target
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0      target  Ljava/lang/invoke/MethodHandle;
            0    5     1         pos  I
            0    5     2     filters  [Ljava/lang/invoke/MethodHandle;
            1    5     3  targetType  Ljava/lang/invoke/MethodType;
            2    5     4      maxPos  I
    MethodParameters:
         Name  Flags
      target   
      pos      
      filters  

  private static void filterArgumentChecks(java.lang.invoke.MethodHandle, int, java.lang.invoke.MethodHandle);
    descriptor: (Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // java.lang.invoke.MethodHandle target
        start local 1 // int pos
        start local 2 // java.lang.invoke.MethodHandle filter
         0: .line 5339
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 3 /* targetType */
        start local 3 // java.lang.invoke.MethodType targetType
         1: .line 5340
            aload 2 /* filter */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 4 /* filterType */
        start local 4 // java.lang.invoke.MethodType filterType
         2: .line 5341
            aload 4 /* filterType */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            iconst_1
            if_icmpne 4
         3: .line 5342
            aload 4 /* filterType */
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            aload 3 /* targetType */
            iload 1 /* pos */
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            if_acmpeq 5
         4: .line 5343
      StackMap locals: java.lang.invoke.MethodType java.lang.invoke.MethodType
      StackMap stack:
            ldc "target and filter types do not match"
            aload 3 /* targetType */
            aload 4 /* filterType */
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
         5: .line 5344
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.lang.invoke.MethodType filterType
        end local 3 // java.lang.invoke.MethodType targetType
        end local 2 // java.lang.invoke.MethodHandle filter
        end local 1 // int pos
        end local 0 // java.lang.invoke.MethodHandle target
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0      target  Ljava/lang/invoke/MethodHandle;
            0    6     1         pos  I
            0    6     2      filter  Ljava/lang/invoke/MethodHandle;
            1    6     3  targetType  Ljava/lang/invoke/MethodType;
            2    6     4  filterType  Ljava/lang/invoke/MethodType;
    Exceptions:
      throws java.lang.RuntimeException
    MethodParameters:
        Name  Flags
      target  
      pos     
      filter  

  public static java.lang.invoke.MethodHandle collectArguments(java.lang.invoke.MethodHandle, int, java.lang.invoke.MethodHandle);
    descriptor: (Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // java.lang.invoke.MethodHandle target
        start local 1 // int pos
        start local 2 // java.lang.invoke.MethodHandle filter
         0: .line 5466
            aload 0 /* target */
            iload 1 /* pos */
            aload 2 /* filter */
            invokestatic java.lang.invoke.MethodHandles.collectArgumentsChecks:(Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodType;
            astore 3 /* newType */
        start local 3 // java.lang.invoke.MethodType newType
         1: .line 5467
            aload 2 /* filter */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 4 /* collectorType */
        start local 4 // java.lang.invoke.MethodType collectorType
         2: .line 5468
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.rebind:()Ljava/lang/invoke/BoundMethodHandle;
            astore 5 /* result */
        start local 5 // java.lang.invoke.BoundMethodHandle result
         3: .line 5470
            aload 4 /* collectorType */
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isArray:()Z
            ifeq 7
            aload 2 /* filter */
            invokevirtual java.lang.invoke.MethodHandle.intrinsicName:()Ljava/lang/invoke/MethodHandleImpl$Intrinsic;
            getstatic java.lang.invoke.MethodHandleImpl$Intrinsic.NEW_ARRAY:Ljava/lang/invoke/MethodHandleImpl$Intrinsic;
            if_acmpne 7
         4: .line 5471
            aload 5 /* result */
            invokevirtual java.lang.invoke.BoundMethodHandle.editor:()Ljava/lang/invoke/LambdaFormEditor;
            iconst_1
            iload 1 /* pos */
            iadd
            aload 2 /* filter */
            invokevirtual java.lang.invoke.LambdaFormEditor.collectArgumentArrayForm:(ILjava/lang/invoke/MethodHandle;)Ljava/lang/invoke/LambdaForm;
            astore 6 /* lform */
        start local 6 // java.lang.invoke.LambdaForm lform
         5: .line 5472
            aload 6 /* lform */
            ifnull 7
         6: .line 5473
            aload 5 /* result */
            aload 3 /* newType */
            aload 6 /* lform */
            invokevirtual java.lang.invoke.BoundMethodHandle.copyWith:(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/LambdaForm;)Ljava/lang/invoke/BoundMethodHandle;
            areturn
        end local 6 // java.lang.invoke.LambdaForm lform
         7: .line 5476
      StackMap locals: java.lang.invoke.MethodType java.lang.invoke.MethodType java.lang.invoke.BoundMethodHandle
      StackMap stack:
            aload 5 /* result */
            invokevirtual java.lang.invoke.BoundMethodHandle.editor:()Ljava/lang/invoke/LambdaFormEditor;
            iconst_1
            iload 1 /* pos */
            iadd
            aload 4 /* collectorType */
            invokevirtual java.lang.invoke.MethodType.basicType:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.LambdaFormEditor.collectArgumentsForm:(ILjava/lang/invoke/MethodType;)Ljava/lang/invoke/LambdaForm;
            astore 6 /* lform */
        start local 6 // java.lang.invoke.LambdaForm lform
         8: .line 5477
            aload 5 /* result */
            aload 3 /* newType */
            aload 6 /* lform */
            aload 2 /* filter */
            invokevirtual java.lang.invoke.BoundMethodHandle.copyWithExtendL:(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/LambdaForm;Ljava/lang/Object;)Ljava/lang/invoke/BoundMethodHandle;
            areturn
        end local 6 // java.lang.invoke.LambdaForm lform
        end local 5 // java.lang.invoke.BoundMethodHandle result
        end local 4 // java.lang.invoke.MethodType collectorType
        end local 3 // java.lang.invoke.MethodType newType
        end local 2 // java.lang.invoke.MethodHandle filter
        end local 1 // int pos
        end local 0 // java.lang.invoke.MethodHandle target
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    9     0         target  Ljava/lang/invoke/MethodHandle;
            0    9     1            pos  I
            0    9     2         filter  Ljava/lang/invoke/MethodHandle;
            1    9     3        newType  Ljava/lang/invoke/MethodType;
            2    9     4  collectorType  Ljava/lang/invoke/MethodType;
            3    9     5         result  Ljava/lang/invoke/BoundMethodHandle;
            5    7     6          lform  Ljava/lang/invoke/LambdaForm;
            8    9     6          lform  Ljava/lang/invoke/LambdaForm;
    MethodParameters:
        Name  Flags
      target  
      pos     
      filter  

  private static java.lang.invoke.MethodType collectArgumentsChecks(java.lang.invoke.MethodHandle, int, java.lang.invoke.MethodHandle);
    descriptor: (Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodType;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // java.lang.invoke.MethodHandle target
        start local 1 // int pos
        start local 2 // java.lang.invoke.MethodHandle filter
         0: .line 5481
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 3 /* targetType */
        start local 3 // java.lang.invoke.MethodType targetType
         1: .line 5482
            aload 2 /* filter */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 4 /* filterType */
        start local 4 // java.lang.invoke.MethodType filterType
         2: .line 5483
            aload 4 /* filterType */
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            astore 5 /* rtype */
        start local 5 // java.lang.Class rtype
         3: .line 5484
            aload 4 /* filterType */
            invokevirtual java.lang.invoke.MethodType.parameterList:()Ljava/util/List;
            astore 6 /* filterArgs */
        start local 6 // java.util.List filterArgs
         4: .line 5485
            aload 5 /* rtype */
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            if_acmpne 6
         5: .line 5486
            aload 3 /* targetType */
            iload 1 /* pos */
            aload 6 /* filterArgs */
            invokevirtual java.lang.invoke.MethodType.insertParameterTypes:(ILjava/util/List;)Ljava/lang/invoke/MethodType;
            areturn
         6: .line 5488
      StackMap locals: java.lang.invoke.MethodHandle int java.lang.invoke.MethodHandle java.lang.invoke.MethodType java.lang.invoke.MethodType java.lang.Class java.util.List
      StackMap stack:
            aload 5 /* rtype */
            aload 3 /* targetType */
            iload 1 /* pos */
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            if_acmpeq 8
         7: .line 5489
            ldc "target and filter types do not match"
            aload 3 /* targetType */
            aload 4 /* filterType */
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
         8: .line 5491
      StackMap locals:
      StackMap stack:
            aload 3 /* targetType */
            iload 1 /* pos */
            iload 1 /* pos */
            iconst_1
            iadd
            invokevirtual java.lang.invoke.MethodType.dropParameterTypes:(II)Ljava/lang/invoke/MethodType;
            iload 1 /* pos */
            aload 6 /* filterArgs */
            invokevirtual java.lang.invoke.MethodType.insertParameterTypes:(ILjava/util/List;)Ljava/lang/invoke/MethodType;
            areturn
        end local 6 // java.util.List filterArgs
        end local 5 // java.lang.Class rtype
        end local 4 // java.lang.invoke.MethodType filterType
        end local 3 // java.lang.invoke.MethodType targetType
        end local 2 // java.lang.invoke.MethodHandle filter
        end local 1 // int pos
        end local 0 // java.lang.invoke.MethodHandle target
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    9     0      target  Ljava/lang/invoke/MethodHandle;
            0    9     1         pos  I
            0    9     2      filter  Ljava/lang/invoke/MethodHandle;
            1    9     3  targetType  Ljava/lang/invoke/MethodType;
            2    9     4  filterType  Ljava/lang/invoke/MethodType;
            3    9     5       rtype  Ljava/lang/Class<*>;
            4    9     6  filterArgs  Ljava/util/List<Ljava/lang/Class<*>;>;
    Exceptions:
      throws java.lang.RuntimeException
    MethodParameters:
        Name  Flags
      target  
      pos     
      filter  

  public static java.lang.invoke.MethodHandle filterReturnValue(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle);
    descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=2
        start local 0 // java.lang.invoke.MethodHandle target
        start local 1 // java.lang.invoke.MethodHandle filter
         0: .line 5559
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 2 /* targetType */
        start local 2 // java.lang.invoke.MethodType targetType
         1: .line 5560
            aload 1 /* filter */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 3 /* filterType */
        start local 3 // java.lang.invoke.MethodType filterType
         2: .line 5561
            aload 2 /* targetType */
            aload 3 /* filterType */
            invokestatic java.lang.invoke.MethodHandles.filterReturnValueChecks:(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;)V
         3: .line 5562
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.rebind:()Ljava/lang/invoke/BoundMethodHandle;
            astore 4 /* result */
        start local 4 // java.lang.invoke.BoundMethodHandle result
         4: .line 5563
            aload 3 /* filterType */
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            invokestatic java.lang.invoke.LambdaForm$BasicType.basicType:(Ljava/lang/Class;)Ljava/lang/invoke/LambdaForm$BasicType;
            astore 5 /* rtype */
        start local 5 // java.lang.invoke.LambdaForm$BasicType rtype
         5: .line 5564
            aload 4 /* result */
            invokevirtual java.lang.invoke.BoundMethodHandle.editor:()Ljava/lang/invoke/LambdaFormEditor;
            aload 5 /* rtype */
            iconst_0
            invokevirtual java.lang.invoke.LambdaFormEditor.filterReturnForm:(Ljava/lang/invoke/LambdaForm$BasicType;Z)Ljava/lang/invoke/LambdaForm;
            astore 6 /* lform */
        start local 6 // java.lang.invoke.LambdaForm lform
         6: .line 5565
            aload 2 /* targetType */
            aload 3 /* filterType */
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            invokevirtual java.lang.invoke.MethodType.changeReturnType:(Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
            astore 7 /* newType */
        start local 7 // java.lang.invoke.MethodType newType
         7: .line 5566
            aload 4 /* result */
            aload 7 /* newType */
            aload 6 /* lform */
            aload 1 /* filter */
            invokevirtual java.lang.invoke.BoundMethodHandle.copyWithExtendL:(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/LambdaForm;Ljava/lang/Object;)Ljava/lang/invoke/BoundMethodHandle;
            astore 4 /* result */
         8: .line 5567
            aload 4 /* result */
            areturn
        end local 7 // java.lang.invoke.MethodType newType
        end local 6 // java.lang.invoke.LambdaForm lform
        end local 5 // java.lang.invoke.LambdaForm$BasicType rtype
        end local 4 // java.lang.invoke.BoundMethodHandle result
        end local 3 // java.lang.invoke.MethodType filterType
        end local 2 // java.lang.invoke.MethodType targetType
        end local 1 // java.lang.invoke.MethodHandle filter
        end local 0 // java.lang.invoke.MethodHandle target
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    9     0      target  Ljava/lang/invoke/MethodHandle;
            0    9     1      filter  Ljava/lang/invoke/MethodHandle;
            1    9     2  targetType  Ljava/lang/invoke/MethodType;
            2    9     3  filterType  Ljava/lang/invoke/MethodType;
            4    9     4      result  Ljava/lang/invoke/BoundMethodHandle;
            5    9     5       rtype  Ljava/lang/invoke/LambdaForm$BasicType;
            6    9     6       lform  Ljava/lang/invoke/LambdaForm;
            7    9     7     newType  Ljava/lang/invoke/MethodType;
    MethodParameters:
        Name  Flags
      target  
      filter  

  private static void filterReturnValueChecks(java.lang.invoke.MethodType, java.lang.invoke.MethodType);
    descriptor: (Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // java.lang.invoke.MethodType targetType
        start local 1 // java.lang.invoke.MethodType filterType
         0: .line 5571
            aload 0 /* targetType */
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            astore 2 /* rtype */
        start local 2 // java.lang.Class rtype
         1: .line 5572
            aload 1 /* filterType */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            istore 3 /* filterValues */
        start local 3 // int filterValues
         2: .line 5573
            iload 3 /* filterValues */
            ifne 4
         3: .line 5574
            aload 2 /* rtype */
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            if_acmpeq 6
            goto 5
         4: .line 5575
      StackMap locals: java.lang.Class int
      StackMap stack:
            aload 2 /* rtype */
            aload 1 /* filterType */
            iconst_0
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            if_acmpne 5
            iload 3 /* filterValues */
            iconst_1
            if_icmpeq 6
         5: .line 5576
      StackMap locals:
      StackMap stack:
            ldc "target and filter types do not match"
            aload 0 /* targetType */
            aload 1 /* filterType */
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
         6: .line 5577
      StackMap locals:
      StackMap stack:
            return
        end local 3 // int filterValues
        end local 2 // java.lang.Class rtype
        end local 1 // java.lang.invoke.MethodType filterType
        end local 0 // java.lang.invoke.MethodType targetType
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    7     0    targetType  Ljava/lang/invoke/MethodType;
            0    7     1    filterType  Ljava/lang/invoke/MethodType;
            1    7     2         rtype  Ljava/lang/Class<*>;
            2    7     3  filterValues  I
    Exceptions:
      throws java.lang.RuntimeException
    MethodParameters:
            Name  Flags
      targetType  
      filterType  

  static java.lang.invoke.MethodHandle collectReturnValue(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle);
    descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=8, args_size=2
        start local 0 // java.lang.invoke.MethodHandle target
        start local 1 // java.lang.invoke.MethodHandle filter
         0: .line 5599
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 2 /* targetType */
        start local 2 // java.lang.invoke.MethodType targetType
         1: .line 5600
            aload 1 /* filter */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 3 /* filterType */
        start local 3 // java.lang.invoke.MethodType filterType
         2: .line 5601
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.rebind:()Ljava/lang/invoke/BoundMethodHandle;
            astore 4 /* result */
        start local 4 // java.lang.invoke.BoundMethodHandle result
         3: .line 5602
            aload 4 /* result */
            invokevirtual java.lang.invoke.BoundMethodHandle.editor:()Ljava/lang/invoke/LambdaFormEditor;
            aload 3 /* filterType */
            invokevirtual java.lang.invoke.MethodType.basicType:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.LambdaFormEditor.collectReturnValueForm:(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/LambdaForm;
            astore 5 /* lform */
        start local 5 // java.lang.invoke.LambdaForm lform
         4: .line 5603
            aload 2 /* targetType */
            aload 3 /* filterType */
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            invokevirtual java.lang.invoke.MethodType.changeReturnType:(Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
            astore 6 /* newType */
        start local 6 // java.lang.invoke.MethodType newType
         5: .line 5604
            aload 3 /* filterType */
            invokevirtual java.lang.invoke.MethodType.parameterList:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            iconst_1
            if_icmple 11
         6: .line 5605
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         7: goto 10
         8: .line 5606
      StackMap locals: java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.invoke.MethodType java.lang.invoke.MethodType java.lang.invoke.BoundMethodHandle java.lang.invoke.LambdaForm java.lang.invoke.MethodType int
      StackMap stack:
            aload 6 /* newType */
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            aload 3 /* filterType */
            iload 7 /* i */
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            aastore
            invokevirtual java.lang.invoke.MethodType.appendParameterTypes:([Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
            astore 6 /* newType */
         9: .line 5605
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 7 /* i */
            aload 3 /* filterType */
            invokevirtual java.lang.invoke.MethodType.parameterList:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
            if_icmplt 8
        end local 7 // int i
        11: .line 5609
      StackMap locals:
      StackMap stack:
            aload 4 /* result */
            aload 6 /* newType */
            aload 5 /* lform */
            aload 1 /* filter */
            invokevirtual java.lang.invoke.BoundMethodHandle.copyWithExtendL:(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/LambdaForm;Ljava/lang/Object;)Ljava/lang/invoke/BoundMethodHandle;
            astore 4 /* result */
        12: .line 5610
            aload 4 /* result */
            areturn
        end local 6 // java.lang.invoke.MethodType newType
        end local 5 // java.lang.invoke.LambdaForm lform
        end local 4 // java.lang.invoke.BoundMethodHandle result
        end local 3 // java.lang.invoke.MethodType filterType
        end local 2 // java.lang.invoke.MethodType targetType
        end local 1 // java.lang.invoke.MethodHandle filter
        end local 0 // java.lang.invoke.MethodHandle target
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   13     0      target  Ljava/lang/invoke/MethodHandle;
            0   13     1      filter  Ljava/lang/invoke/MethodHandle;
            1   13     2  targetType  Ljava/lang/invoke/MethodType;
            2   13     3  filterType  Ljava/lang/invoke/MethodType;
            3   13     4      result  Ljava/lang/invoke/BoundMethodHandle;
            4   13     5       lform  Ljava/lang/invoke/LambdaForm;
            5   13     6     newType  Ljava/lang/invoke/MethodType;
            7   11     7           i  I
    MethodParameters:
        Name  Flags
      target  
      filter  

  public static java.lang.invoke.MethodHandle foldArguments(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle);
    descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.invoke.MethodHandle target
        start local 1 // java.lang.invoke.MethodHandle combiner
         0: .line 5701
            aload 0 /* target */
            iconst_0
            aload 1 /* combiner */
            invokestatic java.lang.invoke.MethodHandles.foldArguments:(Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 1 // java.lang.invoke.MethodHandle combiner
        end local 0 // java.lang.invoke.MethodHandle target
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0    target  Ljava/lang/invoke/MethodHandle;
            0    1     1  combiner  Ljava/lang/invoke/MethodHandle;
    MethodParameters:
          Name  Flags
      target    
      combiner  

  public static java.lang.invoke.MethodHandle foldArguments(java.lang.invoke.MethodHandle, int, java.lang.invoke.MethodHandle);
    descriptor: (Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=10, args_size=3
        start local 0 // java.lang.invoke.MethodHandle target
        start local 1 // int pos
        start local 2 // java.lang.invoke.MethodHandle combiner
         0: .line 5775
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 3 /* targetType */
        start local 3 // java.lang.invoke.MethodType targetType
         1: .line 5776
            aload 2 /* combiner */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 4 /* combinerType */
        start local 4 // java.lang.invoke.MethodType combinerType
         2: .line 5777
            iload 1 /* pos */
            aload 3 /* targetType */
            aload 4 /* combinerType */
            invokestatic java.lang.invoke.MethodHandles.foldArgumentChecks:(ILjava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;)Ljava/lang/Class;
            astore 5 /* rtype */
        start local 5 // java.lang.Class rtype
         3: .line 5778
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.rebind:()Ljava/lang/invoke/BoundMethodHandle;
            astore 6 /* result */
        start local 6 // java.lang.invoke.BoundMethodHandle result
         4: .line 5779
            aload 5 /* rtype */
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            if_acmpne 5
            iconst_1
            goto 6
      StackMap locals: java.lang.invoke.MethodHandle int java.lang.invoke.MethodHandle java.lang.invoke.MethodType java.lang.invoke.MethodType java.lang.Class java.lang.invoke.BoundMethodHandle
      StackMap stack:
         5: iconst_0
      StackMap locals:
      StackMap stack: int
         6: istore 7 /* dropResult */
        start local 7 // boolean dropResult
         7: .line 5780
            aload 6 /* result */
            invokevirtual java.lang.invoke.BoundMethodHandle.editor:()Ljava/lang/invoke/LambdaFormEditor;
            iconst_1
            iload 1 /* pos */
            iadd
            iload 7 /* dropResult */
            aload 4 /* combinerType */
            invokevirtual java.lang.invoke.MethodType.basicType:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.LambdaFormEditor.foldArgumentsForm:(IZLjava/lang/invoke/MethodType;)Ljava/lang/invoke/LambdaForm;
            astore 8 /* lform */
        start local 8 // java.lang.invoke.LambdaForm lform
         8: .line 5781
            aload 3 /* targetType */
            astore 9 /* newType */
        start local 9 // java.lang.invoke.MethodType newType
         9: .line 5782
            iload 7 /* dropResult */
            ifne 11
        10: .line 5783
            aload 9 /* newType */
            iload 1 /* pos */
            iload 1 /* pos */
            iconst_1
            iadd
            invokevirtual java.lang.invoke.MethodType.dropParameterTypes:(II)Ljava/lang/invoke/MethodType;
            astore 9 /* newType */
        11: .line 5785
      StackMap locals: int java.lang.invoke.LambdaForm java.lang.invoke.MethodType
      StackMap stack:
            aload 6 /* result */
            aload 9 /* newType */
            aload 8 /* lform */
            aload 2 /* combiner */
            invokevirtual java.lang.invoke.BoundMethodHandle.copyWithExtendL:(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/LambdaForm;Ljava/lang/Object;)Ljava/lang/invoke/BoundMethodHandle;
            astore 6 /* result */
        12: .line 5786
            aload 6 /* result */
            areturn
        end local 9 // java.lang.invoke.MethodType newType
        end local 8 // java.lang.invoke.LambdaForm lform
        end local 7 // boolean dropResult
        end local 6 // java.lang.invoke.BoundMethodHandle result
        end local 5 // java.lang.Class rtype
        end local 4 // java.lang.invoke.MethodType combinerType
        end local 3 // java.lang.invoke.MethodType targetType
        end local 2 // java.lang.invoke.MethodHandle combiner
        end local 1 // int pos
        end local 0 // java.lang.invoke.MethodHandle target
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   13     0        target  Ljava/lang/invoke/MethodHandle;
            0   13     1           pos  I
            0   13     2      combiner  Ljava/lang/invoke/MethodHandle;
            1   13     3    targetType  Ljava/lang/invoke/MethodType;
            2   13     4  combinerType  Ljava/lang/invoke/MethodType;
            3   13     5         rtype  Ljava/lang/Class<*>;
            4   13     6        result  Ljava/lang/invoke/BoundMethodHandle;
            7   13     7    dropResult  Z
            8   13     8         lform  Ljava/lang/invoke/LambdaForm;
            9   13     9       newType  Ljava/lang/invoke/MethodType;
    MethodParameters:
          Name  Flags
      target    
      pos       
      combiner  

  private static java.lang.Class<?> foldArgumentChecks(int, java.lang.invoke.MethodType, java.lang.invoke.MethodType);
    descriptor: (ILjava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;)Ljava/lang/Class;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=9, args_size=3
        start local 0 // int foldPos
        start local 1 // java.lang.invoke.MethodType targetType
        start local 2 // java.lang.invoke.MethodType combinerType
         0: .line 5790
            aload 2 /* combinerType */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            istore 3 /* foldArgs */
        start local 3 // int foldArgs
         1: .line 5791
            aload 2 /* combinerType */
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            astore 4 /* rtype */
        start local 4 // java.lang.Class rtype
         2: .line 5792
            aload 4 /* rtype */
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            if_acmpne 3
            iconst_0
            goto 4
      StackMap locals: int java.lang.Class
      StackMap stack:
         3: iconst_1
      StackMap locals:
      StackMap stack: int
         4: istore 5 /* foldVals */
        start local 5 // int foldVals
         5: .line 5793
            iload 0 /* foldPos */
            iload 5 /* foldVals */
            iadd
            istore 6 /* afterInsertPos */
        start local 6 // int afterInsertPos
         6: .line 5794
            aload 1 /* targetType */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            iload 6 /* afterInsertPos */
            iload 3 /* foldArgs */
            iadd
            if_icmplt 7
            iconst_1
            goto 8
      StackMap locals: int int
      StackMap stack:
         7: iconst_0
      StackMap locals:
      StackMap stack: int
         8: istore 7 /* ok */
        start local 7 // boolean ok
         9: .line 5795
            iload 7 /* ok */
            ifeq 17
        10: .line 5796
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        11: goto 16
        12: .line 5797
      StackMap locals: int int
      StackMap stack:
            aload 2 /* combinerType */
            iload 8 /* i */
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            aload 1 /* targetType */
            iload 8 /* i */
            iload 6 /* afterInsertPos */
            iadd
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            if_acmpeq 15
        13: .line 5798
            iconst_0
            istore 7 /* ok */
        14: .line 5799
            goto 17
        15: .line 5796
      StackMap locals:
      StackMap stack:
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        16: iload 8 /* i */
            iload 3 /* foldArgs */
            if_icmplt 12
        end local 8 // int i
        17: .line 5803
      StackMap locals:
      StackMap stack:
            iload 7 /* ok */
            ifeq 19
            iload 5 /* foldVals */
            ifeq 19
            aload 2 /* combinerType */
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            aload 1 /* targetType */
            iload 0 /* foldPos */
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            if_acmpeq 19
        18: .line 5804
            iconst_0
            istore 7 /* ok */
        19: .line 5805
      StackMap locals:
      StackMap stack:
            iload 7 /* ok */
            ifne 21
        20: .line 5806
            ldc "target and combiner types"
            aload 1 /* targetType */
            aload 2 /* combinerType */
            invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
        21: .line 5807
      StackMap locals:
      StackMap stack:
            aload 4 /* rtype */
            areturn
        end local 7 // boolean ok
        end local 6 // int afterInsertPos
        end local 5 // int foldVals
        end local 4 // java.lang.Class rtype
        end local 3 // int foldArgs
        end local 2 // java.lang.invoke.MethodType combinerType
        end local 1 // java.lang.invoke.MethodType targetType
        end local 0 // int foldPos
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   22     0         foldPos  I
            0   22     1      targetType  Ljava/lang/invoke/MethodType;
            0   22     2    combinerType  Ljava/lang/invoke/MethodType;
            1   22     3        foldArgs  I
            2   22     4           rtype  Ljava/lang/Class<*>;
            5   22     5        foldVals  I
            6   22     6  afterInsertPos  I
            9   22     7              ok  Z
           11   17     8               i  I
    Signature: (ILjava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;)Ljava/lang/Class<*>;
    MethodParameters:
              Name  Flags
      foldPos       
      targetType    
      combinerType  

  static java.lang.invoke.MethodHandle filterArgumentsWithCombiner(java.lang.invoke.MethodHandle, int, java.lang.invoke.MethodHandle, int[]);
    descriptor: (Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;[I)Ljava/lang/invoke/MethodHandle;
    flags: (0x0088) ACC_STATIC, ACC_VARARGS
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // java.lang.invoke.MethodHandle target
        start local 1 // int position
        start local 2 // java.lang.invoke.MethodHandle combiner
        start local 3 // int[] argPositions
         0: .line 5829
            iconst_1
            aload 0 /* target */
            iload 1 /* position */
            aload 2 /* combiner */
            aload 3 /* argPositions */
            invokestatic java.lang.invoke.MethodHandles.argumentsWithCombiner:(ZLjava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;[I)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 3 // int[] argPositions
        end local 2 // java.lang.invoke.MethodHandle combiner
        end local 1 // int position
        end local 0 // java.lang.invoke.MethodHandle target
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0        target  Ljava/lang/invoke/MethodHandle;
            0    1     1      position  I
            0    1     2      combiner  Ljava/lang/invoke/MethodHandle;
            0    1     3  argPositions  [I
    MethodParameters:
              Name  Flags
      target        
      position      
      combiner      
      argPositions  

  static java.lang.invoke.MethodHandle foldArgumentsWithCombiner(java.lang.invoke.MethodHandle, int, java.lang.invoke.MethodHandle, int[]);
    descriptor: (Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;[I)Ljava/lang/invoke/MethodHandle;
    flags: (0x0088) ACC_STATIC, ACC_VARARGS
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // java.lang.invoke.MethodHandle target
        start local 1 // int position
        start local 2 // java.lang.invoke.MethodHandle combiner
        start local 3 // int[] argPositions
         0: .line 5852
            iconst_0
            aload 0 /* target */
            iload 1 /* position */
            aload 2 /* combiner */
            aload 3 /* argPositions */
            invokestatic java.lang.invoke.MethodHandles.argumentsWithCombiner:(ZLjava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;[I)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 3 // int[] argPositions
        end local 2 // java.lang.invoke.MethodHandle combiner
        end local 1 // int position
        end local 0 // java.lang.invoke.MethodHandle target
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0        target  Ljava/lang/invoke/MethodHandle;
            0    1     1      position  I
            0    1     2      combiner  Ljava/lang/invoke/MethodHandle;
            0    1     3  argPositions  [I
    MethodParameters:
              Name  Flags
      target        
      position      
      combiner      
      argPositions  

  private static java.lang.invoke.MethodHandle argumentsWithCombiner(boolean, java.lang.invoke.MethodHandle, int, java.lang.invoke.MethodHandle, int[]);
    descriptor: (ZLjava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;[I)Ljava/lang/invoke/MethodHandle;
    flags: (0x008a) ACC_PRIVATE, ACC_STATIC, ACC_VARARGS
    Code:
      stack=5, locals=12, args_size=5
        start local 0 // boolean filter
        start local 1 // java.lang.invoke.MethodHandle target
        start local 2 // int position
        start local 3 // java.lang.invoke.MethodHandle combiner
        start local 4 // int[] argPositions
         0: .line 5856
            aload 1 /* target */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 5 /* targetType */
        start local 5 // java.lang.invoke.MethodType targetType
         1: .line 5857
            aload 3 /* combiner */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 6 /* combinerType */
        start local 6 // java.lang.invoke.MethodType combinerType
         2: .line 5858
            iload 2 /* position */
            iload 0 /* filter */
            aload 5 /* targetType */
            aload 6 /* combinerType */
            aload 4 /* argPositions */
            invokestatic java.lang.invoke.MethodHandles.argumentsWithCombinerChecks:(IZLjava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;[I)Ljava/lang/Class;
            astore 7 /* rtype */
        start local 7 // java.lang.Class rtype
         3: .line 5859
            aload 1 /* target */
            invokevirtual java.lang.invoke.MethodHandle.rebind:()Ljava/lang/invoke/BoundMethodHandle;
            astore 8 /* result */
        start local 8 // java.lang.invoke.BoundMethodHandle result
         4: .line 5861
            aload 5 /* targetType */
            astore 9 /* newType */
        start local 9 // java.lang.invoke.MethodType newType
         5: .line 5863
            iload 0 /* filter */
            ifeq 8
         6: .line 5864
            aload 8 /* result */
            invokevirtual java.lang.invoke.BoundMethodHandle.editor:()Ljava/lang/invoke/LambdaFormEditor;
            iconst_1
            iload 2 /* position */
            iadd
            aload 6 /* combinerType */
            invokevirtual java.lang.invoke.MethodType.basicType:()Ljava/lang/invoke/MethodType;
            aload 4 /* argPositions */
            invokevirtual java.lang.invoke.LambdaFormEditor.filterArgumentsForm:(ILjava/lang/invoke/MethodType;[I)Ljava/lang/invoke/LambdaForm;
            astore 10 /* lform */
        start local 10 // java.lang.invoke.LambdaForm lform
         7: .line 5865
            goto 14
        end local 10 // java.lang.invoke.LambdaForm lform
         8: .line 5866
      StackMap locals: int java.lang.invoke.MethodHandle int java.lang.invoke.MethodHandle int[] java.lang.invoke.MethodType java.lang.invoke.MethodType java.lang.Class java.lang.invoke.BoundMethodHandle java.lang.invoke.MethodType
      StackMap stack:
            aload 7 /* rtype */
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            if_acmpne 9
            iconst_1
            goto 10
      StackMap locals:
      StackMap stack:
         9: iconst_0
      StackMap locals:
      StackMap stack: int
        10: istore 11 /* dropResult */
        start local 11 // boolean dropResult
        11: .line 5867
            aload 8 /* result */
            invokevirtual java.lang.invoke.BoundMethodHandle.editor:()Ljava/lang/invoke/LambdaFormEditor;
            iconst_1
            iload 2 /* position */
            iadd
            iload 11 /* dropResult */
            aload 6 /* combinerType */
            invokevirtual java.lang.invoke.MethodType.basicType:()Ljava/lang/invoke/MethodType;
            aload 4 /* argPositions */
            invokevirtual java.lang.invoke.LambdaFormEditor.foldArgumentsForm:(IZLjava/lang/invoke/MethodType;[I)Ljava/lang/invoke/LambdaForm;
            astore 10 /* lform */
        start local 10 // java.lang.invoke.LambdaForm lform
        12: .line 5868
            iload 11 /* dropResult */
            ifne 14
        13: .line 5869
            aload 9 /* newType */
            iload 2 /* position */
            iload 2 /* position */
            iconst_1
            iadd
            invokevirtual java.lang.invoke.MethodType.dropParameterTypes:(II)Ljava/lang/invoke/MethodType;
            astore 9 /* newType */
        end local 11 // boolean dropResult
        14: .line 5872
      StackMap locals: java.lang.invoke.LambdaForm
      StackMap stack:
            aload 8 /* result */
            aload 9 /* newType */
            aload 10 /* lform */
            aload 3 /* combiner */
            invokevirtual java.lang.invoke.BoundMethodHandle.copyWithExtendL:(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/LambdaForm;Ljava/lang/Object;)Ljava/lang/invoke/BoundMethodHandle;
            astore 8 /* result */
        15: .line 5873
            aload 8 /* result */
            areturn
        end local 10 // java.lang.invoke.LambdaForm lform
        end local 9 // java.lang.invoke.MethodType newType
        end local 8 // java.lang.invoke.BoundMethodHandle result
        end local 7 // java.lang.Class rtype
        end local 6 // java.lang.invoke.MethodType combinerType
        end local 5 // java.lang.invoke.MethodType targetType
        end local 4 // int[] argPositions
        end local 3 // java.lang.invoke.MethodHandle combiner
        end local 2 // int position
        end local 1 // java.lang.invoke.MethodHandle target
        end local 0 // boolean filter
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   16     0        filter  Z
            0   16     1        target  Ljava/lang/invoke/MethodHandle;
            0   16     2      position  I
            0   16     3      combiner  Ljava/lang/invoke/MethodHandle;
            0   16     4  argPositions  [I
            1   16     5    targetType  Ljava/lang/invoke/MethodType;
            2   16     6  combinerType  Ljava/lang/invoke/MethodType;
            3   16     7         rtype  Ljava/lang/Class<*>;
            4   16     8        result  Ljava/lang/invoke/BoundMethodHandle;
            5   16     9       newType  Ljava/lang/invoke/MethodType;
            7    8    10         lform  Ljava/lang/invoke/LambdaForm;
           12   16    10         lform  Ljava/lang/invoke/LambdaForm;
           11   14    11    dropResult  Z
    MethodParameters:
              Name  Flags
      filter        
      target        
      position      
      combiner      
      argPositions  

  private static java.lang.Class<?> argumentsWithCombinerChecks(int, boolean, java.lang.invoke.MethodType, java.lang.invoke.MethodType, int[]);
    descriptor: (IZLjava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;[I)Ljava/lang/Class;
    flags: (0x008a) ACC_PRIVATE, ACC_STATIC, ACC_VARARGS
    Code:
      stack=3, locals=9, args_size=5
        start local 0 // int position
        start local 1 // boolean filter
        start local 2 // java.lang.invoke.MethodType targetType
        start local 3 // java.lang.invoke.MethodType combinerType
        start local 4 // int[] argPos
         0: .line 5877
            aload 3 /* combinerType */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            istore 5 /* combinerArgs */
        start local 5 // int combinerArgs
         1: .line 5878
            aload 4 /* argPos */
            arraylength
            iload 5 /* combinerArgs */
            if_icmpeq 3
         2: .line 5879
            ldc "combiner and argument map must be equal size"
            aload 3 /* combinerType */
            aload 4 /* argPos */
            arraylength
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
         3: .line 5881
      StackMap locals: int
      StackMap stack:
            aload 3 /* combinerType */
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            astore 6 /* rtype */
        start local 6 // java.lang.Class rtype
         4: .line 5883
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         5: goto 15
         6: .line 5884
      StackMap locals: java.lang.Class int
      StackMap stack:
            aload 4 /* argPos */
            iload 7 /* i */
            iaload
            istore 8 /* arg */
        start local 8 // int arg
         7: .line 5885
            iload 8 /* arg */
            iflt 8
            iload 8 /* arg */
            aload 2 /* targetType */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            if_icmple 9
         8: .line 5886
      StackMap locals: int
      StackMap stack:
            ldc "arg outside of target parameterRange"
            aload 2 /* targetType */
            iload 8 /* arg */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
         9: .line 5888
      StackMap locals:
      StackMap stack:
            aload 3 /* combinerType */
            iload 7 /* i */
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            aload 2 /* targetType */
            iload 8 /* arg */
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            if_acmpeq 14
        10: .line 5889
            new java.lang.StringBuilder
            dup
            ldc "target argument type at position "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 8 /* arg */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        11: .line 5890
            ldc " must match combiner argument type at index "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 7 /* i */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ": "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* targetType */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        12: .line 5891
            ldc " -> "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* combinerType */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ", map: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* argPos */
            invokestatic java.util.Arrays.toString:([I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        13: .line 5889
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        end local 8 // int arg
        14: .line 5883
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        15: iload 7 /* i */
            iload 5 /* combinerArgs */
            if_icmplt 6
        end local 7 // int i
        16: .line 5894
            iload 1 /* filter */
            ifeq 18
            aload 3 /* combinerType */
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            aload 2 /* targetType */
            iload 0 /* position */
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            if_acmpeq 18
        17: .line 5895
            ldc "target and combiner types"
            aload 2 /* targetType */
            aload 3 /* combinerType */
            invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
        18: .line 5897
      StackMap locals:
      StackMap stack:
            aload 6 /* rtype */
            areturn
        end local 6 // java.lang.Class rtype
        end local 5 // int combinerArgs
        end local 4 // int[] argPos
        end local 3 // java.lang.invoke.MethodType combinerType
        end local 2 // java.lang.invoke.MethodType targetType
        end local 1 // boolean filter
        end local 0 // int position
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   19     0      position  I
            0   19     1        filter  Z
            0   19     2    targetType  Ljava/lang/invoke/MethodType;
            0   19     3  combinerType  Ljava/lang/invoke/MethodType;
            0   19     4        argPos  [I
            1   19     5  combinerArgs  I
            4   19     6         rtype  Ljava/lang/Class<*>;
            5   16     7             i  I
            7   14     8           arg  I
    Signature: (IZLjava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;[I)Ljava/lang/Class<*>;
    MethodParameters:
              Name  Flags
      position      
      filter        
      targetType    
      combinerType  
      argPos        

  public static java.lang.invoke.MethodHandle guardWithTest(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle);
    descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=7, args_size=3
        start local 0 // java.lang.invoke.MethodHandle test
        start local 1 // java.lang.invoke.MethodHandle target
        start local 2 // java.lang.invoke.MethodHandle fallback
         0: .line 5941
            aload 0 /* test */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 3 /* gtype */
        start local 3 // java.lang.invoke.MethodType gtype
         1: .line 5942
            aload 1 /* target */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 4 /* ttype */
        start local 4 // java.lang.invoke.MethodType ttype
         2: .line 5943
            aload 2 /* fallback */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 5 /* ftype */
        start local 5 // java.lang.invoke.MethodType ftype
         3: .line 5944
            aload 4 /* ttype */
            aload 5 /* ftype */
            invokevirtual java.lang.invoke.MethodType.equals:(Ljava/lang/Object;)Z
            ifne 5
         4: .line 5945
            ldc "target and fallback types"
            aload 4 /* ttype */
            aload 5 /* ftype */
            invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
         5: .line 5946
      StackMap locals: java.lang.invoke.MethodType java.lang.invoke.MethodType java.lang.invoke.MethodType
      StackMap stack:
            aload 3 /* gtype */
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            if_acmpeq 7
         6: .line 5947
            new java.lang.StringBuilder
            dup
            ldc "guard type is not a predicate "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* gtype */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
         7: .line 5948
      StackMap locals:
      StackMap stack:
            aload 4 /* ttype */
            invokevirtual java.lang.invoke.MethodType.parameterList:()Ljava/util/List;
            astore 6 /* targs */
        start local 6 // java.util.List targs
         8: .line 5949
            aload 0 /* test */
            iconst_0
            aload 6 /* targs */
            iconst_0
            iconst_1
            invokestatic java.lang.invoke.MethodHandles.dropArgumentsToMatch:(Ljava/lang/invoke/MethodHandle;ILjava/util/List;IZ)Ljava/lang/invoke/MethodHandle;
            astore 0 /* test */
         9: .line 5950
            aload 0 /* test */
            ifnonnull 11
        10: .line 5951
            ldc "target and test types"
            aload 4 /* ttype */
            aload 3 /* gtype */
            invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
        11: .line 5953
      StackMap locals: java.util.List
      StackMap stack:
            aload 0 /* test */
            aload 1 /* target */
            aload 2 /* fallback */
            invokestatic java.lang.invoke.MethodHandleImpl.makeGuardWithTest:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 6 // java.util.List targs
        end local 5 // java.lang.invoke.MethodType ftype
        end local 4 // java.lang.invoke.MethodType ttype
        end local 3 // java.lang.invoke.MethodType gtype
        end local 2 // java.lang.invoke.MethodHandle fallback
        end local 1 // java.lang.invoke.MethodHandle target
        end local 0 // java.lang.invoke.MethodHandle test
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   12     0      test  Ljava/lang/invoke/MethodHandle;
            0   12     1    target  Ljava/lang/invoke/MethodHandle;
            0   12     2  fallback  Ljava/lang/invoke/MethodHandle;
            1   12     3     gtype  Ljava/lang/invoke/MethodType;
            2   12     4     ttype  Ljava/lang/invoke/MethodType;
            3   12     5     ftype  Ljava/lang/invoke/MethodType;
            8   12     6     targs  Ljava/util/List<Ljava/lang/Class<*>;>;
    MethodParameters:
          Name  Flags
      test      
      target    
      fallback  

  static <T> java.lang.RuntimeException misMatchedTypes(java.lang.String, T, T);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.lang.String what
        start local 1 // java.lang.Object t1
        start local 2 // java.lang.Object t2
         0: .line 5957
            new java.lang.StringBuilder
            dup
            aload 0 /* what */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " must match: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* t1 */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " != "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* t2 */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            areturn
        end local 2 // java.lang.Object t2
        end local 1 // java.lang.Object t1
        end local 0 // java.lang.String what
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  what  Ljava/lang/String;
            0    1     1    t1  TT;
            0    1     2    t2  TT;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/String;TT;TT;)Ljava/lang/RuntimeException;
    MethodParameters:
      Name  Flags
      what  
      t1    
      t2    

  public static java.lang.invoke.MethodHandle catchException(java.lang.invoke.MethodHandle, java.lang.Class<? extends java.lang.Throwable>, java.lang.invoke.MethodHandle);
    descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/Class;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // java.lang.invoke.MethodHandle target
        start local 1 // java.lang.Class exType
        start local 2 // java.lang.invoke.MethodHandle handler
         0: .line 6013
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 3 /* ttype */
        start local 3 // java.lang.invoke.MethodType ttype
         1: .line 6014
            aload 2 /* handler */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 4 /* htype */
        start local 4 // java.lang.invoke.MethodType htype
         2: .line 6015
            ldc Ljava/lang/Throwable;
            aload 1 /* exType */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 4
         3: .line 6016
            new java.lang.ClassCastException
            dup
            aload 1 /* exType */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokespecial java.lang.ClassCastException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 6017
      StackMap locals: java.lang.invoke.MethodType java.lang.invoke.MethodType
      StackMap stack:
            aload 4 /* htype */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            iconst_1
            if_icmplt 6
         5: .line 6018
            aload 4 /* htype */
            iconst_0
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            aload 1 /* exType */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 7
         6: .line 6019
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "handler does not accept exception type "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* exType */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
         7: .line 6020
      StackMap locals:
      StackMap stack:
            aload 4 /* htype */
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            aload 3 /* ttype */
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            if_acmpeq 9
         8: .line 6021
            ldc "target and handler return types"
            aload 3 /* ttype */
            aload 4 /* htype */
            invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
         9: .line 6022
      StackMap locals:
      StackMap stack:
            aload 2 /* handler */
            iconst_1
            aload 3 /* ttype */
            invokevirtual java.lang.invoke.MethodType.parameterList:()Ljava/util/List;
            iconst_0
            iconst_1
            invokestatic java.lang.invoke.MethodHandles.dropArgumentsToMatch:(Ljava/lang/invoke/MethodHandle;ILjava/util/List;IZ)Ljava/lang/invoke/MethodHandle;
            astore 2 /* handler */
        10: .line 6023
            aload 2 /* handler */
            ifnonnull 12
        11: .line 6024
            ldc "target and handler types"
            aload 3 /* ttype */
            aload 4 /* htype */
            invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
        12: .line 6026
      StackMap locals:
      StackMap stack:
            aload 0 /* target */
            aload 1 /* exType */
            aload 2 /* handler */
            invokestatic java.lang.invoke.MethodHandleImpl.makeGuardWithCatch:(Ljava/lang/invoke/MethodHandle;Ljava/lang/Class;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 4 // java.lang.invoke.MethodType htype
        end local 3 // java.lang.invoke.MethodType ttype
        end local 2 // java.lang.invoke.MethodHandle handler
        end local 1 // java.lang.Class exType
        end local 0 // java.lang.invoke.MethodHandle target
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   13     0   target  Ljava/lang/invoke/MethodHandle;
            0   13     1   exType  Ljava/lang/Class<+Ljava/lang/Throwable;>;
            0   13     2  handler  Ljava/lang/invoke/MethodHandle;
            1   13     3    ttype  Ljava/lang/invoke/MethodType;
            2   13     4    htype  Ljava/lang/invoke/MethodType;
    Signature: (Ljava/lang/invoke/MethodHandle;Ljava/lang/Class<+Ljava/lang/Throwable;>;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
         Name  Flags
      target   
      exType   
      handler  

  public static java.lang.invoke.MethodHandle throwException(java.lang.Class<?>, java.lang.Class<? extends java.lang.Throwable>);
    descriptor: (Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.Class returnType
        start local 1 // java.lang.Class exType
         0: .line 6042
            ldc Ljava/lang/Throwable;
            aload 1 /* exType */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 2
         1: .line 6043
            new java.lang.ClassCastException
            dup
            aload 1 /* exType */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokespecial java.lang.ClassCastException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 6044
      StackMap locals:
      StackMap stack:
            aload 0 /* returnType */
            aload 1 /* exType */
            invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
            invokestatic java.lang.invoke.MethodHandleImpl.throwException:(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 1 // java.lang.Class exType
        end local 0 // java.lang.Class returnType
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0  returnType  Ljava/lang/Class<*>;
            0    3     1      exType  Ljava/lang/Class<+Ljava/lang/Throwable;>;
    Signature: (Ljava/lang/Class<*>;Ljava/lang/Class<+Ljava/lang/Throwable;>;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
            Name  Flags
      returnType  
      exType      

  public static java.lang.invoke.MethodHandle loop(java.lang.invoke.MethodHandle[][]);
    descriptor: ([[Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=6, locals=16, args_size=1
        start local 0 // java.lang.invoke.MethodHandle[][] clauses
         0: .line 6348
            aload 0 /* clauses */
            invokestatic java.lang.invoke.MethodHandles.loopChecks0:([[Ljava/lang/invoke/MethodHandle;)V
         1: .line 6350
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 1 /* init */
        start local 1 // java.util.List init
         2: .line 6351
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* step */
        start local 2 // java.util.List step
         3: .line 6352
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* pred */
        start local 3 // java.util.List pred
         4: .line 6353
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 4 /* fini */
        start local 4 // java.util.List fini
         5: .line 6355
            aload 0 /* clauses */
            invokestatic java.util.stream.Stream.of:([Ljava/lang/Object;)Ljava/util/stream/Stream;
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  java/lang/invoke/MethodHandles.lambda$0([Ljava/lang/invoke/MethodHandle;)Z (6)
                  ([Ljava/lang/invoke/MethodHandle;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
            aload 1 /* init */
            aload 2 /* step */
            aload 3 /* pred */
            aload 4 /* fini */
            invokedynamic accept(Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  java/lang/invoke/MethodHandles.lambda$2(Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;[Ljava/lang/invoke/MethodHandle;)V (6)
                  ([Ljava/lang/invoke/MethodHandle;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
         6: .line 6362
            getstatic java.lang.invoke.MethodHandles.$assertionsDisabled:Z
            ifne 7
            iconst_4
            anewarray java.util.List
            dup
            iconst_0
            aload 1 /* init */
            aastore
            dup
            iconst_1
            aload 2 /* step */
            aastore
            dup
            iconst_2
            aload 3 /* pred */
            aastore
            dup
            iconst_3
            aload 4 /* fini */
            aastore
            invokestatic java.util.stream.Stream.of:([Ljava/lang/Object;)Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/util/List.size()I (9 itf)
                  (Ljava/util/List;)Ljava/lang/Integer;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.distinct:()Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.count:()J
            lconst_1
            lcmp
            ifeq 7
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         7: .line 6363
      StackMap locals: java.lang.invoke.MethodHandle[][] java.util.List java.util.List java.util.List java.util.List
      StackMap stack:
            aload 1 /* init */
            invokeinterface java.util.List.size:()I
            istore 5 /* nclauses */
        start local 5 // int nclauses
         8: .line 6366
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 6 /* iterationVariableTypes */
        start local 6 // java.util.List iterationVariableTypes
         9: .line 6367
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        10: goto 24
        11: .line 6368
      StackMap locals: int java.util.List int
      StackMap stack:
            aload 1 /* init */
            iload 7 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.invoke.MethodHandle
            astore 8 /* in */
        start local 8 // java.lang.invoke.MethodHandle in
        12: .line 6369
            aload 2 /* step */
            iload 7 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.invoke.MethodHandle
            astore 9 /* st */
        start local 9 // java.lang.invoke.MethodHandle st
        13: .line 6370
            aload 8 /* in */
            ifnonnull 16
            aload 9 /* st */
            ifnonnull 16
        14: .line 6371
            aload 6 /* iterationVariableTypes */
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        15: .line 6372
            goto 23
      StackMap locals: java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle
      StackMap stack:
        16: aload 8 /* in */
            ifnull 20
            aload 9 /* st */
            ifnull 20
        17: .line 6373
            iload 7 /* i */
            aload 8 /* in */
            aload 9 /* st */
            invokestatic java.lang.invoke.MethodHandles.loopChecks1a:(ILjava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)V
        18: .line 6374
            aload 6 /* iterationVariableTypes */
            aload 8 /* in */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        19: .line 6375
            goto 23
        20: .line 6376
      StackMap locals:
      StackMap stack:
            aload 6 /* iterationVariableTypes */
            aload 8 /* in */
            ifnonnull 21
            aload 9 /* st */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            goto 22
      StackMap locals:
      StackMap stack: java.util.List
        21: aload 8 /* in */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
      StackMap locals: java.lang.invoke.MethodHandle[][] java.util.List java.util.List java.util.List java.util.List int java.util.List int java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle
      StackMap stack: java.util.List java.lang.Class
        22: invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 9 // java.lang.invoke.MethodHandle st
        end local 8 // java.lang.invoke.MethodHandle in
        23: .line 6367
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        24: iload 7 /* i */
            iload 5 /* nclauses */
            if_icmplt 11
        end local 7 // int i
        25: .line 6379
            aload 6 /* iterationVariableTypes */
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  java/lang/invoke/MethodHandles.lambda$4(Ljava/lang/Class;)Z (6)
                  (Ljava/lang/Class;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
        26: .line 6380
            invokestatic java.util.stream.Collectors.toList:()Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.util.List
        27: .line 6379
            astore 7 /* commonPrefix */
        start local 7 // java.util.List commonPrefix
        28: .line 6383
            aload 1 /* init */
            aload 2 /* step */
            aload 3 /* pred */
            aload 4 /* fini */
            aload 7 /* commonPrefix */
            invokeinterface java.util.List.size:()I
            invokestatic java.lang.invoke.MethodHandles.buildCommonSuffix:(Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;I)Ljava/util/List;
            astore 8 /* commonSuffix */
        start local 8 // java.util.List commonSuffix
        29: .line 6384
            aload 1 /* init */
            aload 8 /* commonSuffix */
            invokestatic java.lang.invoke.MethodHandles.loopChecks1b:(Ljava/util/List;Ljava/util/List;)V
        30: .line 6389
            aload 4 /* fini */
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  java/util/Objects.nonNull(Ljava/lang/Object;)Z (6)
                  (Ljava/lang/invoke/MethodHandle;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/lang/invoke/MethodHandle.type()Ljava/lang/invoke/MethodType; (5)
                  (Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodType;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
        31: .line 6390
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/lang/invoke/MethodType.returnType()Ljava/lang/Class; (5)
                  (Ljava/lang/invoke/MethodType;)Ljava/lang/Class;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
        32: .line 6389
            astore 9 /* cstream */
        start local 9 // java.util.stream.Stream cstream
        33: .line 6391
            aload 9 /* cstream */
            invokeinterface java.util.stream.Stream.findFirst:()Ljava/util/Optional;
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            invokevirtual java.util.Optional.orElse:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Class
            astore 10 /* loopReturnType */
        start local 10 // java.lang.Class loopReturnType
        34: .line 6392
            aload 3 /* pred */
            aload 4 /* fini */
            aload 10 /* loopReturnType */
            invokestatic java.lang.invoke.MethodHandles.loopChecks1cd:(Ljava/util/List;Ljava/util/List;Ljava/lang/Class;)V
        35: .line 6395
            new java.util.ArrayList
            dup
            aload 7 /* commonPrefix */
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            astore 11 /* commonParameterSequence */
        start local 11 // java.util.List commonParameterSequence
        36: .line 6396
            aload 11 /* commonParameterSequence */
            aload 8 /* commonSuffix */
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
        37: .line 6397
            aload 2 /* step */
            aload 3 /* pred */
            aload 4 /* fini */
            aload 11 /* commonParameterSequence */
            invokestatic java.lang.invoke.MethodHandles.loopChecks2:(Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;)V
        38: .line 6400
            iconst_0
            istore 12 /* i */
        start local 12 // int i
        39: goto 50
        40: .line 6401
      StackMap locals: java.lang.invoke.MethodHandle[][] java.util.List java.util.List java.util.List java.util.List int java.util.List java.util.List java.util.List java.util.stream.Stream java.lang.Class java.util.List int
      StackMap stack:
            aload 6 /* iterationVariableTypes */
            iload 12 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.Class
            astore 13 /* t */
        start local 13 // java.lang.Class t
        41: .line 6402
            aload 1 /* init */
            iload 12 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            ifnonnull 43
        42: .line 6403
            aload 1 /* init */
            iload 12 /* i */
            aload 13 /* t */
            aload 8 /* commonSuffix */
            invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;Ljava/util/List;)Ljava/lang/invoke/MethodType;
            invokestatic java.lang.invoke.MethodHandles.empty:(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            invokeinterface java.util.List.set:(ILjava/lang/Object;)Ljava/lang/Object;
            pop
        43: .line 6405
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 2 /* step */
            iload 12 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            ifnonnull 45
        44: .line 6406
            aload 2 /* step */
            iload 12 /* i */
            aload 13 /* t */
            invokestatic java.lang.invoke.MethodHandles.identityOrVoid:(Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            iconst_0
            aload 11 /* commonParameterSequence */
            iload 12 /* i */
            invokestatic java.lang.invoke.MethodHandles.dropArgumentsToMatch:(Ljava/lang/invoke/MethodHandle;ILjava/util/List;I)Ljava/lang/invoke/MethodHandle;
            invokeinterface java.util.List.set:(ILjava/lang/Object;)Ljava/lang/Object;
            pop
        45: .line 6408
      StackMap locals:
      StackMap stack:
            aload 3 /* pred */
            iload 12 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            ifnonnull 47
        46: .line 6409
            aload 3 /* pred */
            iload 12 /* i */
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokestatic java.lang.invoke.MethodHandles.constant:(Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
            iconst_0
            aload 11 /* commonParameterSequence */
            invokestatic java.lang.invoke.MethodHandles.dropArguments0:(Ljava/lang/invoke/MethodHandle;ILjava/util/List;)Ljava/lang/invoke/MethodHandle;
            invokeinterface java.util.List.set:(ILjava/lang/Object;)Ljava/lang/Object;
            pop
        47: .line 6411
      StackMap locals:
      StackMap stack:
            aload 4 /* fini */
            iload 12 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            ifnonnull 49
        48: .line 6412
            aload 4 /* fini */
            iload 12 /* i */
            aload 13 /* t */
            aload 11 /* commonParameterSequence */
            invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;Ljava/util/List;)Ljava/lang/invoke/MethodType;
            invokestatic java.lang.invoke.MethodHandles.empty:(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            invokeinterface java.util.List.set:(ILjava/lang/Object;)Ljava/lang/Object;
            pop
        end local 13 // java.lang.Class t
        49: .line 6400
      StackMap locals:
      StackMap stack:
            iinc 12 /* i */ 1
      StackMap locals:
      StackMap stack:
        50: iload 12 /* i */
            iload 5 /* nclauses */
            if_icmplt 40
        end local 12 // int i
        51: .line 6418
            aload 1 /* init */
            aload 8 /* commonSuffix */
            invokestatic java.lang.invoke.MethodHandles.fillParameterTypes:(Ljava/util/List;Ljava/util/List;)Ljava/util/List;
            invokestatic java.lang.invoke.MethodHandles.fixArities:(Ljava/util/List;)Ljava/util/List;
            astore 12 /* finit */
        start local 12 // java.util.List finit
        52: .line 6419
            aload 2 /* step */
            aload 11 /* commonParameterSequence */
            invokestatic java.lang.invoke.MethodHandles.fillParameterTypes:(Ljava/util/List;Ljava/util/List;)Ljava/util/List;
            invokestatic java.lang.invoke.MethodHandles.fixArities:(Ljava/util/List;)Ljava/util/List;
            astore 13 /* fstep */
        start local 13 // java.util.List fstep
        53: .line 6420
            aload 3 /* pred */
            aload 11 /* commonParameterSequence */
            invokestatic java.lang.invoke.MethodHandles.fillParameterTypes:(Ljava/util/List;Ljava/util/List;)Ljava/util/List;
            invokestatic java.lang.invoke.MethodHandles.fixArities:(Ljava/util/List;)Ljava/util/List;
            astore 14 /* fpred */
        start local 14 // java.util.List fpred
        54: .line 6421
            aload 4 /* fini */
            aload 11 /* commonParameterSequence */
            invokestatic java.lang.invoke.MethodHandles.fillParameterTypes:(Ljava/util/List;Ljava/util/List;)Ljava/util/List;
            invokestatic java.lang.invoke.MethodHandles.fixArities:(Ljava/util/List;)Ljava/util/List;
            astore 15 /* ffini */
        start local 15 // java.util.List ffini
        55: .line 6423
            getstatic java.lang.invoke.MethodHandles.$assertionsDisabled:Z
            ifne 57
            aload 12 /* finit */
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/lang/invoke/MethodHandle.type()Ljava/lang/invoke/MethodType; (5)
                  (Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodType;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/lang/invoke/MethodType.parameterList()Ljava/util/List; (5)
                  (Ljava/lang/invoke/MethodType;)Ljava/util/List;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
        56: .line 6424
            aload 8 /* commonSuffix */
            invokedynamic test(Ljava/util/List;)Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  java/lang/invoke/MethodHandles.lambda$10(Ljava/util/List;Ljava/util/List;)Z (6)
                  (Ljava/util/List;)Z
            invokeinterface java.util.stream.Stream.allMatch:(Ljava/util/function/Predicate;)Z
            ifne 57
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        57: .line 6425
      StackMap locals: java.lang.invoke.MethodHandle[][] java.util.List java.util.List java.util.List java.util.List int java.util.List java.util.List java.util.List java.util.stream.Stream java.lang.Class java.util.List java.util.List java.util.List java.util.List java.util.List
      StackMap stack:
            getstatic java.lang.invoke.MethodHandles.$assertionsDisabled:Z
            ifne 59
            iconst_3
            anewarray java.util.List
            dup
            iconst_0
            aload 13 /* fstep */
            aastore
            dup
            iconst_1
            aload 14 /* fpred */
            aastore
            dup
            iconst_2
            aload 15 /* ffini */
            aastore
            invokestatic java.util.stream.Stream.of:([Ljava/lang/Object;)Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/util/Collection.stream()Ljava/util/stream/Stream; (9 itf)
                  (Ljava/util/List;)Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/lang/invoke/MethodHandle.type()Ljava/lang/invoke/MethodType; (5)
                  (Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodType;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/lang/invoke/MethodType.parameterList()Ljava/util/List; (5)
                  (Ljava/lang/invoke/MethodType;)Ljava/util/List;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
        58: .line 6426
            aload 11 /* commonParameterSequence */
            invokedynamic test(Ljava/util/List;)Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  java/lang/invoke/MethodHandles.lambda$14(Ljava/util/List;Ljava/util/List;)Z (6)
                  (Ljava/util/List;)Z
            invokeinterface java.util.stream.Stream.allMatch:(Ljava/util/function/Predicate;)Z
            ifne 59
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        59: .line 6428
      StackMap locals:
      StackMap stack:
            aload 10 /* loopReturnType */
            aload 8 /* commonSuffix */
            aload 12 /* finit */
            aload 13 /* fstep */
            aload 14 /* fpred */
            aload 15 /* ffini */
            invokestatic java.lang.invoke.MethodHandleImpl.makeLoop:(Ljava/lang/Class;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 15 // java.util.List ffini
        end local 14 // java.util.List fpred
        end local 13 // java.util.List fstep
        end local 12 // java.util.List finit
        end local 11 // java.util.List commonParameterSequence
        end local 10 // java.lang.Class loopReturnType
        end local 9 // java.util.stream.Stream cstream
        end local 8 // java.util.List commonSuffix
        end local 7 // java.util.List commonPrefix
        end local 6 // java.util.List iterationVariableTypes
        end local 5 // int nclauses
        end local 4 // java.util.List fini
        end local 3 // java.util.List pred
        end local 2 // java.util.List step
        end local 1 // java.util.List init
        end local 0 // java.lang.invoke.MethodHandle[][] clauses
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   60     0                  clauses  [[Ljava/lang/invoke/MethodHandle;
            2   60     1                     init  Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
            3   60     2                     step  Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
            4   60     3                     pred  Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
            5   60     4                     fini  Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
            8   60     5                 nclauses  I
            9   60     6   iterationVariableTypes  Ljava/util/List<Ljava/lang/Class<*>;>;
           10   25     7                        i  I
           12   23     8                       in  Ljava/lang/invoke/MethodHandle;
           13   23     9                       st  Ljava/lang/invoke/MethodHandle;
           28   60     7             commonPrefix  Ljava/util/List<Ljava/lang/Class<*>;>;
           29   60     8             commonSuffix  Ljava/util/List<Ljava/lang/Class<*>;>;
           33   60     9                  cstream  Ljava/util/stream/Stream<Ljava/lang/Class<*>;>;
           34   60    10           loopReturnType  Ljava/lang/Class<*>;
           36   60    11  commonParameterSequence  Ljava/util/List<Ljava/lang/Class<*>;>;
           39   51    12                        i  I
           41   49    13                        t  Ljava/lang/Class<*>;
           52   60    12                    finit  Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
           53   60    13                    fstep  Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
           54   60    14                    fpred  Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
           55   60    15                    ffini  Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
    MethodParameters:
         Name  Flags
      clauses  

  private static void loopChecks0(java.lang.invoke.MethodHandle[][]);
    descriptor: ([[Ljava/lang/invoke/MethodHandle;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.invoke.MethodHandle[][] clauses
         0: .line 6432
            aload 0 /* clauses */
            ifnull 1
            aload 0 /* clauses */
            arraylength
            ifne 2
         1: .line 6433
      StackMap locals:
      StackMap stack:
            ldc "null or no clauses passed"
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
         2: .line 6435
      StackMap locals:
      StackMap stack:
            aload 0 /* clauses */
            invokestatic java.util.stream.Stream.of:([Ljava/lang/Object;)Ljava/util/stream/Stream;
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  java/util/Objects.isNull(Ljava/lang/Object;)Z (6)
                  ([Ljava/lang/invoke/MethodHandle;)Z
            invokeinterface java.util.stream.Stream.anyMatch:(Ljava/util/function/Predicate;)Z
            ifeq 4
         3: .line 6436
            ldc "null clauses are not allowed"
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
         4: .line 6438
      StackMap locals:
      StackMap stack:
            aload 0 /* clauses */
            invokestatic java.util.stream.Stream.of:([Ljava/lang/Object;)Ljava/util/stream/Stream;
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  java/lang/invoke/MethodHandles.lambda$16([Ljava/lang/invoke/MethodHandle;)Z (6)
                  ([Ljava/lang/invoke/MethodHandle;)Z
            invokeinterface java.util.stream.Stream.anyMatch:(Ljava/util/function/Predicate;)Z
            ifeq 6
         5: .line 6439
            ldc "All loop clauses must be represented as MethodHandle arrays with at most 4 elements."
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
         6: .line 6441
      StackMap locals:
      StackMap stack:
            return
        end local 0 // java.lang.invoke.MethodHandle[][] clauses
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0  clauses  [[Ljava/lang/invoke/MethodHandle;
    MethodParameters:
         Name  Flags
      clauses  

  private static void loopChecks1a(int, java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle);
    descriptor: (ILjava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // int i
        start local 1 // java.lang.invoke.MethodHandle in
        start local 2 // java.lang.invoke.MethodHandle st
         0: .line 6444
            aload 1 /* in */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            aload 2 /* st */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            if_acmpeq 4
         1: .line 6445
            new java.lang.StringBuilder
            dup
            ldc "clause "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 0 /* i */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ": init and step return types"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 1 /* in */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
         2: .line 6446
            aload 2 /* st */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
         3: .line 6445
            invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
         4: .line 6448
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.invoke.MethodHandle st
        end local 1 // java.lang.invoke.MethodHandle in
        end local 0 // int i
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0     i  I
            0    5     1    in  Ljava/lang/invoke/MethodHandle;
            0    5     2    st  Ljava/lang/invoke/MethodHandle;
    MethodParameters:
      Name  Flags
      i     
      in    
      st    

  private static java.util.List<java.lang.Class<?>> longestParameterList(java.util.stream.Stream<java.lang.invoke.MethodHandle>, int);
    descriptor: (Ljava/util/stream/Stream;I)Ljava/util/List;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // java.util.stream.Stream mhs
        start local 1 // int skipSize
         0: .line 6451
            invokestatic java.util.List.of:()Ljava/util/List;
            astore 2 /* empty */
        start local 2 // java.util.List empty
         1: .line 6452
            aload 0 /* mhs */
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  java/util/Objects.nonNull(Ljava/lang/Object;)Z (6)
                  (Ljava/lang/invoke/MethodHandle;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
         2: .line 6454
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/lang/invoke/MethodHandle.type()Ljava/lang/invoke/MethodType; (5)
                  (Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodType;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         3: .line 6455
            iload 1 /* skipSize */
            invokedynamic test(I)Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  java/lang/invoke/MethodHandles.lambda$19(ILjava/lang/invoke/MethodType;)Z (6)
                  (Ljava/lang/invoke/MethodType;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
         4: .line 6456
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/lang/invoke/MethodType.parameterList()Ljava/util/List; (5)
                  (Ljava/lang/invoke/MethodType;)Ljava/util/List;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         5: .line 6457
            invokedynamic apply()Ljava/util/function/BinaryOperator;
              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;)Ljava/lang/Object;
                  java/lang/invoke/MethodHandles.lambda$21(Ljava/util/List;Ljava/util/List;)Ljava/util/List; (6)
                  (Ljava/util/List;Ljava/util/List;)Ljava/util/List;
            invokeinterface java.util.stream.Stream.reduce:(Ljava/util/function/BinaryOperator;)Ljava/util/Optional;
            aload 2 /* empty */
            invokevirtual java.util.Optional.orElse:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.List
         6: .line 6452
            astore 3 /* longest */
        start local 3 // java.util.List longest
         7: .line 6458
            aload 3 /* longest */
            invokeinterface java.util.List.size:()I
            ifne 8
            aload 2 /* empty */
            goto 9
      StackMap locals: java.util.List java.util.List
      StackMap stack:
         8: aload 3 /* longest */
            iload 1 /* skipSize */
            aload 3 /* longest */
            invokeinterface java.util.List.size:()I
            invokeinterface java.util.List.subList:(II)Ljava/util/List;
      StackMap locals:
      StackMap stack: java.util.List
         9: areturn
        end local 3 // java.util.List longest
        end local 2 // java.util.List empty
        end local 1 // int skipSize
        end local 0 // java.util.stream.Stream mhs
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   10     0       mhs  Ljava/util/stream/Stream<Ljava/lang/invoke/MethodHandle;>;
            0   10     1  skipSize  I
            1   10     2     empty  Ljava/util/List<Ljava/lang/Class<*>;>;
            7   10     3   longest  Ljava/util/List<Ljava/lang/Class<*>;>;
    Signature: (Ljava/util/stream/Stream<Ljava/lang/invoke/MethodHandle;>;I)Ljava/util/List<Ljava/lang/Class<*>;>;
    MethodParameters:
          Name  Flags
      mhs       
      skipSize  

  private static java.util.List<java.lang.Class<?>> longestParameterList(java.util.List<java.util.List<java.lang.Class<?>>>);
    descriptor: (Ljava/util/List;)Ljava/util/List;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.util.List lists
         0: .line 6462
            invokestatic java.util.List.of:()Ljava/util/List;
            astore 1 /* empty */
        start local 1 // java.util.List empty
         1: .line 6463
            aload 0 /* lists */
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/BinaryOperator;
              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;)Ljava/lang/Object;
                  java/lang/invoke/MethodHandles.lambda$22(Ljava/util/List;Ljava/util/List;)Ljava/util/List; (6)
                  (Ljava/util/List;Ljava/util/List;)Ljava/util/List;
            invokeinterface java.util.stream.Stream.reduce:(Ljava/util/function/BinaryOperator;)Ljava/util/Optional;
            aload 1 /* empty */
            invokevirtual java.util.Optional.orElse:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.List
            areturn
        end local 1 // java.util.List empty
        end local 0 // java.util.List lists
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0  lists  Ljava/util/List<Ljava/util/List<Ljava/lang/Class<*>;>;>;
            1    2     1  empty  Ljava/util/List<Ljava/lang/Class<*>;>;
    Signature: (Ljava/util/List<Ljava/util/List<Ljava/lang/Class<*>;>;>;)Ljava/util/List<Ljava/lang/Class<*>;>;
    MethodParameters:
       Name  Flags
      lists  

  private static java.util.List<java.lang.Class<?>> buildCommonSuffix(java.util.List<java.lang.invoke.MethodHandle>, java.util.List<java.lang.invoke.MethodHandle>, java.util.List<java.lang.invoke.MethodHandle>, java.util.List<java.lang.invoke.MethodHandle>, int);
    descriptor: (Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;I)Ljava/util/List;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=5
        start local 0 // java.util.List init
        start local 1 // java.util.List step
        start local 2 // java.util.List pred
        start local 3 // java.util.List fini
        start local 4 // int cpSize
         0: .line 6467
            iconst_3
            anewarray java.util.List
            dup
            iconst_0
            aload 1 /* step */
            aastore
            dup
            iconst_1
            aload 2 /* pred */
            aastore
            dup
            iconst_2
            aload 3 /* fini */
            aastore
            invokestatic java.util.stream.Stream.of:([Ljava/lang/Object;)Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/util/Collection.stream()Ljava/util/stream/Stream; (9 itf)
                  (Ljava/util/List;)Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            iload 4 /* cpSize */
            invokestatic java.lang.invoke.MethodHandles.longestParameterList:(Ljava/util/stream/Stream;I)Ljava/util/List;
            astore 5 /* longest1 */
        start local 5 // java.util.List longest1
         1: .line 6468
            aload 0 /* init */
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            iconst_0
            invokestatic java.lang.invoke.MethodHandles.longestParameterList:(Ljava/util/stream/Stream;I)Ljava/util/List;
            astore 6 /* longest2 */
        start local 6 // java.util.List longest2
         2: .line 6469
            iconst_2
            anewarray java.util.List
            dup
            iconst_0
            aload 5 /* longest1 */
            aastore
            dup
            iconst_1
            aload 6 /* longest2 */
            aastore
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokestatic java.lang.invoke.MethodHandles.longestParameterList:(Ljava/util/List;)Ljava/util/List;
            areturn
        end local 6 // java.util.List longest2
        end local 5 // java.util.List longest1
        end local 4 // int cpSize
        end local 3 // java.util.List fini
        end local 2 // java.util.List pred
        end local 1 // java.util.List step
        end local 0 // java.util.List init
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      init  Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
            0    3     1      step  Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
            0    3     2      pred  Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
            0    3     3      fini  Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
            0    3     4    cpSize  I
            1    3     5  longest1  Ljava/util/List<Ljava/lang/Class<*>;>;
            2    3     6  longest2  Ljava/util/List<Ljava/lang/Class<*>;>;
    Signature: (Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;I)Ljava/util/List<Ljava/lang/Class<*>;>;
    MethodParameters:
        Name  Flags
      init    
      step    
      pred    
      fini    
      cpSize  

  private static void loopChecks1b(java.util.List<java.lang.invoke.MethodHandle>, java.util.List<java.lang.Class<?>>);
    descriptor: (Ljava/util/List;Ljava/util/List;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.util.List init
        start local 1 // java.util.List commonSuffix
         0: .line 6473
            aload 0 /* init */
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  java/util/Objects.nonNull(Ljava/lang/Object;)Z (6)
                  (Ljava/lang/invoke/MethodHandle;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/lang/invoke/MethodHandle.type()Ljava/lang/invoke/MethodType; (5)
                  (Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodType;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         1: .line 6474
            aload 1 /* commonSuffix */
            invokedynamic test(Ljava/util/List;)Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  java/lang/invoke/MethodHandles.lambda$26(Ljava/util/List;Ljava/lang/invoke/MethodType;)Z (6)
                  (Ljava/lang/invoke/MethodType;)Z
            invokeinterface java.util.stream.Stream.anyMatch:(Ljava/util/function/Predicate;)Z
            ifeq 5
         2: .line 6475
            new java.lang.StringBuilder
            dup
            ldc "found non-effectively identical init parameter type lists: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* init */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         3: .line 6476
            ldc " (common suffix: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* commonSuffix */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         4: .line 6475
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
         5: .line 6478
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.util.List commonSuffix
        end local 0 // java.util.List init
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    6     0          init  Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
            0    6     1  commonSuffix  Ljava/util/List<Ljava/lang/Class<*>;>;
    Signature: (Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;Ljava/util/List<Ljava/lang/Class<*>;>;)V
    MethodParameters:
              Name  Flags
      init          
      commonSuffix  

  private static void loopChecks1cd(java.util.List<java.lang.invoke.MethodHandle>, java.util.List<java.lang.invoke.MethodHandle>, java.lang.Class<?>);
    descriptor: (Ljava/util/List;Ljava/util/List;Ljava/lang/Class;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.util.List pred
        start local 1 // java.util.List fini
        start local 2 // java.lang.Class loopReturnType
         0: .line 6481
            aload 1 /* fini */
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  java/util/Objects.nonNull(Ljava/lang/Object;)Z (6)
                  (Ljava/lang/invoke/MethodHandle;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/lang/invoke/MethodHandle.type()Ljava/lang/invoke/MethodType; (5)
                  (Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodType;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/lang/invoke/MethodType.returnType()Ljava/lang/Class; (5)
                  (Ljava/lang/invoke/MethodType;)Ljava/lang/Class;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         1: .line 6482
            aload 2 /* loopReturnType */
            invokedynamic test(Ljava/lang/Class;)Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  java/lang/invoke/MethodHandles.lambda$30(Ljava/lang/Class;Ljava/lang/Class;)Z (6)
                  (Ljava/lang/Class;)Z
            invokeinterface java.util.stream.Stream.anyMatch:(Ljava/util/function/Predicate;)Z
            ifeq 5
         2: .line 6483
            new java.lang.StringBuilder
            dup
            ldc "found non-identical finalizer return types: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* fini */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " (return type: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 6484
            aload 2 /* loopReturnType */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         4: .line 6483
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
         5: .line 6487
      StackMap locals:
      StackMap stack:
            aload 0 /* pred */
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  java/util/Objects.nonNull(Ljava/lang/Object;)Z (6)
                  (Ljava/lang/invoke/MethodHandle;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.findFirst:()Ljava/util/Optional;
            invokevirtual java.util.Optional.isPresent:()Z
            ifne 7
         6: .line 6488
            ldc "no predicate found"
            aload 0 /* pred */
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
         7: .line 6490
      StackMap locals:
      StackMap stack:
            aload 0 /* pred */
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  java/util/Objects.nonNull(Ljava/lang/Object;)Z (6)
                  (Ljava/lang/invoke/MethodHandle;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/lang/invoke/MethodHandle.type()Ljava/lang/invoke/MethodType; (5)
                  (Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodType;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/lang/invoke/MethodType.returnType()Ljava/lang/Class; (5)
                  (Ljava/lang/invoke/MethodType;)Ljava/lang/Class;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         8: .line 6491
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  java/lang/invoke/MethodHandles.lambda$35(Ljava/lang/Class;)Z (6)
                  (Ljava/lang/Class;)Z
            invokeinterface java.util.stream.Stream.anyMatch:(Ljava/util/function/Predicate;)Z
            ifeq 10
         9: .line 6492
            ldc "predicates must have boolean return type"
            aload 0 /* pred */
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
        10: .line 6494
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.Class loopReturnType
        end local 1 // java.util.List fini
        end local 0 // java.util.List pred
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   11     0            pred  Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
            0   11     1            fini  Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
            0   11     2  loopReturnType  Ljava/lang/Class<*>;
    Signature: (Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;Ljava/lang/Class<*>;)V
    MethodParameters:
                Name  Flags
      pred            
      fini            
      loopReturnType  

  private static void loopChecks2(java.util.List<java.lang.invoke.MethodHandle>, java.util.List<java.lang.invoke.MethodHandle>, java.util.List<java.lang.invoke.MethodHandle>, java.util.List<java.lang.Class<?>>);
    descriptor: (Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // java.util.List step
        start local 1 // java.util.List pred
        start local 2 // java.util.List fini
        start local 3 // java.util.List commonParameterSequence
         0: .line 6497
            iconst_3
            anewarray java.util.List
            dup
            iconst_0
            aload 0 /* step */
            aastore
            dup
            iconst_1
            aload 1 /* pred */
            aastore
            dup
            iconst_2
            aload 2 /* fini */
            aastore
            invokestatic java.util.stream.Stream.of:([Ljava/lang/Object;)Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/util/Collection.stream()Ljava/util/stream/Stream; (9 itf)
                  (Ljava/util/List;)Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  java/util/Objects.nonNull(Ljava/lang/Object;)Z (6)
                  (Ljava/lang/invoke/MethodHandle;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/lang/invoke/MethodHandle.type()Ljava/lang/invoke/MethodType; (5)
                  (Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodType;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         1: .line 6498
            aload 3 /* commonParameterSequence */
            invokedynamic test(Ljava/util/List;)Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  java/lang/invoke/MethodHandles.lambda$39(Ljava/util/List;Ljava/lang/invoke/MethodType;)Z (6)
                  (Ljava/lang/invoke/MethodType;)Z
            invokeinterface java.util.stream.Stream.anyMatch:(Ljava/util/function/Predicate;)Z
            ifeq 5
         2: .line 6499
            new java.lang.StringBuilder
            dup
            ldc "found non-effectively identical parameter type lists:\nstep: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* step */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         3: .line 6500
            ldc "\npred: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* pred */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "\nfini: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* fini */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " (common parameter sequence: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* commonParameterSequence */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         4: .line 6499
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
         5: .line 6502
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.util.List commonParameterSequence
        end local 2 // java.util.List fini
        end local 1 // java.util.List pred
        end local 0 // java.util.List step
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    6     0                     step  Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
            0    6     1                     pred  Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
            0    6     2                     fini  Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
            0    6     3  commonParameterSequence  Ljava/util/List<Ljava/lang/Class<*>;>;
    Signature: (Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;Ljava/util/List<Ljava/lang/Class<*>;>;)V
    MethodParameters:
                         Name  Flags
      step                     
      pred                     
      fini                     
      commonParameterSequence  

  private static java.util.List<java.lang.invoke.MethodHandle> fillParameterTypes(java.util.List<java.lang.invoke.MethodHandle>, java.util.List<java.lang.Class<?>>);
    descriptor: (Ljava/util/List;Ljava/util/List;)Ljava/util/List;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.util.List hs
        start local 1 // java.util.List targetParams
         0: .line 6505
            aload 0 /* hs */
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            aload 1 /* targetParams */
            invokedynamic apply(Ljava/util/List;)Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/lang/invoke/MethodHandles.lambda$40(Ljava/util/List;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle; (6)
                  (Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         1: .line 6509
            invokestatic java.util.stream.Collectors.toList:()Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.util.List
         2: .line 6505
            areturn
        end local 1 // java.util.List targetParams
        end local 0 // java.util.List hs
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0            hs  Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
            0    3     1  targetParams  Ljava/util/List<Ljava/lang/Class<*>;>;
    Signature: (Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;Ljava/util/List<Ljava/lang/Class<*>;>;)Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
    MethodParameters:
              Name  Flags
      hs            
      targetParams  final

  private static java.util.List<java.lang.invoke.MethodHandle> fixArities(java.util.List<java.lang.invoke.MethodHandle>);
    descriptor: (Ljava/util/List;)Ljava/util/List;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.util.List hs
         0: .line 6513
            aload 0 /* hs */
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/lang/invoke/MethodHandle.asFixedArity()Ljava/lang/invoke/MethodHandle; (5)
                  (Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            invokestatic java.util.stream.Collectors.toList:()Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.util.List
            areturn
        end local 0 // java.util.List hs
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0    hs  Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
    Signature: (Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;)Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
    MethodParameters:
      Name  Flags
      hs    

  public static java.lang.invoke.MethodHandle whileLoop(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle);
    descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // java.lang.invoke.MethodHandle init
        start local 1 // java.lang.invoke.MethodHandle pred
        start local 2 // java.lang.invoke.MethodHandle body
         0: .line 6623
            aload 0 /* init */
            aload 1 /* pred */
            aload 2 /* body */
            invokestatic java.lang.invoke.MethodHandles.whileLoopChecks:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)V
         1: .line 6624
            aload 2 /* body */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            invokestatic java.lang.invoke.MethodHandles.identityOrVoid:(Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            astore 3 /* fini */
        start local 3 // java.lang.invoke.MethodHandle fini
         2: .line 6625
            iconst_4
            anewarray java.lang.invoke.MethodHandle
            dup
            iconst_2
            aload 1 /* pred */
            aastore
            dup
            iconst_3
            aload 3 /* fini */
            aastore
            astore 4 /* checkExit */
        start local 4 // java.lang.invoke.MethodHandle[] checkExit
         3: .line 6626
            iconst_2
            anewarray java.lang.invoke.MethodHandle
            dup
            iconst_0
            aload 0 /* init */
            aastore
            dup
            iconst_1
            aload 2 /* body */
            aastore
            astore 5 /* varBody */
        start local 5 // java.lang.invoke.MethodHandle[] varBody
         4: .line 6627
            iconst_2
            anewarray java.lang.invoke.MethodHandle[]
            dup
            iconst_0
            aload 4 /* checkExit */
            aastore
            dup
            iconst_1
            aload 5 /* varBody */
            aastore
            invokestatic java.lang.invoke.MethodHandles.loop:([[Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 5 // java.lang.invoke.MethodHandle[] varBody
        end local 4 // java.lang.invoke.MethodHandle[] checkExit
        end local 3 // java.lang.invoke.MethodHandle fini
        end local 2 // java.lang.invoke.MethodHandle body
        end local 1 // java.lang.invoke.MethodHandle pred
        end local 0 // java.lang.invoke.MethodHandle init
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       init  Ljava/lang/invoke/MethodHandle;
            0    5     1       pred  Ljava/lang/invoke/MethodHandle;
            0    5     2       body  Ljava/lang/invoke/MethodHandle;
            2    5     3       fini  Ljava/lang/invoke/MethodHandle;
            3    5     4  checkExit  [Ljava/lang/invoke/MethodHandle;
            4    5     5    varBody  [Ljava/lang/invoke/MethodHandle;
    MethodParameters:
      Name  Flags
      init  
      pred  
      body  

  public static java.lang.invoke.MethodHandle doWhileLoop(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle);
    descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // java.lang.invoke.MethodHandle init
        start local 1 // java.lang.invoke.MethodHandle body
        start local 2 // java.lang.invoke.MethodHandle pred
         0: .line 6727
            aload 0 /* init */
            aload 2 /* pred */
            aload 1 /* body */
            invokestatic java.lang.invoke.MethodHandles.whileLoopChecks:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)V
         1: .line 6728
            aload 1 /* body */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            invokestatic java.lang.invoke.MethodHandles.identityOrVoid:(Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            astore 3 /* fini */
        start local 3 // java.lang.invoke.MethodHandle fini
         2: .line 6729
            iconst_4
            anewarray java.lang.invoke.MethodHandle
            dup
            iconst_0
            aload 0 /* init */
            aastore
            dup
            iconst_1
            aload 1 /* body */
            aastore
            dup
            iconst_2
            aload 2 /* pred */
            aastore
            dup
            iconst_3
            aload 3 /* fini */
            aastore
            astore 4 /* clause */
        start local 4 // java.lang.invoke.MethodHandle[] clause
         3: .line 6730
            iconst_1
            anewarray java.lang.invoke.MethodHandle[]
            dup
            iconst_0
            aload 4 /* clause */
            aastore
            invokestatic java.lang.invoke.MethodHandles.loop:([[Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 4 // java.lang.invoke.MethodHandle[] clause
        end local 3 // java.lang.invoke.MethodHandle fini
        end local 2 // java.lang.invoke.MethodHandle pred
        end local 1 // java.lang.invoke.MethodHandle body
        end local 0 // java.lang.invoke.MethodHandle init
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    init  Ljava/lang/invoke/MethodHandle;
            0    4     1    body  Ljava/lang/invoke/MethodHandle;
            0    4     2    pred  Ljava/lang/invoke/MethodHandle;
            2    4     3    fini  Ljava/lang/invoke/MethodHandle;
            3    4     4  clause  [Ljava/lang/invoke/MethodHandle;
    MethodParameters:
      Name  Flags
      init  
      body  
      pred  

  private static void whileLoopChecks(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle);
    descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=9, args_size=3
        start local 0 // java.lang.invoke.MethodHandle init
        start local 1 // java.lang.invoke.MethodHandle pred
        start local 2 // java.lang.invoke.MethodHandle body
         0: .line 6734
            aload 1 /* pred */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 6735
            aload 2 /* body */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 6736
            aload 2 /* body */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 3 /* bodyType */
        start local 3 // java.lang.invoke.MethodType bodyType
         3: .line 6737
            aload 3 /* bodyType */
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            astore 4 /* returnType */
        start local 4 // java.lang.Class returnType
         4: .line 6738
            aload 3 /* bodyType */
            invokevirtual java.lang.invoke.MethodType.parameterList:()Ljava/util/List;
            astore 5 /* innerList */
        start local 5 // java.util.List innerList
         5: .line 6739
            aload 5 /* innerList */
            astore 6 /* outerList */
        start local 6 // java.util.List outerList
         6: .line 6740
            aload 4 /* returnType */
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            if_acmpeq 11
         7: .line 6742
            aload 5 /* innerList */
            invokeinterface java.util.List.size:()I
            ifeq 8
            aload 5 /* innerList */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            aload 4 /* returnType */
            if_acmpeq 10
         8: .line 6744
      StackMap locals: java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.invoke.MethodType java.lang.Class java.util.List java.util.List
      StackMap stack:
            aload 3 /* bodyType */
            iconst_0
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            aload 4 /* returnType */
            aastore
            invokevirtual java.lang.invoke.MethodType.insertParameterTypes:(I[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
            astore 7 /* expected */
        start local 7 // java.lang.invoke.MethodType expected
         9: .line 6745
            ldc "body function"
            aload 3 /* bodyType */
            aload 7 /* expected */
            invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
        end local 7 // java.lang.invoke.MethodType expected
        10: .line 6747
      StackMap locals:
      StackMap stack:
            aload 5 /* innerList */
            iconst_1
            aload 5 /* innerList */
            invokeinterface java.util.List.size:()I
            invokeinterface java.util.List.subList:(II)Ljava/util/List;
            astore 6 /* outerList */
        11: .line 6749
      StackMap locals:
      StackMap stack:
            aload 1 /* pred */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 7 /* predType */
        start local 7 // java.lang.invoke.MethodType predType
        12: .line 6750
            aload 7 /* predType */
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            if_acmpne 14
        13: .line 6751
            aload 7 /* predType */
            iconst_0
            aload 5 /* innerList */
            invokevirtual java.lang.invoke.MethodType.effectivelyIdenticalParameters:(ILjava/util/List;)Z
            ifne 15
        14: .line 6752
      StackMap locals: java.lang.invoke.MethodType
      StackMap stack:
            ldc "loop predicate"
            aload 7 /* predType */
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            aload 5 /* innerList */
            invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;Ljava/util/List;)Ljava/lang/invoke/MethodType;
            invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
        15: .line 6754
      StackMap locals:
      StackMap stack:
            aload 0 /* init */
            ifnull 20
        16: .line 6755
            aload 0 /* init */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 8 /* initType */
        start local 8 // java.lang.invoke.MethodType initType
        17: .line 6756
            aload 8 /* initType */
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            aload 4 /* returnType */
            if_acmpne 19
        18: .line 6757
            aload 8 /* initType */
            iconst_0
            aload 6 /* outerList */
            invokevirtual java.lang.invoke.MethodType.effectivelyIdenticalParameters:(ILjava/util/List;)Z
            ifne 20
        19: .line 6758
      StackMap locals: java.lang.invoke.MethodType
      StackMap stack:
            ldc "loop initializer"
            aload 8 /* initType */
            aload 4 /* returnType */
            aload 6 /* outerList */
            invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;Ljava/util/List;)Ljava/lang/invoke/MethodType;
            invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
        end local 8 // java.lang.invoke.MethodType initType
        20: .line 6761
      StackMap locals:
      StackMap stack:
            return
        end local 7 // java.lang.invoke.MethodType predType
        end local 6 // java.util.List outerList
        end local 5 // java.util.List innerList
        end local 4 // java.lang.Class returnType
        end local 3 // java.lang.invoke.MethodType bodyType
        end local 2 // java.lang.invoke.MethodHandle body
        end local 1 // java.lang.invoke.MethodHandle pred
        end local 0 // java.lang.invoke.MethodHandle init
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   21     0        init  Ljava/lang/invoke/MethodHandle;
            0   21     1        pred  Ljava/lang/invoke/MethodHandle;
            0   21     2        body  Ljava/lang/invoke/MethodHandle;
            3   21     3    bodyType  Ljava/lang/invoke/MethodType;
            4   21     4  returnType  Ljava/lang/Class<*>;
            5   21     5   innerList  Ljava/util/List<Ljava/lang/Class<*>;>;
            6   21     6   outerList  Ljava/util/List<Ljava/lang/Class<*>;>;
            9   10     7    expected  Ljava/lang/invoke/MethodType;
           12   21     7    predType  Ljava/lang/invoke/MethodType;
           17   20     8    initType  Ljava/lang/invoke/MethodType;
    MethodParameters:
      Name  Flags
      init  
      pred  
      body  

  public static java.lang.invoke.MethodHandle countedLoop(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle);
    descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // java.lang.invoke.MethodHandle iterations
        start local 1 // java.lang.invoke.MethodHandle init
        start local 2 // java.lang.invoke.MethodHandle body
         0: .line 6911
            aload 0 /* iterations */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokestatic java.lang.invoke.MethodHandles.empty:(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            aload 0 /* iterations */
            aload 1 /* init */
            aload 2 /* body */
            invokestatic java.lang.invoke.MethodHandles.countedLoop:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 2 // java.lang.invoke.MethodHandle body
        end local 1 // java.lang.invoke.MethodHandle init
        end local 0 // java.lang.invoke.MethodHandle iterations
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0  iterations  Ljava/lang/invoke/MethodHandle;
            0    1     1        init  Ljava/lang/invoke/MethodHandle;
            0    1     2        body  Ljava/lang/invoke/MethodHandle;
    MethodParameters:
            Name  Flags
      iterations  
      init        
      body        

  public static java.lang.invoke.MethodHandle countedLoop(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle);
    descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=12, args_size=4
        start local 0 // java.lang.invoke.MethodHandle start
        start local 1 // java.lang.invoke.MethodHandle end
        start local 2 // java.lang.invoke.MethodHandle init
        start local 3 // java.lang.invoke.MethodHandle body
         0: .line 7035
            aload 0 /* start */
            aload 1 /* end */
            aload 2 /* init */
            aload 3 /* body */
            invokestatic java.lang.invoke.MethodHandles.countedLoopChecks:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)V
         1: .line 7036
            aload 0 /* start */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            astore 4 /* counterType */
        start local 4 // java.lang.Class counterType
         2: .line 7037
            aload 1 /* end */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            pop
         3: .line 7038
            aload 3 /* body */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            astore 5 /* returnType */
        start local 5 // java.lang.Class returnType
         4: .line 7039
            bipush 7
            invokestatic java.lang.invoke.MethodHandleImpl.getConstantHandle:(I)Ljava/lang/invoke/MethodHandle;
            astore 6 /* incr */
        start local 6 // java.lang.invoke.MethodHandle incr
         5: .line 7040
            bipush 6
            invokestatic java.lang.invoke.MethodHandleImpl.getConstantHandle:(I)Ljava/lang/invoke/MethodHandle;
            astore 7 /* pred */
        start local 7 // java.lang.invoke.MethodHandle pred
         6: .line 7041
            aconst_null
            astore 8 /* retv */
        start local 8 // java.lang.invoke.MethodHandle retv
         7: .line 7042
            aload 5 /* returnType */
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            if_acmpeq 11
         8: .line 7043
            aload 6 /* incr */
            iconst_1
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            aload 5 /* returnType */
            aastore
            invokestatic java.lang.invoke.MethodHandles.dropArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            astore 6 /* incr */
         9: .line 7044
            aload 7 /* pred */
            iconst_1
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            aload 5 /* returnType */
            aastore
            invokestatic java.lang.invoke.MethodHandles.dropArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            astore 7 /* pred */
        10: .line 7045
            aload 5 /* returnType */
            invokestatic java.lang.invoke.MethodHandles.identity:(Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            iconst_0
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            aload 4 /* counterType */
            aastore
            invokestatic java.lang.invoke.MethodHandles.dropArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            astore 8 /* retv */
        11: .line 7047
      StackMap locals: java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.Class java.lang.Class java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle
      StackMap stack:
            aload 3 /* body */
            iconst_0
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            aload 4 /* counterType */
            aastore
            invokestatic java.lang.invoke.MethodHandles.dropArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            astore 3 /* body */
        12: .line 7049
            iconst_4
            anewarray java.lang.invoke.MethodHandle
            dup
            iconst_0
            aload 1 /* end */
            aastore
            dup
            iconst_2
            aload 7 /* pred */
            aastore
            dup
            iconst_3
            aload 8 /* retv */
            aastore
            astore 9 /* loopLimit */
        start local 9 // java.lang.invoke.MethodHandle[] loopLimit
        13: .line 7050
            iconst_2
            anewarray java.lang.invoke.MethodHandle
            dup
            iconst_0
            aload 2 /* init */
            aastore
            dup
            iconst_1
            aload 3 /* body */
            aastore
            astore 10 /* bodyClause */
        start local 10 // java.lang.invoke.MethodHandle[] bodyClause
        14: .line 7051
            iconst_2
            anewarray java.lang.invoke.MethodHandle
            dup
            iconst_0
            aload 0 /* start */
            aastore
            dup
            iconst_1
            aload 6 /* incr */
            aastore
            astore 11 /* indexVar */
        start local 11 // java.lang.invoke.MethodHandle[] indexVar
        15: .line 7052
            iconst_3
            anewarray java.lang.invoke.MethodHandle[]
            dup
            iconst_0
            aload 9 /* loopLimit */
            aastore
            dup
            iconst_1
            aload 10 /* bodyClause */
            aastore
            dup
            iconst_2
            aload 11 /* indexVar */
            aastore
            invokestatic java.lang.invoke.MethodHandles.loop:([[Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 11 // java.lang.invoke.MethodHandle[] indexVar
        end local 10 // java.lang.invoke.MethodHandle[] bodyClause
        end local 9 // java.lang.invoke.MethodHandle[] loopLimit
        end local 8 // java.lang.invoke.MethodHandle retv
        end local 7 // java.lang.invoke.MethodHandle pred
        end local 6 // java.lang.invoke.MethodHandle incr
        end local 5 // java.lang.Class returnType
        end local 4 // java.lang.Class counterType
        end local 3 // java.lang.invoke.MethodHandle body
        end local 2 // java.lang.invoke.MethodHandle init
        end local 1 // java.lang.invoke.MethodHandle end
        end local 0 // java.lang.invoke.MethodHandle start
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   16     0        start  Ljava/lang/invoke/MethodHandle;
            0   16     1          end  Ljava/lang/invoke/MethodHandle;
            0   16     2         init  Ljava/lang/invoke/MethodHandle;
            0   16     3         body  Ljava/lang/invoke/MethodHandle;
            2   16     4  counterType  Ljava/lang/Class<*>;
            4   16     5   returnType  Ljava/lang/Class<*>;
            5   16     6         incr  Ljava/lang/invoke/MethodHandle;
            6   16     7         pred  Ljava/lang/invoke/MethodHandle;
            7   16     8         retv  Ljava/lang/invoke/MethodHandle;
           13   16     9    loopLimit  [Ljava/lang/invoke/MethodHandle;
           14   16    10   bodyClause  [Ljava/lang/invoke/MethodHandle;
           15   16    11     indexVar  [Ljava/lang/invoke/MethodHandle;
    MethodParameters:
       Name  Flags
      start  
      end    
      init   
      body   

  private static void countedLoopChecks(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle);
    descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=12, args_size=4
        start local 0 // java.lang.invoke.MethodHandle start
        start local 1 // java.lang.invoke.MethodHandle end
        start local 2 // java.lang.invoke.MethodHandle init
        start local 3 // java.lang.invoke.MethodHandle body
         0: .line 7056
            aload 0 /* start */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 7057
            aload 1 /* end */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 7058
            aload 3 /* body */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 7059
            aload 0 /* start */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            astore 4 /* counterType */
        start local 4 // java.lang.Class counterType
         4: .line 7060
            aload 4 /* counterType */
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            if_acmpeq 7
         5: .line 7061
            aload 0 /* start */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            invokevirtual java.lang.invoke.MethodType.changeReturnType:(Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
            astore 5 /* expected */
        start local 5 // java.lang.invoke.MethodType expected
         6: .line 7062
            ldc "start function"
            aload 0 /* start */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            aload 5 /* expected */
            invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
        end local 5 // java.lang.invoke.MethodType expected
         7: .line 7063
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 1 /* end */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            aload 4 /* counterType */
            if_acmpeq 10
         8: .line 7064
            aload 1 /* end */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            aload 4 /* counterType */
            invokevirtual java.lang.invoke.MethodType.changeReturnType:(Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
            astore 5 /* expected */
        start local 5 // java.lang.invoke.MethodType expected
         9: .line 7065
            ldc "end function"
            aload 1 /* end */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            aload 5 /* expected */
            invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
        end local 5 // java.lang.invoke.MethodType expected
        10: .line 7067
      StackMap locals:
      StackMap stack:
            aload 3 /* body */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 5 /* bodyType */
        start local 5 // java.lang.invoke.MethodType bodyType
        11: .line 7068
            aload 5 /* bodyType */
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            astore 6 /* returnType */
        start local 6 // java.lang.Class returnType
        12: .line 7069
            aload 5 /* bodyType */
            invokevirtual java.lang.invoke.MethodType.parameterList:()Ljava/util/List;
            astore 7 /* innerList */
        start local 7 // java.util.List innerList
        13: .line 7071
            aload 6 /* returnType */
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            if_acmpne 14
            iconst_0
            goto 15
      StackMap locals: java.lang.invoke.MethodType java.lang.Class java.util.List
      StackMap stack:
        14: iconst_1
      StackMap locals:
      StackMap stack: int
        15: istore 8 /* vsize */
        start local 8 // int vsize
        16: .line 7072
            iload 8 /* vsize */
            ifeq 19
            aload 7 /* innerList */
            invokeinterface java.util.List.size:()I
            ifeq 17
            aload 7 /* innerList */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            aload 6 /* returnType */
            if_acmpeq 19
        17: .line 7074
      StackMap locals: int
      StackMap stack:
            aload 5 /* bodyType */
            iconst_0
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            aload 6 /* returnType */
            aastore
            invokevirtual java.lang.invoke.MethodType.insertParameterTypes:(I[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
            astore 9 /* expected */
        start local 9 // java.lang.invoke.MethodType expected
        18: .line 7075
            ldc "body function"
            aload 5 /* bodyType */
            aload 9 /* expected */
            invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
        end local 9 // java.lang.invoke.MethodType expected
        19: .line 7076
      StackMap locals:
      StackMap stack:
            aload 7 /* innerList */
            invokeinterface java.util.List.size:()I
            iload 8 /* vsize */
            if_icmple 20
            aload 7 /* innerList */
            iload 8 /* vsize */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            aload 4 /* counterType */
            if_acmpeq 22
        20: .line 7078
      StackMap locals:
      StackMap stack:
            aload 5 /* bodyType */
            iload 8 /* vsize */
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            aload 4 /* counterType */
            aastore
            invokevirtual java.lang.invoke.MethodType.insertParameterTypes:(I[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
            astore 9 /* expected */
        start local 9 // java.lang.invoke.MethodType expected
        21: .line 7079
            ldc "body function"
            aload 5 /* bodyType */
            aload 9 /* expected */
            invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
        end local 9 // java.lang.invoke.MethodType expected
        22: .line 7081
      StackMap locals:
      StackMap stack:
            aload 7 /* innerList */
            iload 8 /* vsize */
            iconst_1
            iadd
            aload 7 /* innerList */
            invokeinterface java.util.List.size:()I
            invokeinterface java.util.List.subList:(II)Ljava/util/List;
            astore 9 /* outerList */
        start local 9 // java.util.List outerList
        23: .line 7082
            aload 9 /* outerList */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 26
        24: .line 7084
            aload 1 /* end */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.parameterList:()Ljava/util/List;
            astore 9 /* outerList */
        25: .line 7085
            aload 5 /* bodyType */
            iload 8 /* vsize */
            iconst_1
            iadd
            aload 9 /* outerList */
            invokevirtual java.lang.invoke.MethodType.insertParameterTypes:(ILjava/util/List;)Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.parameterList:()Ljava/util/List;
            astore 7 /* innerList */
        26: .line 7087
      StackMap locals: java.util.List
      StackMap stack:
            aload 4 /* counterType */
            aload 9 /* outerList */
            invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;Ljava/util/List;)Ljava/lang/invoke/MethodType;
            astore 10 /* expected */
        start local 10 // java.lang.invoke.MethodType expected
        27: .line 7088
            aload 0 /* start */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            iconst_0
            aload 9 /* outerList */
            invokevirtual java.lang.invoke.MethodType.effectivelyIdenticalParameters:(ILjava/util/List;)Z
            ifne 29
        28: .line 7089
            ldc "start parameter types"
            aload 0 /* start */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            aload 10 /* expected */
            invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
        29: .line 7091
      StackMap locals: java.lang.invoke.MethodType
      StackMap stack:
            aload 1 /* end */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            aload 0 /* start */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            if_acmpeq 32
        30: .line 7092
            aload 1 /* end */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            iconst_0
            aload 9 /* outerList */
            invokevirtual java.lang.invoke.MethodType.effectivelyIdenticalParameters:(ILjava/util/List;)Z
            ifne 32
        31: .line 7093
            ldc "end parameter types"
            aload 1 /* end */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            aload 10 /* expected */
            invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
        32: .line 7095
      StackMap locals:
      StackMap stack:
            aload 2 /* init */
            ifnull 37
        33: .line 7096
            aload 2 /* init */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 11 /* initType */
        start local 11 // java.lang.invoke.MethodType initType
        34: .line 7097
            aload 11 /* initType */
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            aload 6 /* returnType */
            if_acmpne 36
        35: .line 7098
            aload 11 /* initType */
            iconst_0
            aload 9 /* outerList */
            invokevirtual java.lang.invoke.MethodType.effectivelyIdenticalParameters:(ILjava/util/List;)Z
            ifne 37
        36: .line 7099
      StackMap locals: java.lang.invoke.MethodType
      StackMap stack:
            ldc "loop initializer"
            aload 11 /* initType */
            aload 6 /* returnType */
            aload 9 /* outerList */
            invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;Ljava/util/List;)Ljava/lang/invoke/MethodType;
            invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
        end local 11 // java.lang.invoke.MethodType initType
        37: .line 7102
      StackMap locals:
      StackMap stack:
            return
        end local 10 // java.lang.invoke.MethodType expected
        end local 9 // java.util.List outerList
        end local 8 // int vsize
        end local 7 // java.util.List innerList
        end local 6 // java.lang.Class returnType
        end local 5 // java.lang.invoke.MethodType bodyType
        end local 4 // java.lang.Class counterType
        end local 3 // java.lang.invoke.MethodHandle body
        end local 2 // java.lang.invoke.MethodHandle init
        end local 1 // java.lang.invoke.MethodHandle end
        end local 0 // java.lang.invoke.MethodHandle start
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   38     0        start  Ljava/lang/invoke/MethodHandle;
            0   38     1          end  Ljava/lang/invoke/MethodHandle;
            0   38     2         init  Ljava/lang/invoke/MethodHandle;
            0   38     3         body  Ljava/lang/invoke/MethodHandle;
            4   38     4  counterType  Ljava/lang/Class<*>;
            6    7     5     expected  Ljava/lang/invoke/MethodType;
            9   10     5     expected  Ljava/lang/invoke/MethodType;
           11   38     5     bodyType  Ljava/lang/invoke/MethodType;
           12   38     6   returnType  Ljava/lang/Class<*>;
           13   38     7    innerList  Ljava/util/List<Ljava/lang/Class<*>;>;
           16   38     8        vsize  I
           18   19     9     expected  Ljava/lang/invoke/MethodType;
           21   22     9     expected  Ljava/lang/invoke/MethodType;
           23   38     9    outerList  Ljava/util/List<Ljava/lang/Class<*>;>;
           27   38    10     expected  Ljava/lang/invoke/MethodType;
           34   37    11     initType  Ljava/lang/invoke/MethodType;
    MethodParameters:
       Name  Flags
      start  
      end    
      init   
      body   

  public static java.lang.invoke.MethodHandle iteratedLoop(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle);
    descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=13, args_size=3
        start local 0 // java.lang.invoke.MethodHandle iterator
        start local 1 // java.lang.invoke.MethodHandle init
        start local 2 // java.lang.invoke.MethodHandle body
         0: .line 7246
            aload 0 /* iterator */
            aload 1 /* init */
            aload 2 /* body */
            invokestatic java.lang.invoke.MethodHandles.iteratedLoopChecks:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/Class;
            astore 3 /* iterableType */
        start local 3 // java.lang.Class iterableType
         1: .line 7247
            aload 2 /* body */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            astore 4 /* returnType */
        start local 4 // java.lang.Class returnType
         2: .line 7248
            bipush 9
            invokestatic java.lang.invoke.MethodHandleImpl.getConstantHandle:(I)Ljava/lang/invoke/MethodHandle;
            astore 5 /* hasNext */
        start local 5 // java.lang.invoke.MethodHandle hasNext
         3: .line 7249
            bipush 10
            invokestatic java.lang.invoke.MethodHandleImpl.getConstantHandle:(I)Ljava/lang/invoke/MethodHandle;
            astore 6 /* nextRaw */
        start local 6 // java.lang.invoke.MethodHandle nextRaw
         4: .line 7254
            aload 0 /* iterator */
            ifnonnull 8
         5: .line 7256
            bipush 8
            invokestatic java.lang.invoke.MethodHandleImpl.getConstantHandle:(I)Ljava/lang/invoke/MethodHandle;
            astore 7 /* startIter */
        start local 7 // java.lang.invoke.MethodHandle startIter
         6: .line 7257
            aload 7 /* startIter */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            iconst_0
            aload 3 /* iterableType */
            invokevirtual java.lang.invoke.MethodType.changeParameterType:(ILjava/lang/Class;)Ljava/lang/invoke/MethodType;
            astore 9 /* iteratorType */
        start local 9 // java.lang.invoke.MethodType iteratorType
         7: .line 7258
            goto 10
        end local 9 // java.lang.invoke.MethodType iteratorType
        end local 7 // java.lang.invoke.MethodHandle startIter
         8: .line 7260
      StackMap locals: java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.Class java.lang.Class java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle
      StackMap stack:
            aload 0 /* iterator */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            ldc Ljava/util/Iterator;
            invokevirtual java.lang.invoke.MethodType.changeReturnType:(Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
            astore 9 /* iteratorType */
        start local 9 // java.lang.invoke.MethodType iteratorType
         9: .line 7261
            aload 0 /* iterator */
            astore 7 /* startIter */
        start local 7 // java.lang.invoke.MethodHandle startIter
        10: .line 7263
      StackMap locals: java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.Class java.lang.Class java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle top java.lang.invoke.MethodType
      StackMap stack:
            aload 2 /* body */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            aload 4 /* returnType */
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            if_acmpne 11
            iconst_0
            goto 12
      StackMap locals:
      StackMap stack: java.lang.invoke.MethodType
        11: iconst_1
      StackMap locals: java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.Class java.lang.Class java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle top java.lang.invoke.MethodType
      StackMap stack: java.lang.invoke.MethodType int
        12: invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            astore 10 /* ttype */
        start local 10 // java.lang.Class ttype
        13: .line 7264
            aload 6 /* nextRaw */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            aload 10 /* ttype */
            invokevirtual java.lang.invoke.MethodType.changeReturnType:(Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
            astore 11 /* nextValType */
        start local 11 // java.lang.invoke.MethodType nextValType
        14: .line 7268
            aload 7 /* startIter */
            aload 9 /* iteratorType */
            invokevirtual java.lang.invoke.MethodHandle.asType:(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            astore 7 /* startIter */
        15: .line 7269
            aload 6 /* nextRaw */
            aload 11 /* nextValType */
            invokevirtual java.lang.invoke.MethodHandle.asType:(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            astore 8 /* nextVal */
        start local 8 // java.lang.invoke.MethodHandle nextVal
        16: .line 7270
            goto 19
        end local 8 // java.lang.invoke.MethodHandle nextVal
      StackMap locals: java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.Class java.lang.Class java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle top java.lang.invoke.MethodType java.lang.Class java.lang.invoke.MethodType
      StackMap stack: java.lang.invoke.WrongMethodTypeException
        17: astore 12 /* ex */
        start local 12 // java.lang.invoke.WrongMethodTypeException ex
        18: .line 7271
            new java.lang.IllegalArgumentException
            dup
            aload 12 /* ex */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 12 // java.lang.invoke.WrongMethodTypeException ex
        end local 11 // java.lang.invoke.MethodType nextValType
        end local 10 // java.lang.Class ttype
        end local 9 // java.lang.invoke.MethodType iteratorType
        start local 8 // java.lang.invoke.MethodHandle nextVal
        19: .line 7275
      StackMap locals: java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.Class java.lang.Class java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle
      StackMap stack:
            aconst_null
            astore 9 /* retv */
        start local 9 // java.lang.invoke.MethodHandle retv
        20: aload 2 /* body */
            astore 10 /* step */
        start local 10 // java.lang.invoke.MethodHandle step
        21: .line 7276
            aload 4 /* returnType */
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            if_acmpeq 24
        22: .line 7278
            aload 4 /* returnType */
            invokestatic java.lang.invoke.MethodHandles.identity:(Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            iconst_0
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/util/Iterator;
            aastore
            invokestatic java.lang.invoke.MethodHandles.dropArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            astore 9 /* retv */
        23: .line 7280
            aload 2 /* body */
            iconst_0
            iconst_1
            invokestatic java.lang.invoke.MethodHandles.swapArguments:(Ljava/lang/invoke/MethodHandle;II)Ljava/lang/invoke/MethodHandle;
            astore 10 /* step */
        24: .line 7284
      StackMap locals: java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle
      StackMap stack:
            iconst_4
            anewarray java.lang.invoke.MethodHandle
            dup
            iconst_0
            aload 7 /* startIter */
            aastore
            dup
            iconst_2
            aload 5 /* hasNext */
            aastore
            dup
            iconst_3
            aload 9 /* retv */
            aastore
            astore 11 /* iterVar */
        start local 11 // java.lang.invoke.MethodHandle[] iterVar
        25: .line 7285
            iconst_2
            anewarray java.lang.invoke.MethodHandle
            dup
            iconst_0
            aload 1 /* init */
            aastore
            dup
            iconst_1
            aload 10 /* step */
            iconst_0
            aload 8 /* nextVal */
            invokestatic java.lang.invoke.MethodHandles.filterArgument:(Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
            aastore
            astore 12 /* bodyClause */
        start local 12 // java.lang.invoke.MethodHandle[] bodyClause
        26: .line 7286
            iconst_2
            anewarray java.lang.invoke.MethodHandle[]
            dup
            iconst_0
            aload 11 /* iterVar */
            aastore
            dup
            iconst_1
            aload 12 /* bodyClause */
            aastore
            invokestatic java.lang.invoke.MethodHandles.loop:([[Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 12 // java.lang.invoke.MethodHandle[] bodyClause
        end local 11 // java.lang.invoke.MethodHandle[] iterVar
        end local 10 // java.lang.invoke.MethodHandle step
        end local 9 // java.lang.invoke.MethodHandle retv
        end local 8 // java.lang.invoke.MethodHandle nextVal
        end local 7 // java.lang.invoke.MethodHandle startIter
        end local 6 // java.lang.invoke.MethodHandle nextRaw
        end local 5 // java.lang.invoke.MethodHandle hasNext
        end local 4 // java.lang.Class returnType
        end local 3 // java.lang.Class iterableType
        end local 2 // java.lang.invoke.MethodHandle body
        end local 1 // java.lang.invoke.MethodHandle init
        end local 0 // java.lang.invoke.MethodHandle iterator
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   27     0      iterator  Ljava/lang/invoke/MethodHandle;
            0   27     1          init  Ljava/lang/invoke/MethodHandle;
            0   27     2          body  Ljava/lang/invoke/MethodHandle;
            1   27     3  iterableType  Ljava/lang/Class<*>;
            2   27     4    returnType  Ljava/lang/Class<*>;
            3   27     5       hasNext  Ljava/lang/invoke/MethodHandle;
            4   27     6       nextRaw  Ljava/lang/invoke/MethodHandle;
            6    8     7     startIter  Ljava/lang/invoke/MethodHandle;
           10   27     7     startIter  Ljava/lang/invoke/MethodHandle;
           16   17     8       nextVal  Ljava/lang/invoke/MethodHandle;
           19   27     8       nextVal  Ljava/lang/invoke/MethodHandle;
            7    8     9  iteratorType  Ljava/lang/invoke/MethodType;
            9   19     9  iteratorType  Ljava/lang/invoke/MethodType;
           13   19    10         ttype  Ljava/lang/Class<*>;
           14   19    11   nextValType  Ljava/lang/invoke/MethodType;
           18   19    12            ex  Ljava/lang/invoke/WrongMethodTypeException;
           20   27     9          retv  Ljava/lang/invoke/MethodHandle;
           21   27    10          step  Ljava/lang/invoke/MethodHandle;
           25   27    11       iterVar  [Ljava/lang/invoke/MethodHandle;
           26   27    12    bodyClause  [Ljava/lang/invoke/MethodHandle;
      Exception table:
        from    to  target  type
          14    16      17  Class java.lang.invoke.WrongMethodTypeException
    MethodParameters:
          Name  Flags
      iterator  
      init      
      body      

  private static java.lang.Class<?> iteratedLoopChecks(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle);
    descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/Class;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=11, args_size=3
        start local 0 // java.lang.invoke.MethodHandle iterator
        start local 1 // java.lang.invoke.MethodHandle init
        start local 2 // java.lang.invoke.MethodHandle body
         0: .line 7290
            aload 2 /* body */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 7291
            aload 2 /* body */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 3 /* bodyType */
        start local 3 // java.lang.invoke.MethodType bodyType
         2: .line 7292
            aload 3 /* bodyType */
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            astore 4 /* returnType */
        start local 4 // java.lang.Class returnType
         3: .line 7293
            aload 3 /* bodyType */
            invokevirtual java.lang.invoke.MethodType.parameterList:()Ljava/util/List;
            astore 5 /* internalParamList */
        start local 5 // java.util.List internalParamList
         4: .line 7295
            aload 4 /* returnType */
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            if_acmpne 5
            iconst_0
            goto 6
      StackMap locals: java.lang.invoke.MethodType java.lang.Class java.util.List
      StackMap stack:
         5: iconst_1
      StackMap locals:
      StackMap stack: int
         6: istore 6 /* vsize */
        start local 6 // int vsize
         7: .line 7296
            iload 6 /* vsize */
            ifeq 10
            aload 5 /* internalParamList */
            invokeinterface java.util.List.size:()I
            ifeq 8
            aload 5 /* internalParamList */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            aload 4 /* returnType */
            if_acmpeq 10
         8: .line 7298
      StackMap locals: int
      StackMap stack:
            aload 3 /* bodyType */
            iconst_0
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            aload 4 /* returnType */
            aastore
            invokevirtual java.lang.invoke.MethodType.insertParameterTypes:(I[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
            astore 7 /* expected */
        start local 7 // java.lang.invoke.MethodType expected
         9: .line 7299
            ldc "body function"
            aload 3 /* bodyType */
            aload 7 /* expected */
            invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
        end local 7 // java.lang.invoke.MethodType expected
        10: .line 7300
      StackMap locals:
      StackMap stack:
            aload 5 /* internalParamList */
            invokeinterface java.util.List.size:()I
            iload 6 /* vsize */
            if_icmpgt 13
        11: .line 7302
            aload 3 /* bodyType */
            iload 6 /* vsize */
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/Object;
            aastore
            invokevirtual java.lang.invoke.MethodType.insertParameterTypes:(I[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
            astore 7 /* expected */
        start local 7 // java.lang.invoke.MethodType expected
        12: .line 7303
            ldc "body function"
            aload 3 /* bodyType */
            aload 7 /* expected */
            invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
        end local 7 // java.lang.invoke.MethodType expected
        13: .line 7305
      StackMap locals:
      StackMap stack:
            aload 5 /* internalParamList */
            iload 6 /* vsize */
            iconst_1
            iadd
            aload 5 /* internalParamList */
            invokeinterface java.util.List.size:()I
            invokeinterface java.util.List.subList:(II)Ljava/util/List;
            astore 7 /* externalParamList */
        start local 7 // java.util.List externalParamList
        14: .line 7306
            aconst_null
            astore 8 /* iterableType */
        start local 8 // java.lang.Class iterableType
        15: .line 7307
            aload 0 /* iterator */
            ifnull 24
        16: .line 7310
            aload 7 /* externalParamList */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 18
        17: .line 7311
            aload 0 /* iterator */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.parameterList:()Ljava/util/List;
            astore 7 /* externalParamList */
        18: .line 7313
      StackMap locals: java.util.List java.lang.Class
      StackMap stack:
            aload 0 /* iterator */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 9 /* itype */
        start local 9 // java.lang.invoke.MethodType itype
        19: .line 7314
            ldc Ljava/util/Iterator;
            aload 9 /* itype */
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 21
        20: .line 7315
            ldc "iteratedLoop first argument must have Iterator return type"
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        21: .line 7317
      StackMap locals: java.lang.invoke.MethodType
      StackMap stack:
            aload 9 /* itype */
            iconst_0
            aload 7 /* externalParamList */
            invokevirtual java.lang.invoke.MethodType.effectivelyIdenticalParameters:(ILjava/util/List;)Z
            ifne 32
        22: .line 7318
            aload 9 /* itype */
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            aload 7 /* externalParamList */
            invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;Ljava/util/List;)Ljava/lang/invoke/MethodType;
            astore 10 /* expected */
        start local 10 // java.lang.invoke.MethodType expected
        23: .line 7319
            ldc "iterator parameters"
            aload 9 /* itype */
            aload 10 /* expected */
            invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
        end local 10 // java.lang.invoke.MethodType expected
        end local 9 // java.lang.invoke.MethodType itype
        24: .line 7322
      StackMap locals:
      StackMap stack:
            aload 7 /* externalParamList */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 28
        25: .line 7326
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/Iterable;
            aastore
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            astore 7 /* externalParamList */
        26: .line 7327
            ldc Ljava/lang/Iterable;
            astore 8 /* iterableType */
        27: .line 7328
            goto 32
        28: .line 7332
      StackMap locals:
      StackMap stack:
            aload 7 /* externalParamList */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.Class
            astore 8 /* iterableType */
        29: .line 7333
            ldc Ljava/lang/Iterable;
            aload 8 /* iterableType */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 32
        30: .line 7335
            new java.lang.StringBuilder
            dup
            ldc "inferred first loop argument must inherit from Iterable: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 8 /* iterableType */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        31: .line 7334
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        32: .line 7339
      StackMap locals:
      StackMap stack:
            aload 1 /* init */
            ifnull 37
        33: .line 7340
            aload 1 /* init */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 9 /* initType */
        start local 9 // java.lang.invoke.MethodType initType
        34: .line 7341
            aload 9 /* initType */
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            aload 4 /* returnType */
            if_acmpne 36
        35: .line 7342
            aload 9 /* initType */
            iconst_0
            aload 7 /* externalParamList */
            invokevirtual java.lang.invoke.MethodType.effectivelyIdenticalParameters:(ILjava/util/List;)Z
            ifne 37
        36: .line 7343
      StackMap locals: java.lang.invoke.MethodType
      StackMap stack:
            ldc "loop initializer"
            aload 9 /* initType */
            aload 4 /* returnType */
            aload 7 /* externalParamList */
            invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;Ljava/util/List;)Ljava/lang/invoke/MethodType;
            invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
        end local 9 // java.lang.invoke.MethodType initType
        37: .line 7346
      StackMap locals:
      StackMap stack:
            aload 8 /* iterableType */
            areturn
        end local 8 // java.lang.Class iterableType
        end local 7 // java.util.List externalParamList
        end local 6 // int vsize
        end local 5 // java.util.List internalParamList
        end local 4 // java.lang.Class returnType
        end local 3 // java.lang.invoke.MethodType bodyType
        end local 2 // java.lang.invoke.MethodHandle body
        end local 1 // java.lang.invoke.MethodHandle init
        end local 0 // java.lang.invoke.MethodHandle iterator
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   38     0           iterator  Ljava/lang/invoke/MethodHandle;
            0   38     1               init  Ljava/lang/invoke/MethodHandle;
            0   38     2               body  Ljava/lang/invoke/MethodHandle;
            2   38     3           bodyType  Ljava/lang/invoke/MethodType;
            3   38     4         returnType  Ljava/lang/Class<*>;
            4   38     5  internalParamList  Ljava/util/List<Ljava/lang/Class<*>;>;
            7   38     6              vsize  I
            9   10     7           expected  Ljava/lang/invoke/MethodType;
           12   13     7           expected  Ljava/lang/invoke/MethodType;
           14   38     7  externalParamList  Ljava/util/List<Ljava/lang/Class<*>;>;
           15   38     8       iterableType  Ljava/lang/Class<*>;
           19   24     9              itype  Ljava/lang/invoke/MethodType;
           23   24    10           expected  Ljava/lang/invoke/MethodType;
           34   37     9           initType  Ljava/lang/invoke/MethodType;
    Signature: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/Class<*>;
    MethodParameters:
          Name  Flags
      iterator  
      init      
      body      

  static java.lang.invoke.MethodHandle swapArguments(java.lang.invoke.MethodHandle, int, int);
    descriptor: (Ljava/lang/invoke/MethodHandle;II)Ljava/lang/invoke/MethodHandle;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=8, args_size=3
        start local 0 // java.lang.invoke.MethodHandle mh
        start local 1 // int i
        start local 2 // int j
         0: .line 7352
            aload 0 /* mh */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            istore 3 /* arity */
        start local 3 // int arity
         1: .line 7353
            iload 3 /* arity */
            newarray 10
            astore 4 /* order */
        start local 4 // int[] order
         2: .line 7354
            iconst_0
            istore 5 /* k */
        start local 5 // int k
         3: goto 5
      StackMap locals: int int[] int
      StackMap stack:
         4: aload 4 /* order */
            iload 5 /* k */
            iload 5 /* k */
            iastore
            iinc 5 /* k */ 1
      StackMap locals:
      StackMap stack:
         5: iload 5 /* k */
            iload 3 /* arity */
            if_icmplt 4
        end local 5 // int k
         6: .line 7355
            aload 4 /* order */
            iload 1 /* i */
            iload 2 /* j */
            iastore
            aload 4 /* order */
            iload 2 /* j */
            iload 1 /* i */
            iastore
         7: .line 7356
            aload 0 /* mh */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.parameterArray:()[Ljava/lang/Class;
            astore 5 /* types */
        start local 5 // java.lang.Class[] types
         8: .line 7357
            aload 5 /* types */
            iload 1 /* i */
            aaload
            astore 6 /* ti */
        start local 6 // java.lang.Class ti
         9: aload 5 /* types */
            iload 1 /* i */
            aload 5 /* types */
            iload 2 /* j */
            aaload
            aastore
            aload 5 /* types */
            iload 2 /* j */
            aload 6 /* ti */
            aastore
        10: .line 7358
            aload 0 /* mh */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            aload 5 /* types */
            invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
            astore 7 /* swapType */
        start local 7 // java.lang.invoke.MethodType swapType
        11: .line 7359
            aload 0 /* mh */
            aload 7 /* swapType */
            aload 4 /* order */
            invokestatic java.lang.invoke.MethodHandles.permuteArguments:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;[I)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 7 // java.lang.invoke.MethodType swapType
        end local 6 // java.lang.Class ti
        end local 5 // java.lang.Class[] types
        end local 4 // int[] order
        end local 3 // int arity
        end local 2 // int j
        end local 1 // int i
        end local 0 // java.lang.invoke.MethodHandle mh
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   12     0        mh  Ljava/lang/invoke/MethodHandle;
            0   12     1         i  I
            0   12     2         j  I
            1   12     3     arity  I
            2   12     4     order  [I
            3    6     5         k  I
            8   12     5     types  [Ljava/lang/Class;
            9   12     6        ti  Ljava/lang/Class<*>;
           11   12     7  swapType  Ljava/lang/invoke/MethodType;
    MethodParameters:
      Name  Flags
      mh    
      i     
      j     

  public static java.lang.invoke.MethodHandle tryFinally(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle);
    descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // java.lang.invoke.MethodHandle target
        start local 1 // java.lang.invoke.MethodHandle cleanup
         0: .line 7452
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.parameterList:()Ljava/util/List;
            astore 2 /* targetParamTypes */
        start local 2 // java.util.List targetParamTypes
         1: .line 7453
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            astore 3 /* rtype */
        start local 3 // java.lang.Class rtype
         2: .line 7455
            aload 0 /* target */
            aload 1 /* cleanup */
            invokestatic java.lang.invoke.MethodHandles.tryFinallyChecks:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)V
         3: .line 7460
            aload 1 /* cleanup */
            aload 3 /* rtype */
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            if_acmpne 4
            iconst_1
            goto 5
      StackMap locals: java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.util.List java.lang.Class
      StackMap stack: java.lang.invoke.MethodHandle
         4: iconst_2
      StackMap locals: java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.util.List java.lang.Class
      StackMap stack: java.lang.invoke.MethodHandle int
         5: aload 2 /* targetParamTypes */
            iconst_0
            invokestatic java.lang.invoke.MethodHandles.dropArgumentsToMatch:(Ljava/lang/invoke/MethodHandle;ILjava/util/List;I)Ljava/lang/invoke/MethodHandle;
            astore 1 /* cleanup */
         6: .line 7464
            aload 1 /* cleanup */
            aload 1 /* cleanup */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            iconst_0
            ldc Ljava/lang/Throwable;
            invokevirtual java.lang.invoke.MethodType.changeParameterType:(ILjava/lang/Class;)Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodHandle.asType:(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            astore 1 /* cleanup */
         7: .line 7467
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.asFixedArity:()Ljava/lang/invoke/MethodHandle;
            aload 1 /* cleanup */
            invokevirtual java.lang.invoke.MethodHandle.asFixedArity:()Ljava/lang/invoke/MethodHandle;
            aload 3 /* rtype */
            aload 2 /* targetParamTypes */
            invokestatic java.lang.invoke.MethodHandleImpl.makeTryFinally:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/Class;Ljava/util/List;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 3 // java.lang.Class rtype
        end local 2 // java.util.List targetParamTypes
        end local 1 // java.lang.invoke.MethodHandle cleanup
        end local 0 // java.lang.invoke.MethodHandle target
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    8     0            target  Ljava/lang/invoke/MethodHandle;
            0    8     1           cleanup  Ljava/lang/invoke/MethodHandle;
            1    8     2  targetParamTypes  Ljava/util/List<Ljava/lang/Class<*>;>;
            2    8     3             rtype  Ljava/lang/Class<*>;
    MethodParameters:
         Name  Flags
      target   
      cleanup  

  private static void tryFinallyChecks(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle);
    descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // java.lang.invoke.MethodHandle target
        start local 1 // java.lang.invoke.MethodHandle cleanup
         0: .line 7471
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            astore 2 /* rtype */
        start local 2 // java.lang.Class rtype
         1: .line 7472
            aload 2 /* rtype */
            aload 1 /* cleanup */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            if_acmpeq 3
         2: .line 7473
            ldc "target and return types"
            aload 1 /* cleanup */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            aload 2 /* rtype */
            invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
         3: .line 7475
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 1 /* cleanup */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 3 /* cleanupType */
        start local 3 // java.lang.invoke.MethodType cleanupType
         4: .line 7476
            ldc Ljava/lang/Throwable;
            aload 3 /* cleanupType */
            iconst_0
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 6
         5: .line 7477
            ldc "cleanup first argument and Throwable"
            aload 1 /* cleanup */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            ldc Ljava/lang/Throwable;
            invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
         6: .line 7479
      StackMap locals: java.lang.invoke.MethodType
      StackMap stack:
            aload 2 /* rtype */
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            if_acmpeq 8
            aload 3 /* cleanupType */
            iconst_1
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            aload 2 /* rtype */
            if_acmpeq 8
         7: .line 7480
            ldc "cleanup second argument and target return type"
            aload 1 /* cleanup */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            aload 2 /* rtype */
            invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
         8: .line 7484
      StackMap locals:
      StackMap stack:
            aload 2 /* rtype */
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            if_acmpne 9
            iconst_1
            goto 10
      StackMap locals:
      StackMap stack:
         9: iconst_2
      StackMap locals:
      StackMap stack: int
        10: istore 4 /* cleanupArgIndex */
        start local 4 // int cleanupArgIndex
        11: .line 7485
            aload 3 /* cleanupType */
            iload 4 /* cleanupArgIndex */
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.parameterList:()Ljava/util/List;
            invokevirtual java.lang.invoke.MethodType.effectivelyIdenticalParameters:(ILjava/util/List;)Z
            ifne 15
        12: .line 7486
            ldc "cleanup parameters after (Throwable,result) and target parameter list prefix"
        13: .line 7487
            aload 1 /* cleanup */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
        14: .line 7486
            invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
        15: .line 7489
      StackMap locals: int
      StackMap stack:
            return
        end local 4 // int cleanupArgIndex
        end local 3 // java.lang.invoke.MethodType cleanupType
        end local 2 // java.lang.Class rtype
        end local 1 // java.lang.invoke.MethodHandle cleanup
        end local 0 // java.lang.invoke.MethodHandle target
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   16     0           target  Ljava/lang/invoke/MethodHandle;
            0   16     1          cleanup  Ljava/lang/invoke/MethodHandle;
            1   16     2            rtype  Ljava/lang/Class<*>;
            4   16     3      cleanupType  Ljava/lang/invoke/MethodType;
           11   16     4  cleanupArgIndex  I
    MethodParameters:
         Name  Flags
      target   
      cleanup  

  static int[] $SWITCH_TABLE$sun$invoke$util$Wrapper();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 85
            getstatic java.lang.invoke.MethodHandles.$SWITCH_TABLE$sun$invoke$util$Wrapper:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic sun.invoke.util.Wrapper.values:()[Lsun/invoke/util/Wrapper;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic sun.invoke.util.Wrapper.BOOLEAN:Lsun/invoke/util/Wrapper;
            invokevirtual sun.invoke.util.Wrapper.ordinal:()I
            iconst_1
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic sun.invoke.util.Wrapper.BYTE:Lsun/invoke/util/Wrapper;
            invokevirtual sun.invoke.util.Wrapper.ordinal:()I
            iconst_2
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic sun.invoke.util.Wrapper.CHAR:Lsun/invoke/util/Wrapper;
            invokevirtual sun.invoke.util.Wrapper.ordinal:()I
            iconst_4
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic sun.invoke.util.Wrapper.DOUBLE:Lsun/invoke/util/Wrapper;
            invokevirtual sun.invoke.util.Wrapper.ordinal:()I
            bipush 8
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic sun.invoke.util.Wrapper.FLOAT:Lsun/invoke/util/Wrapper;
            invokevirtual sun.invoke.util.Wrapper.ordinal:()I
            bipush 7
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            getstatic sun.invoke.util.Wrapper.INT:Lsun/invoke/util/Wrapper;
            invokevirtual sun.invoke.util.Wrapper.ordinal:()I
            iconst_5
            iastore
        18: goto 20
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        19: pop
      StackMap locals:
      StackMap stack:
        20: aload 0
            getstatic sun.invoke.util.Wrapper.LONG:Lsun/invoke/util/Wrapper;
            invokevirtual sun.invoke.util.Wrapper.ordinal:()I
            bipush 6
            iastore
        21: goto 23
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        22: pop
      StackMap locals:
      StackMap stack:
        23: aload 0
            getstatic sun.invoke.util.Wrapper.OBJECT:Lsun/invoke/util/Wrapper;
            invokevirtual sun.invoke.util.Wrapper.ordinal:()I
            bipush 9
            iastore
        24: goto 26
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        25: pop
      StackMap locals:
      StackMap stack:
        26: aload 0
            getstatic sun.invoke.util.Wrapper.SHORT:Lsun/invoke/util/Wrapper;
            invokevirtual sun.invoke.util.Wrapper.ordinal:()I
            iconst_3
            iastore
        27: goto 29
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        28: pop
      StackMap locals:
      StackMap stack:
        29: aload 0
            getstatic sun.invoke.util.Wrapper.VOID:Lsun/invoke/util/Wrapper;
            invokevirtual sun.invoke.util.Wrapper.ordinal:()I
            bipush 10
            iastore
        30: goto 32
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        31: pop
      StackMap locals:
      StackMap stack:
        32: aload 0
            dup
            putstatic java.lang.invoke.MethodHandles.$SWITCH_TABLE$sun$invoke$util$Wrapper:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
          14    15      16  Class java.lang.NoSuchFieldError
          17    18      19  Class java.lang.NoSuchFieldError
          20    21      22  Class java.lang.NoSuchFieldError
          23    24      25  Class java.lang.NoSuchFieldError
          26    27      28  Class java.lang.NoSuchFieldError
          29    30      31  Class java.lang.NoSuchFieldError

  private static boolean lambda$0(java.lang.invoke.MethodHandle[]);
    descriptor: ([Ljava/lang/invoke/MethodHandle;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.invoke.MethodHandle[] c
         0: .line 6355
            aload 0 /* c */
            invokestatic java.util.stream.Stream.of:([Ljava/lang/Object;)Ljava/util/stream/Stream;
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  java/util/Objects.nonNull(Ljava/lang/Object;)Z (6)
                  (Ljava/lang/invoke/MethodHandle;)Z
            invokeinterface java.util.stream.Stream.anyMatch:(Ljava/util/function/Predicate;)Z
            ireturn
        end local 0 // java.lang.invoke.MethodHandle[] c
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     c  [Ljava/lang/invoke/MethodHandle;

  private static void lambda$2(java.util.List, java.util.List, java.util.List, java.util.List, java.lang.invoke.MethodHandle[]);
    descriptor: (Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;[Ljava/lang/invoke/MethodHandle;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=5, args_size=5
        start local 4 // java.lang.invoke.MethodHandle[] clause
         0: .line 6356
            aload 0
            aload 4 /* clause */
            iconst_0
            aaload
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         1: .line 6357
            aload 1
            aload 4 /* clause */
            arraylength
            iconst_1
            if_icmpgt 2
            aconst_null
            goto 3
      StackMap locals:
      StackMap stack: java.util.List
         2: aload 4 /* clause */
            iconst_1
            aaload
      StackMap locals: java.util.List java.util.List java.util.List java.util.List java.lang.invoke.MethodHandle[]
      StackMap stack: java.util.List java.lang.invoke.MethodHandle
         3: invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         4: .line 6358
            aload 2
            aload 4 /* clause */
            arraylength
            iconst_2
            if_icmpgt 5
            aconst_null
            goto 6
      StackMap locals:
      StackMap stack: java.util.List
         5: aload 4 /* clause */
            iconst_2
            aaload
      StackMap locals: java.util.List java.util.List java.util.List java.util.List java.lang.invoke.MethodHandle[]
      StackMap stack: java.util.List java.lang.invoke.MethodHandle
         6: invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         7: .line 6359
            aload 3
            aload 4 /* clause */
            arraylength
            iconst_3
            if_icmpgt 8
            aconst_null
            goto 9
      StackMap locals:
      StackMap stack: java.util.List
         8: aload 4 /* clause */
            iconst_3
            aaload
      StackMap locals: java.util.List java.util.List java.util.List java.util.List java.lang.invoke.MethodHandle[]
      StackMap stack: java.util.List java.lang.invoke.MethodHandle
         9: invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        10: .line 6360
            return
        end local 4 // java.lang.invoke.MethodHandle[] clause
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   11     4  clause  [Ljava/lang/invoke/MethodHandle;

  private static boolean lambda$4(java.lang.Class);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Class t
         0: .line 6379
            aload 0 /* t */
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            if_acmpeq 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // java.lang.Class t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     t  Ljava/lang/Class<*>;

  private static boolean lambda$10(java.util.List, java.util.List);
    descriptor: (Ljava/util/List;Ljava/util/List;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.util.List pl
         0: .line 6424
            aload 1 /* pl */
            aload 0
            invokeinterface java.util.List.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.util.List pl
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1    pl  Ljava/util/List<Ljava/lang/Class<*>;>;

  private static boolean lambda$14(java.util.List, java.util.List);
    descriptor: (Ljava/util/List;Ljava/util/List;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.util.List pl
         0: .line 6426
            aload 1 /* pl */
            aload 0
            invokeinterface java.util.List.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.util.List pl
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1    pl  Ljava/util/List<Ljava/lang/Class<*>;>;

  private static boolean lambda$16(java.lang.invoke.MethodHandle[]);
    descriptor: ([Ljava/lang/invoke/MethodHandle;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.invoke.MethodHandle[] c
         0: .line 6438
            aload 0 /* c */
            arraylength
            iconst_4
            if_icmple 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // java.lang.invoke.MethodHandle[] c
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     c  [Ljava/lang/invoke/MethodHandle;

  private static boolean lambda$19(int, java.lang.invoke.MethodType);
    descriptor: (ILjava/lang/invoke/MethodType;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.invoke.MethodType t
         0: .line 6455
            aload 1 /* t */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            iload 0
            if_icmple 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 1 // java.lang.invoke.MethodType t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     1     t  Ljava/lang/invoke/MethodType;

  private static java.util.List lambda$21(java.util.List, java.util.List);
    descriptor: (Ljava/util/List;Ljava/util/List;)Ljava/util/List;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.util.List p
        start local 1 // java.util.List q
         0: .line 6457
            aload 0 /* p */
            invokeinterface java.util.List.size:()I
            aload 1 /* q */
            invokeinterface java.util.List.size:()I
            if_icmplt 1
            aload 0 /* p */
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 1 /* q */
      StackMap locals:
      StackMap stack: java.util.List
         2: areturn
        end local 1 // java.util.List q
        end local 0 // java.util.List p
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     p  Ljava/util/List<Ljava/lang/Class<*>;>;
            0    3     1     q  Ljava/util/List<Ljava/lang/Class<*>;>;

  private static java.util.List lambda$22(java.util.List, java.util.List);
    descriptor: (Ljava/util/List;Ljava/util/List;)Ljava/util/List;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.util.List p
        start local 1 // java.util.List q
         0: .line 6463
            aload 0 /* p */
            invokeinterface java.util.List.size:()I
            aload 1 /* q */
            invokeinterface java.util.List.size:()I
            if_icmplt 1
            aload 0 /* p */
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 1 /* q */
      StackMap locals:
      StackMap stack: java.util.List
         2: areturn
        end local 1 // java.util.List q
        end local 0 // java.util.List p
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     p  Ljava/util/List<Ljava/lang/Class<*>;>;
            0    3     1     q  Ljava/util/List<Ljava/lang/Class<*>;>;

  private static boolean lambda$26(java.util.List, java.lang.invoke.MethodType);
    descriptor: (Ljava/util/List;Ljava/lang/invoke/MethodType;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=2, args_size=2
        start local 1 // java.lang.invoke.MethodType t
         0: .line 6474
            aload 1 /* t */
            iconst_0
            aload 0
            invokevirtual java.lang.invoke.MethodType.effectivelyIdenticalParameters:(ILjava/util/List;)Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 1 // java.lang.invoke.MethodType t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     1     t  Ljava/lang/invoke/MethodType;

  private static boolean lambda$30(java.lang.Class, java.lang.Class);
    descriptor: (Ljava/lang/Class;Ljava/lang/Class;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.Class t
         0: .line 6482
            aload 1 /* t */
            aload 0
            if_acmpeq 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 1 // java.lang.Class t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     1     t  Ljava/lang/Class<Ljava/lang/Object;>;

  private static boolean lambda$35(java.lang.Class);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Class t
         0: .line 6491
            aload 0 /* t */
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            if_acmpeq 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // java.lang.Class t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     t  Ljava/lang/Class<Ljava/lang/Object;>;

  private static boolean lambda$39(java.util.List, java.lang.invoke.MethodType);
    descriptor: (Ljava/util/List;Ljava/lang/invoke/MethodType;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=2, args_size=2
        start local 1 // java.lang.invoke.MethodType t
         0: .line 6498
            aload 1 /* t */
            iconst_0
            aload 0
            invokevirtual java.lang.invoke.MethodType.effectivelyIdenticalParameters:(ILjava/util/List;)Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 1 // java.lang.invoke.MethodType t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     1     t  Ljava/lang/invoke/MethodType;

  private static java.lang.invoke.MethodHandle lambda$40(java.util.List, java.lang.invoke.MethodHandle);
    descriptor: (Ljava/util/List;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=5, locals=4, args_size=2
        start local 1 // java.lang.invoke.MethodHandle h
         0: .line 6506
            aload 1 /* h */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            istore 2 /* pc */
        start local 2 // int pc
         1: .line 6507
            aload 0
            invokeinterface java.util.List.size:()I
            istore 3 /* tpsize */
        start local 3 // int tpsize
         2: .line 6508
            iload 2 /* pc */
            iload 3 /* tpsize */
            if_icmpge 3
            aload 1 /* h */
            iload 2 /* pc */
            aload 0
            iload 2 /* pc */
            iload 3 /* tpsize */
            invokeinterface java.util.List.subList:(II)Ljava/util/List;
            invokestatic java.lang.invoke.MethodHandles.dropArguments0:(Ljava/lang/invoke/MethodHandle;ILjava/util/List;)Ljava/lang/invoke/MethodHandle;
            goto 4
      StackMap locals: int int
      StackMap stack:
         3: aload 1 /* h */
      StackMap locals:
      StackMap stack: java.lang.invoke.MethodHandle
         4: areturn
        end local 3 // int tpsize
        end local 2 // int pc
        end local 1 // java.lang.invoke.MethodHandle h
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     1       h  Ljava/lang/invoke/MethodHandle;
            1    5     2      pc  I
            2    5     3  tpsize  I
}
SourceFile: "MethodHandles.java"
NestMembers:
  java.lang.invoke.MethodHandles$Lookup  java.lang.invoke.MethodHandles$Lookup$ClassDefiner  java.lang.invoke.MethodHandles$Lookup$ClassFile  java.lang.invoke.MethodHandles$Lookup$ClassOption
InnerClasses:
  final BasicType = java.lang.invoke.LambdaForm$BasicType of java.lang.invoke.LambdaForm
  Factory = java.lang.invoke.MemberName$Factory of java.lang.invoke.MemberName
  final ArrayAccess = java.lang.invoke.MethodHandleImpl$ArrayAccess of java.lang.invoke.MethodHandleImpl
  final Intrinsic = java.lang.invoke.MethodHandleImpl$Intrinsic of java.lang.invoke.MethodHandleImpl
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public final AccessMode = java.lang.invoke.VarHandle$AccessMode of java.lang.invoke.VarHandle