public final class java.lang.invoke.MethodHandles$Lookup
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: java.lang.invoke.MethodHandles$Lookup
  super_class: java.lang.Object
{
  private final java.lang.Class<?> lookupClass;
    descriptor: Ljava/lang/Class;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/lang/Class<*>;

  private final java.lang.Class<?> prevLookupClass;
    descriptor: Ljava/lang/Class;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/lang/Class<*>;

  private final int allowedModes;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public static final int PUBLIC;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final int PRIVATE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  public static final int PROTECTED;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  public static final int PACKAGE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 8

  public static final int MODULE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 16

  public static final int UNCONDITIONAL;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 32

  private static final int ALL_MODES;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 63

  private static final int FULL_POWER_MODES;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 31

  private static final int TRUSTED;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: -1

  private volatile java.security.ProtectionDomain cachedProtectionDomain;
    descriptor: Ljava/security/ProtectionDomain;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  static final java.lang.invoke.MethodHandles$Lookup IMPL_LOOKUP;
    descriptor: Ljava/lang/invoke/MethodHandles$Lookup;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final java.lang.invoke.MethodHandles$Lookup PUBLIC_LOOKUP;
    descriptor: Ljava/lang/invoke/MethodHandles$Lookup;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static java.util.concurrent.ConcurrentHashMap<java.lang.invoke.MemberName, java.lang.invoke.DirectMethodHandle> LOOKASIDE_TABLE;
    descriptor: Ljava/util/concurrent/ConcurrentHashMap;
    flags: (0x0008) ACC_STATIC
    Signature: Ljava/util/concurrent/ConcurrentHashMap<Ljava/lang/invoke/MemberName;Ljava/lang/invoke/DirectMethodHandle;>;

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=0, args_size=0
         0: .line 1274
            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$Lookup.$assertionsDisabled:Z
         3: .line 1285
            ldc Ljava/lang/invoke/MethodHandles$Lookup;
            ldc "lookupClass"
            ldc "allowedModes"
            invokestatic java.util.Set.of:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Set;
            invokestatic jdk.internal.reflect.Reflection.registerFieldsToFilter:(Ljava/lang/Class;Ljava/util/Set;)V
         4: .line 2277
            getstatic java.lang.invoke.MethodHandles.IMPL_NAMES:Ljava/lang/invoke/MemberName$Factory;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
         5: .line 2280
            new java.lang.invoke.MethodHandles$Lookup
            dup
            ldc Ljava/lang/Object;
            aconst_null
            iconst_m1
            invokespecial java.lang.invoke.MethodHandles$Lookup.<init>:(Ljava/lang/Class;Ljava/lang/Class;I)V
            putstatic java.lang.invoke.MethodHandles$Lookup.IMPL_LOOKUP:Ljava/lang/invoke/MethodHandles$Lookup;
         6: .line 2286
            new java.lang.invoke.MethodHandles$Lookup
            dup
            ldc Ljava/lang/Object;
            aconst_null
            bipush 32
            invokespecial java.lang.invoke.MethodHandles$Lookup.<init>:(Ljava/lang/Class;Ljava/lang/Class;I)V
            putstatic java.lang.invoke.MethodHandles$Lookup.PUBLIC_LOOKUP:Ljava/lang/invoke/MethodHandles$Lookup;
         7: .line 3953
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
            putstatic java.lang.invoke.MethodHandles$Lookup.LOOKASIDE_TABLE:Ljava/util/concurrent/ConcurrentHashMap;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static int fixmods(int);
    descriptor: (I)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // int mods
         0: .line 1366
            iload 0 /* mods */
            bipush 7
            iand
            istore 0 /* mods */
         1: .line 1367
            iload 0 /* mods */
            invokestatic java.lang.reflect.Modifier.isPublic:(I)Z
            ifeq 3
         2: .line 1368
            iload 0 /* mods */
            bipush 32
            ior
            istore 0 /* mods */
         3: .line 1369
      StackMap locals:
      StackMap stack:
            iload 0 /* mods */
            ifeq 4
            iload 0 /* mods */
            goto 5
      StackMap locals:
      StackMap stack:
         4: bipush 8
      StackMap locals:
      StackMap stack: int
         5: ireturn
        end local 0 // int mods
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  mods  I
    MethodParameters:
      Name  Flags
      mods  

  public java.lang.Class<?> lookupClass();
    descriptor: ()Ljava/lang/Class;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
         0: .line 1386
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.lookupClass:Ljava/lang/Class;
            areturn
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/invoke/MethodHandles$Lookup;
    Signature: ()Ljava/lang/Class<*>;

  public java.lang.Class<?> previousLookupClass();
    descriptor: ()Ljava/lang/Class;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
         0: .line 1407
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.prevLookupClass:Ljava/lang/Class;
            areturn
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/invoke/MethodHandles$Lookup;
    Signature: ()Ljava/lang/Class<*>;

  private java.lang.Class<?> lookupClassOrNull();
    descriptor: ()Ljava/lang/Class;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
         0: .line 1412
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.allowedModes:I
            iconst_m1
            if_icmpne 2
         1: .line 1413
            aconst_null
            areturn
         2: .line 1415
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.allowedModes:I
            bipush 32
            if_icmpne 4
         3: .line 1417
            ldc Ljava/lang/Object;
            areturn
         4: .line 1419
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.lookupClass:Ljava/lang/Class;
            areturn
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljava/lang/invoke/MethodHandles$Lookup;
    Signature: ()Ljava/lang/Class<*>;

  public int lookupModes();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
         0: .line 1451
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.allowedModes:I
            bipush 63
            iand
            ireturn
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/invoke/MethodHandles$Lookup;

  void <init>(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.Class lookupClass
         0: .line 1460
            aload 0 /* this */
            aload 1 /* lookupClass */
            aconst_null
            bipush 31
            invokespecial java.lang.invoke.MethodHandles$Lookup.<init>:(Ljava/lang/Class;Ljava/lang/Class;I)V
         1: .line 1461
            return
        end local 1 // java.lang.Class lookupClass
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    2     1  lookupClass  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)V
    MethodParameters:
             Name  Flags
      lookupClass  

  private void <init>(java.lang.Class<?>, java.lang.Class<?>, );
    descriptor: (Ljava/lang/Class;Ljava/lang/Class;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.Class lookupClass
        start local 2 // java.lang.Class prevLookupClass
        start local 3 // int allowedModes
         0: .line 1463
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 1464
            getstatic java.lang.invoke.MethodHandles$Lookup.$assertionsDisabled:Z
            ifne 4
            aload 2 /* prevLookupClass */
            ifnull 4
            iload 3 /* allowedModes */
            bipush 16
            iand
            ifne 3
         2: .line 1465
            aload 2 /* prevLookupClass */
            invokevirtual java.lang.Class.getModule:()Ljava/lang/Module;
            aload 1 /* lookupClass */
            invokevirtual java.lang.Class.getModule:()Ljava/lang/Module;
            if_acmpne 4
      StackMap locals: java.lang.invoke.MethodHandles$Lookup java.lang.Class java.lang.Class int
      StackMap stack:
         3: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 1466
      StackMap locals:
      StackMap stack:
            getstatic java.lang.invoke.MethodHandles$Lookup.$assertionsDisabled:Z
            ifne 6
            aload 1 /* lookupClass */
            invokevirtual java.lang.Class.isArray:()Z
            ifne 5
            aload 1 /* lookupClass */
            invokevirtual java.lang.Class.isPrimitive:()Z
            ifeq 6
      StackMap locals:
      StackMap stack:
         5: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         6: .line 1467
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* lookupClass */
            putfield java.lang.invoke.MethodHandles$Lookup.lookupClass:Ljava/lang/Class;
         7: .line 1468
            aload 0 /* this */
            aload 2 /* prevLookupClass */
            putfield java.lang.invoke.MethodHandles$Lookup.prevLookupClass:Ljava/lang/Class;
         8: .line 1469
            aload 0 /* this */
            iload 3 /* allowedModes */
            putfield java.lang.invoke.MethodHandles$Lookup.allowedModes:I
         9: .line 1470
            return
        end local 3 // int allowedModes
        end local 2 // java.lang.Class prevLookupClass
        end local 1 // java.lang.Class lookupClass
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   10     0             this  Ljava/lang/invoke/MethodHandles$Lookup;
            0   10     1      lookupClass  Ljava/lang/Class<*>;
            0   10     2  prevLookupClass  Ljava/lang/Class<*>;
            0   10     3     allowedModes  I
    Signature: (Ljava/lang/Class<*>;Ljava/lang/Class<*>;I)V
    MethodParameters:
                 Name  Flags
      lookupClass      
      prevLookupClass  
      allowedModes     

  private static java.lang.invoke.MethodHandles$Lookup newLookup(java.lang.Class<?>, java.lang.Class<?>, int);
    descriptor: (Ljava/lang/Class;Ljava/lang/Class;I)Ljava/lang/invoke/MethodHandles$Lookup;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // java.lang.Class lookupClass
        start local 1 // java.lang.Class prevLookupClass
        start local 2 // int allowedModes
         0: .line 1474
            aload 0 /* lookupClass */
            invokestatic java.lang.invoke.MethodHandles$Lookup.checkUnprivilegedlookupClass:(Ljava/lang/Class;)V
         1: .line 1475
            new java.lang.invoke.MethodHandles$Lookup
            dup
            aload 0 /* lookupClass */
            aload 1 /* prevLookupClass */
            iload 2 /* allowedModes */
            invokespecial java.lang.invoke.MethodHandles$Lookup.<init>:(Ljava/lang/Class;Ljava/lang/Class;I)V
            areturn
        end local 2 // int allowedModes
        end local 1 // java.lang.Class prevLookupClass
        end local 0 // java.lang.Class lookupClass
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0      lookupClass  Ljava/lang/Class<*>;
            0    2     1  prevLookupClass  Ljava/lang/Class<*>;
            0    2     2     allowedModes  I
    Signature: (Ljava/lang/Class<*>;Ljava/lang/Class<*>;I)Ljava/lang/invoke/MethodHandles$Lookup;
    MethodParameters:
                 Name  Flags
      lookupClass      
      prevLookupClass  
      allowedModes     

  public java.lang.invoke.MethodHandles$Lookup in(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/invoke/MethodHandles$Lookup;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.Class requestedLookupClass
         0: .line 1533
            aload 1 /* requestedLookupClass */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 1534
            aload 1 /* requestedLookupClass */
            invokevirtual java.lang.Class.isPrimitive:()Z
            ifeq 3
         2: .line 1535
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 1 /* requestedLookupClass */
            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
         3: .line 1536
      StackMap locals:
      StackMap stack:
            aload 1 /* requestedLookupClass */
            invokevirtual java.lang.Class.isArray:()Z
            ifeq 5
         4: .line 1537
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 1 /* requestedLookupClass */
            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
         5: .line 1539
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.allowedModes:I
            iconst_m1
            if_icmpne 7
         6: .line 1540
            new java.lang.invoke.MethodHandles$Lookup
            dup
            aload 1 /* requestedLookupClass */
            aconst_null
            bipush 31
            invokespecial java.lang.invoke.MethodHandles$Lookup.<init>:(Ljava/lang/Class;Ljava/lang/Class;I)V
            areturn
         7: .line 1541
      StackMap locals:
      StackMap stack:
            aload 1 /* requestedLookupClass */
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.lookupClass:Ljava/lang/Class;
            if_acmpne 9
         8: .line 1542
            aload 0 /* this */
            areturn
         9: .line 1543
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.allowedModes:I
            bipush 31
            iand
            istore 2 /* newModes */
        start local 2 // int newModes
        10: .line 1544
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.lookupClass:Ljava/lang/Class;
            invokevirtual java.lang.Class.getModule:()Ljava/lang/Module;
            astore 3 /* fromModule */
        start local 3 // java.lang.Module fromModule
        11: .line 1545
            aload 1 /* requestedLookupClass */
            invokevirtual java.lang.Class.getModule:()Ljava/lang/Module;
            astore 4 /* targetModule */
        start local 4 // java.lang.Module targetModule
        12: .line 1546
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.previousLookupClass:()Ljava/lang/Class;
            astore 5 /* plc */
        start local 5 // java.lang.Class plc
        13: .line 1547
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.allowedModes:I
            bipush 32
            iand
            ifeq 17
        14: .line 1548
            getstatic java.lang.invoke.MethodHandles$Lookup.$assertionsDisabled:Z
            ifne 15
            aload 5 /* plc */
            ifnull 15
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        15: .line 1549
      StackMap locals: java.lang.invoke.MethodHandles$Lookup java.lang.Class int java.lang.Module java.lang.Module java.lang.Class
      StackMap stack:
            bipush 32
            istore 2 /* newModes */
        16: .line 1550
            goto 22
      StackMap locals:
      StackMap stack:
        17: aload 3 /* fromModule */
            aload 4 /* targetModule */
            if_acmpeq 22
        18: .line 1551
            aload 5 /* plc */
            ifnull 20
            aload 5 /* plc */
            aload 1 /* requestedLookupClass */
            invokestatic sun.invoke.util.VerifyAccess.isSameModule:(Ljava/lang/Class;Ljava/lang/Class;)Z
            ifne 20
        19: .line 1554
            iconst_0
            istore 2 /* newModes */
        20: .line 1557
      StackMap locals:
      StackMap stack:
            iload 2 /* newModes */
            bipush -31
            iand
            istore 2 /* newModes */
        21: .line 1559
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.lookupClass:Ljava/lang/Class;
            astore 5 /* plc */
        22: .line 1561
      StackMap locals:
      StackMap stack:
            iload 2 /* newModes */
            bipush 8
            iand
            ifeq 25
        23: .line 1562
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.lookupClass:Ljava/lang/Class;
            aload 1 /* requestedLookupClass */
            invokestatic sun.invoke.util.VerifyAccess.isSamePackage:(Ljava/lang/Class;Ljava/lang/Class;)Z
            ifne 25
        24: .line 1563
            iload 2 /* newModes */
            bipush -15
            iand
            istore 2 /* newModes */
        25: .line 1566
      StackMap locals:
      StackMap stack:
            iload 2 /* newModes */
            iconst_2
            iand
            ifeq 28
        26: .line 1567
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.lookupClass:Ljava/lang/Class;
            aload 1 /* requestedLookupClass */
            invokestatic sun.invoke.util.VerifyAccess.isSamePackageMember:(Ljava/lang/Class;Ljava/lang/Class;)Z
            ifne 28
        27: .line 1568
            iload 2 /* newModes */
            bipush -7
            iand
            istore 2 /* newModes */
        28: .line 1570
      StackMap locals:
      StackMap stack:
            iload 2 /* newModes */
            bipush 33
            iand
            ifeq 31
        29: .line 1571
            aload 1 /* requestedLookupClass */
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.lookupClass:Ljava/lang/Class;
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.prevLookupClass:Ljava/lang/Class;
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.allowedModes:I
            invokestatic sun.invoke.util.VerifyAccess.isClassAccessible:(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/Class;I)Z
            ifne 31
        30: .line 1574
            iconst_0
            istore 2 /* newModes */
        31: .line 1576
      StackMap locals:
      StackMap stack:
            aload 1 /* requestedLookupClass */
            aload 5 /* plc */
            iload 2 /* newModes */
            invokestatic java.lang.invoke.MethodHandles$Lookup.newLookup:(Ljava/lang/Class;Ljava/lang/Class;I)Ljava/lang/invoke/MethodHandles$Lookup;
            areturn
        end local 5 // java.lang.Class plc
        end local 4 // java.lang.Module targetModule
        end local 3 // java.lang.Module fromModule
        end local 2 // int newModes
        end local 1 // java.lang.Class requestedLookupClass
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   32     0                  this  Ljava/lang/invoke/MethodHandles$Lookup;
            0   32     1  requestedLookupClass  Ljava/lang/Class<*>;
           10   32     2              newModes  I
           11   32     3            fromModule  Ljava/lang/Module;
           12   32     4          targetModule  Ljava/lang/Module;
           13   32     5                   plc  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)Ljava/lang/invoke/MethodHandles$Lookup;
    MethodParameters:
                      Name  Flags
      requestedLookupClass  

  public java.lang.invoke.MethodHandles$Lookup dropLookupMode(int);
    descriptor: (I)Ljava/lang/invoke/MethodHandles$Lookup;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // int modeToDrop
         0: .line 1620
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupModes:()I
            istore 2 /* oldModes */
        start local 2 // int oldModes
         1: .line 1621
            iload 2 /* oldModes */
            iload 1 /* modeToDrop */
            iconst_4
            ior
            iconst_m1
            ixor
            iand
            istore 3 /* newModes */
        start local 3 // int newModes
         2: .line 1622
            iload 1 /* modeToDrop */
            lookupswitch { // 6
                    1: 3
                    2: 6
                    4: 6
                    8: 5
                   16: 4
                   32: 6
              default: 7
          }
         3: .line 1623
      StackMap locals: int int
      StackMap stack:
            iload 3 /* newModes */
            bipush -32
            iand
            istore 3 /* newModes */
            goto 8
         4: .line 1624
      StackMap locals:
      StackMap stack:
            iload 3 /* newModes */
            bipush -11
            iand
            istore 3 /* newModes */
            goto 8
         5: .line 1625
      StackMap locals:
      StackMap stack:
            iload 3 /* newModes */
            bipush -3
            iand
            istore 3 /* newModes */
            goto 8
         6: .line 1628
      StackMap locals:
      StackMap stack:
            goto 8
         7: .line 1629
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            iload 1 /* modeToDrop */
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " is not a valid mode to drop"
            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 1631
      StackMap locals:
      StackMap stack:
            iload 3 /* newModes */
            iload 2 /* oldModes */
            if_icmpne 9
            aload 0 /* this */
            areturn
         9: .line 1632
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupClass:()Ljava/lang/Class;
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.previousLookupClass:()Ljava/lang/Class;
            iload 3 /* newModes */
            invokestatic java.lang.invoke.MethodHandles$Lookup.newLookup:(Ljava/lang/Class;Ljava/lang/Class;I)Ljava/lang/invoke/MethodHandles$Lookup;
            areturn
        end local 3 // int newModes
        end local 2 // int oldModes
        end local 1 // int modeToDrop
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0        this  Ljava/lang/invoke/MethodHandles$Lookup;
            0   10     1  modeToDrop  I
            1   10     2    oldModes  I
            2   10     3    newModes  I
    MethodParameters:
            Name  Flags
      modeToDrop  

  public java.lang.Class<?> defineClass(byte[]);
    descriptor: ([B)Ljava/lang/Class;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // byte[] bytes
         0: .line 1681
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.ensureDefineClassPermission:()V
         1: .line 1682
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupModes:()I
            bipush 8
            iand
            ifne 3
         2: .line 1683
            new java.lang.IllegalAccessException
            dup
            ldc "Lookup does not have PACKAGE access"
            invokespecial java.lang.IllegalAccessException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 1684
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* bytes */
            invokevirtual byte[].clone:()Ljava/lang/Object;
            checkcast byte[]
            invokevirtual java.lang.invoke.MethodHandles$Lookup.makeClassDefiner:([B)Ljava/lang/invoke/MethodHandles$Lookup$ClassDefiner;
            iconst_0
            invokevirtual java.lang.invoke.MethodHandles$Lookup$ClassDefiner.defineClass:(Z)Ljava/lang/Class;
            areturn
        end local 1 // byte[] bytes
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    4     1  bytes  [B
    Exceptions:
      throws java.lang.IllegalAccessException
    Signature: ([B)Ljava/lang/Class<*>;
    MethodParameters:
       Name  Flags
      bytes  

  private void ensureDefineClassPermission();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
         0: .line 1688
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.allowedModes:I
            iconst_m1
            if_icmpne 1
            return
         1: .line 1690
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.hasFullPrivilegeAccess:()Z
            ifne 5
         2: .line 1691
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            astore 1 /* sm */
        start local 1 // java.lang.SecurityManager sm
         3: .line 1692
            aload 1 /* sm */
            ifnull 5
         4: .line 1693
            aload 1 /* sm */
            new java.lang.RuntimePermission
            dup
            ldc "defineClass"
            invokespecial java.lang.RuntimePermission.<init>:(Ljava/lang/String;)V
            invokevirtual java.lang.SecurityManager.checkPermission:(Ljava/security/Permission;)V
        end local 1 // java.lang.SecurityManager sm
         5: .line 1695
      StackMap locals:
      StackMap stack:
            return
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Ljava/lang/invoke/MethodHandles$Lookup;
            3    5     1    sm  Ljava/lang/SecurityManager;

  public java.lang.invoke.MethodHandles$Lookup defineHiddenClass(byte[], boolean, java.lang.invoke.MethodHandles$Lookup$ClassOption[]);
    descriptor: ([BZ[Ljava/lang/invoke/MethodHandles$Lookup$ClassOption;)Ljava/lang/invoke/MethodHandles$Lookup;
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // byte[] bytes
        start local 2 // boolean initialize
        start local 3 // java.lang.invoke.MethodHandles$Lookup$ClassOption[] options
         0: .line 1957
            aload 1 /* bytes */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 1958
            aload 3 /* options */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 1960
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.ensureDefineClassPermission:()V
         3: .line 1961
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.hasFullPrivilegeAccess:()Z
            ifne 5
         4: .line 1962
            new java.lang.IllegalAccessException
            dup
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 0 /* this */
            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
         5: .line 1965
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* bytes */
            invokevirtual byte[].clone:()Ljava/lang/Object;
            checkcast byte[]
            aload 3 /* options */
            invokestatic java.util.Set.of:([Ljava/lang/Object;)Ljava/util/Set;
            iconst_0
            invokevirtual java.lang.invoke.MethodHandles$Lookup.makeHiddenClassDefiner:([BLjava/util/Set;Z)Ljava/lang/invoke/MethodHandles$Lookup$ClassDefiner;
            iload 2 /* initialize */
            invokevirtual java.lang.invoke.MethodHandles$Lookup$ClassDefiner.defineClassAsLookup:(Z)Ljava/lang/invoke/MethodHandles$Lookup;
            areturn
        end local 3 // java.lang.invoke.MethodHandles$Lookup$ClassOption[] options
        end local 2 // boolean initialize
        end local 1 // byte[] bytes
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    6     1       bytes  [B
            0    6     2  initialize  Z
            0    6     3     options  [Ljava/lang/invoke/MethodHandles$Lookup$ClassOption;
    Exceptions:
      throws java.lang.IllegalAccessException
    MethodParameters:
            Name  Flags
      bytes       
      initialize  
      options     

  java.lang.invoke.MethodHandles$Lookup defineHiddenClassWithClassData(byte[], java.lang.Object, java.lang.invoke.MethodHandles$Lookup$ClassOption[]);
    descriptor: ([BLjava/lang/Object;[Ljava/lang/invoke/MethodHandles$Lookup$ClassOption;)Ljava/lang/invoke/MethodHandles$Lookup;
    flags: (0x0080) ACC_VARARGS
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // byte[] bytes
        start local 2 // java.lang.Object classData
        start local 3 // java.lang.invoke.MethodHandles$Lookup$ClassOption[] options
         0: .line 2013
            aload 1 /* bytes */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 2014
            aload 2 /* classData */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 2015
            aload 3 /* options */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 2017
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.ensureDefineClassPermission:()V
         4: .line 2018
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.hasFullPrivilegeAccess:()Z
            ifne 6
         5: .line 2019
            new java.lang.IllegalAccessException
            dup
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 0 /* this */
            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
         6: .line 2022
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* bytes */
            invokevirtual byte[].clone:()Ljava/lang/Object;
            checkcast byte[]
            aload 3 /* options */
            invokestatic java.util.Set.of:([Ljava/lang/Object;)Ljava/util/Set;
            iconst_0
            invokevirtual java.lang.invoke.MethodHandles$Lookup.makeHiddenClassDefiner:([BLjava/util/Set;Z)Ljava/lang/invoke/MethodHandles$Lookup$ClassDefiner;
         7: .line 2023
            iconst_1
            aload 2 /* classData */
            invokevirtual java.lang.invoke.MethodHandles$Lookup$ClassDefiner.defineClassAsLookup:(ZLjava/lang/Object;)Ljava/lang/invoke/MethodHandles$Lookup;
         8: .line 2022
            areturn
        end local 3 // java.lang.invoke.MethodHandles$Lookup$ClassOption[] options
        end local 2 // java.lang.Object classData
        end local 1 // byte[] bytes
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    9     0       this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    9     1      bytes  [B
            0    9     2  classData  Ljava/lang/Object;
            0    9     3    options  [Ljava/lang/invoke/MethodHandles$Lookup$ClassOption;
    Exceptions:
      throws java.lang.IllegalAccessException
    MethodParameters:
           Name  Flags
      bytes      
      classData  
      options    

  private java.lang.invoke.MethodHandles$Lookup$ClassDefiner makeClassDefiner(byte[]);
    descriptor: ([B)Ljava/lang/invoke/MethodHandles$Lookup$ClassDefiner;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // byte[] bytes
         0: .line 2127
            aload 1 /* bytes */
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getPackageName:()Ljava/lang/String;
            invokestatic java.lang.invoke.MethodHandles$Lookup$ClassFile.newInstance:([BLjava/lang/String;)Ljava/lang/invoke/MethodHandles$Lookup$ClassFile;
            astore 2 /* cf */
        start local 2 // java.lang.invoke.MethodHandles$Lookup$ClassFile cf
         1: .line 2128
            new java.lang.invoke.MethodHandles$Lookup$ClassDefiner
            dup
            aload 0 /* this */
            aload 2 /* cf */
            iconst_4
            invokespecial java.lang.invoke.MethodHandles$Lookup$ClassDefiner.<init>:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/invoke/MethodHandles$Lookup$ClassFile;I)V
            areturn
        end local 2 // java.lang.invoke.MethodHandles$Lookup$ClassFile cf
        end local 1 // byte[] bytes
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    2     1  bytes  [B
            1    2     2     cf  Ljava/lang/invoke/MethodHandles$Lookup$ClassFile;
    MethodParameters:
       Name  Flags
      bytes  

  java.lang.invoke.MethodHandles$Lookup$ClassDefiner makeHiddenClassDefiner(byte[]);
    descriptor: ([B)Ljava/lang/invoke/MethodHandles$Lookup$ClassDefiner;
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // byte[] bytes
         0: .line 2145
            aload 1 /* bytes */
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getPackageName:()Ljava/lang/String;
            invokestatic java.lang.invoke.MethodHandles$Lookup$ClassFile.newInstance:([BLjava/lang/String;)Ljava/lang/invoke/MethodHandles$Lookup$ClassFile;
            astore 2 /* cf */
        start local 2 // java.lang.invoke.MethodHandles$Lookup$ClassFile cf
         1: .line 2146
            aload 0 /* this */
            aload 2 /* cf */
            invokestatic java.util.Set.of:()Ljava/util/Set;
            iconst_0
            invokevirtual java.lang.invoke.MethodHandles$Lookup.makeHiddenClassDefiner:(Ljava/lang/invoke/MethodHandles$Lookup$ClassFile;Ljava/util/Set;Z)Ljava/lang/invoke/MethodHandles$Lookup$ClassDefiner;
            areturn
        end local 2 // java.lang.invoke.MethodHandles$Lookup$ClassFile cf
        end local 1 // byte[] bytes
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    2     1  bytes  [B
            1    2     2     cf  Ljava/lang/invoke/MethodHandles$Lookup$ClassFile;
    MethodParameters:
       Name  Flags
      bytes  

  java.lang.invoke.MethodHandles$Lookup$ClassDefiner makeHiddenClassDefiner(byte[], java.util.Set<java.lang.invoke.MethodHandles$Lookup$ClassOption>, boolean);
    descriptor: ([BLjava/util/Set;Z)Ljava/lang/invoke/MethodHandles$Lookup$ClassDefiner;
    flags: (0x0000) 
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // byte[] bytes
        start local 2 // java.util.Set options
        start local 3 // boolean accessVmAnnotations
         0: .line 2168
            aload 1 /* bytes */
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getPackageName:()Ljava/lang/String;
            invokestatic java.lang.invoke.MethodHandles$Lookup$ClassFile.newInstance:([BLjava/lang/String;)Ljava/lang/invoke/MethodHandles$Lookup$ClassFile;
            astore 4 /* cf */
        start local 4 // java.lang.invoke.MethodHandles$Lookup$ClassFile cf
         1: .line 2169
            aload 0 /* this */
            aload 4 /* cf */
            aload 2 /* options */
            iload 3 /* accessVmAnnotations */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.makeHiddenClassDefiner:(Ljava/lang/invoke/MethodHandles$Lookup$ClassFile;Ljava/util/Set;Z)Ljava/lang/invoke/MethodHandles$Lookup$ClassDefiner;
            areturn
        end local 4 // java.lang.invoke.MethodHandles$Lookup$ClassFile cf
        end local 3 // boolean accessVmAnnotations
        end local 2 // java.util.Set options
        end local 1 // byte[] bytes
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    2     0                 this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    2     1                bytes  [B
            0    2     2              options  Ljava/util/Set<Ljava/lang/invoke/MethodHandles$Lookup$ClassOption;>;
            0    2     3  accessVmAnnotations  Z
            1    2     4                   cf  Ljava/lang/invoke/MethodHandles$Lookup$ClassFile;
    Signature: ([BLjava/util/Set<Ljava/lang/invoke/MethodHandles$Lookup$ClassOption;>;Z)Ljava/lang/invoke/MethodHandles$Lookup$ClassDefiner;
    MethodParameters:
                     Name  Flags
      bytes                
      options              
      accessVmAnnotations  

  java.lang.invoke.MethodHandles$Lookup$ClassDefiner makeHiddenClassDefiner(java.lang.String, byte[]);
    descriptor: (Ljava/lang/String;[B)Ljava/lang/invoke/MethodHandles$Lookup$ClassDefiner;
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.String name
        start local 2 // byte[] bytes
         0: .line 2182
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* bytes */
            invokestatic java.lang.invoke.MethodHandles$Lookup$ClassFile.newInstanceNoCheck:(Ljava/lang/String;[B)Ljava/lang/invoke/MethodHandles$Lookup$ClassFile;
            invokestatic java.util.Set.of:()Ljava/util/Set;
            iconst_0
            invokevirtual java.lang.invoke.MethodHandles$Lookup.makeHiddenClassDefiner:(Ljava/lang/invoke/MethodHandles$Lookup$ClassFile;Ljava/util/Set;Z)Ljava/lang/invoke/MethodHandles$Lookup$ClassDefiner;
            areturn
        end local 2 // byte[] bytes
        end local 1 // java.lang.String name
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    1     1   name  Ljava/lang/String;
            0    1     2  bytes  [B
    MethodParameters:
       Name  Flags
      name   
      bytes  

  private java.lang.invoke.MethodHandles$Lookup$ClassDefiner makeHiddenClassDefiner(java.lang.invoke.MethodHandles$Lookup$ClassFile, java.util.Set<java.lang.invoke.MethodHandles$Lookup$ClassOption>, boolean);
    descriptor: (Ljava/lang/invoke/MethodHandles$Lookup$ClassFile;Ljava/util/Set;Z)Ljava/lang/invoke/MethodHandles$Lookup$ClassDefiner;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.invoke.MethodHandles$Lookup$ClassFile cf
        start local 2 // java.util.Set options
        start local 3 // boolean accessVmAnnotations
         0: .line 2196
            iconst_2
            aload 2 /* options */
            invokestatic java.lang.invoke.MethodHandles$Lookup$ClassOption.optionsToFlag:(Ljava/util/Set;)I
            ior
            istore 4 /* flags */
        start local 4 // int flags
         1: .line 2197
            iload 3 /* accessVmAnnotations */
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.lookupClass:Ljava/lang/Class;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            invokestatic jdk.internal.misc.VM.isSystemDomainLoader:(Ljava/lang/ClassLoader;)Z
            ior
            ifeq 3
         2: .line 2200
            iload 4 /* flags */
            bipush 8
            ior
            istore 4 /* flags */
         3: .line 2203
      StackMap locals: int
      StackMap stack:
            new java.lang.invoke.MethodHandles$Lookup$ClassDefiner
            dup
            aload 0 /* this */
            aload 1 /* cf */
            iload 4 /* flags */
            invokespecial java.lang.invoke.MethodHandles$Lookup$ClassDefiner.<init>:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/invoke/MethodHandles$Lookup$ClassFile;I)V
            areturn
        end local 4 // int flags
        end local 3 // boolean accessVmAnnotations
        end local 2 // java.util.Set options
        end local 1 // java.lang.invoke.MethodHandles$Lookup$ClassFile cf
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    4     0                 this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    4     1                   cf  Ljava/lang/invoke/MethodHandles$Lookup$ClassFile;
            0    4     2              options  Ljava/util/Set<Ljava/lang/invoke/MethodHandles$Lookup$ClassOption;>;
            0    4     3  accessVmAnnotations  Z
            1    4     4                flags  I
    Signature: (Ljava/lang/invoke/MethodHandles$Lookup$ClassFile;Ljava/util/Set<Ljava/lang/invoke/MethodHandles$Lookup$ClassOption;>;Z)Ljava/lang/invoke/MethodHandles$Lookup$ClassDefiner;
    MethodParameters:
                     Name  Flags
      cf                   
      options              
      accessVmAnnotations  

  private java.security.ProtectionDomain lookupClassProtectionDomain();
    descriptor: ()Ljava/security/ProtectionDomain;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
         0: .line 2266
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.cachedProtectionDomain:Ljava/security/ProtectionDomain;
            astore 1 /* pd */
        start local 1 // java.security.ProtectionDomain pd
         1: .line 2267
            aload 1 /* pd */
            ifnonnull 3
         2: .line 2268
            aload 0 /* this */
            invokestatic jdk.internal.access.SharedSecrets.getJavaLangAccess:()Ljdk/internal/access/JavaLangAccess;
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.lookupClass:Ljava/lang/Class;
            invokeinterface jdk.internal.access.JavaLangAccess.protectionDomain:(Ljava/lang/Class;)Ljava/security/ProtectionDomain;
            dup
            astore 1 /* pd */
            putfield java.lang.invoke.MethodHandles$Lookup.cachedProtectionDomain:Ljava/security/ProtectionDomain;
         3: .line 2270
      StackMap locals: java.security.ProtectionDomain
      StackMap stack:
            aload 1 /* pd */
            areturn
        end local 1 // java.security.ProtectionDomain pd
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljava/lang/invoke/MethodHandles$Lookup;
            1    4     1    pd  Ljava/security/ProtectionDomain;

  private static void checkUnprivilegedlookupClass(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.lang.Class lookupClass
         0: .line 2289
            aload 0 /* lookupClass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            astore 1 /* name */
        start local 1 // java.lang.String name
         1: .line 2290
            aload 1 /* name */
            ldc "java.lang.invoke."
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 3
         2: .line 2291
            new java.lang.StringBuilder
            dup
            ldc "illegal lookupClass: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* lookupClass */
            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 2292
      StackMap locals: java.lang.String
      StackMap stack:
            return
        end local 1 // java.lang.String name
        end local 0 // java.lang.Class lookupClass
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0  lookupClass  Ljava/lang/Class<*>;
            1    4     1         name  Ljava/lang/String;
    Signature: (Ljava/lang/Class<*>;)V
    MethodParameters:
             Name  Flags
      lookupClass  

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
         0: .line 2331
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.lookupClass:Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            astore 1 /* cname */
        start local 1 // java.lang.String cname
         1: .line 2332
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.prevLookupClass:Ljava/lang/Class;
            ifnull 3
         2: .line 2333
            new java.lang.StringBuilder
            dup
            aload 1 /* cname */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "/"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.prevLookupClass:Ljava/lang/Class;
            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;
            astore 1 /* cname */
         3: .line 2334
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.allowedModes:I
            lookupswitch { // 11
                   -1: 11
                    0: 4
                    1: 6
                    9: 8
                   11: 9
                   15: 10
                   17: 7
                   25: 8
                   27: 9
                   31: 10
                   32: 5
              default: 12
          }
         4: .line 2336
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 1 /* cname */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "/noaccess"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
         5: .line 2338
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 1 /* cname */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "/publicLookup"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
         6: .line 2340
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 1 /* cname */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "/public"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
         7: .line 2342
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 1 /* cname */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "/module"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
         8: .line 2345
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 1 /* cname */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "/package"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
         9: .line 2348
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 1 /* cname */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "/private"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        10: .line 2351
      StackMap locals:
      StackMap stack:
            aload 1 /* cname */
            areturn
        11: .line 2353
      StackMap locals:
      StackMap stack:
            ldc "/trusted"
            areturn
        12: .line 2355
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 1 /* cname */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "/"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.allowedModes:I
            invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* cname */
        13: .line 2356
            getstatic java.lang.invoke.MethodHandles$Lookup.$assertionsDisabled:Z
            ifne 14
            new java.lang.AssertionError
            dup
            aload 1 /* cname */
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        14: .line 2357
      StackMap locals:
      StackMap stack:
            aload 1 /* cname */
            areturn
        end local 1 // java.lang.String cname
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   15     0   this  Ljava/lang/invoke/MethodHandles$Lookup;
            1   15     1  cname  Ljava/lang/String;

  public java.lang.invoke.MethodHandle findStatic(java.lang.Class<?>, java.lang.String, java.lang.invoke.MethodType);
    descriptor: (Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=4
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.Class refc
        start local 2 // java.lang.String name
        start local 3 // java.lang.invoke.MethodType type
         0: .line 2398
            aload 0 /* this */
            bipush 6
            aload 1 /* refc */
            aload 2 /* name */
            aload 3 /* type */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.resolveOrFail:(BLjava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MemberName;
            astore 4 /* method */
        start local 4 // java.lang.invoke.MemberName method
         1: .line 2399
            aload 0 /* this */
            bipush 6
            aload 1 /* refc */
            aload 4 /* method */
            aload 0 /* this */
            aload 4 /* method */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.findBoundCallerLookup:(Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/MethodHandles$Lookup;
            invokevirtual java.lang.invoke.MethodHandles$Lookup.getDirectMethod:(BLjava/lang/Class;Ljava/lang/invoke/MemberName;Ljava/lang/invoke/MethodHandles$Lookup;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 4 // java.lang.invoke.MemberName method
        end local 3 // java.lang.invoke.MethodType type
        end local 2 // java.lang.String name
        end local 1 // java.lang.Class refc
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    2     1    refc  Ljava/lang/Class<*>;
            0    2     2    name  Ljava/lang/String;
            0    2     3    type  Ljava/lang/invoke/MethodType;
            1    2     4  method  Ljava/lang/invoke/MemberName;
    Exceptions:
      throws java.lang.NoSuchMethodException, java.lang.IllegalAccessException
    Signature: (Ljava/lang/Class<*>;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
      Name  Flags
      refc  
      name  
      type  

  public java.lang.invoke.MethodHandle findVirtual(java.lang.Class<?>, java.lang.String, java.lang.invoke.MethodType);
    descriptor: (Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=4
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.Class refc
        start local 2 // java.lang.String name
        start local 3 // java.lang.invoke.MethodType type
         0: .line 2482
            aload 1 /* refc */
            ldc Ljava/lang/invoke/MethodHandle;
            if_acmpne 3
         1: .line 2483
            aload 0 /* this */
            aload 2 /* name */
            aload 3 /* type */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.findVirtualForMH:(Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            astore 4 /* mh */
        start local 4 // java.lang.invoke.MethodHandle mh
         2: .line 2484
            aload 4 /* mh */
            ifnull 6
            aload 4 /* mh */
            areturn
        end local 4 // java.lang.invoke.MethodHandle mh
         3: .line 2485
      StackMap locals:
      StackMap stack:
            aload 1 /* refc */
            ldc Ljava/lang/invoke/VarHandle;
            if_acmpne 6
         4: .line 2486
            aload 0 /* this */
            aload 2 /* name */
            aload 3 /* type */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.findVirtualForVH:(Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            astore 4 /* mh */
        start local 4 // java.lang.invoke.MethodHandle mh
         5: .line 2487
            aload 4 /* mh */
            ifnull 6
            aload 4 /* mh */
            areturn
        end local 4 // java.lang.invoke.MethodHandle mh
         6: .line 2489
      StackMap locals:
      StackMap stack:
            aload 1 /* refc */
            invokevirtual java.lang.Class.isInterface:()Z
            ifeq 7
            bipush 9
            goto 8
      StackMap locals:
      StackMap stack:
         7: iconst_5
      StackMap locals:
      StackMap stack: int
         8: istore 4 /* refKind */
        start local 4 // byte refKind
         9: .line 2490
            aload 0 /* this */
            iload 4 /* refKind */
            aload 1 /* refc */
            aload 2 /* name */
            aload 3 /* type */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.resolveOrFail:(BLjava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MemberName;
            astore 5 /* method */
        start local 5 // java.lang.invoke.MemberName method
        10: .line 2491
            aload 0 /* this */
            iload 4 /* refKind */
            aload 1 /* refc */
            aload 5 /* method */
            aload 0 /* this */
            aload 5 /* method */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.findBoundCallerLookup:(Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/MethodHandles$Lookup;
            invokevirtual java.lang.invoke.MethodHandles$Lookup.getDirectMethod:(BLjava/lang/Class;Ljava/lang/invoke/MemberName;Ljava/lang/invoke/MethodHandles$Lookup;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 5 // java.lang.invoke.MemberName method
        end local 4 // byte refKind
        end local 3 // java.lang.invoke.MethodType type
        end local 2 // java.lang.String name
        end local 1 // java.lang.Class refc
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0     this  Ljava/lang/invoke/MethodHandles$Lookup;
            0   11     1     refc  Ljava/lang/Class<*>;
            0   11     2     name  Ljava/lang/String;
            0   11     3     type  Ljava/lang/invoke/MethodType;
            2    3     4       mh  Ljava/lang/invoke/MethodHandle;
            5    6     4       mh  Ljava/lang/invoke/MethodHandle;
            9   11     4  refKind  B
           10   11     5   method  Ljava/lang/invoke/MemberName;
    Exceptions:
      throws java.lang.NoSuchMethodException, java.lang.IllegalAccessException
    Signature: (Ljava/lang/Class<*>;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
      Name  Flags
      refc  
      name  
      type  

  private java.lang.invoke.MethodHandle findVirtualForMH(java.lang.String, java.lang.invoke.MethodType);
    descriptor: (Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.String name
        start local 2 // java.lang.invoke.MethodType type
         0: .line 2495
            ldc "invoke"
            aload 1 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 2496
            aload 2 /* type */
            invokestatic java.lang.invoke.MethodHandles.invoker:(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            areturn
         2: .line 2497
      StackMap locals:
      StackMap stack:
            ldc "invokeExact"
            aload 1 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 2498
            aload 2 /* type */
            invokestatic java.lang.invoke.MethodHandles.exactInvoker:(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            areturn
         4: .line 2499
      StackMap locals:
      StackMap stack:
            getstatic java.lang.invoke.MethodHandles$Lookup.$assertionsDisabled:Z
            ifne 5
            aload 1 /* name */
            invokestatic java.lang.invoke.MemberName.isMethodHandleInvokeName:(Ljava/lang/String;)Z
            ifeq 5
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         5: .line 2500
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 2 // java.lang.invoke.MethodType type
        end local 1 // java.lang.String name
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    6     1  name  Ljava/lang/String;
            0    6     2  type  Ljava/lang/invoke/MethodType;
    MethodParameters:
      Name  Flags
      name  
      type  

  private java.lang.invoke.MethodHandle findVirtualForVH(java.lang.String, java.lang.invoke.MethodType);
    descriptor: (Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.String name
        start local 2 // java.lang.invoke.MethodType type
         0: .line 2504
            aload 1 /* name */
            invokestatic java.lang.invoke.VarHandle$AccessMode.valueFromMethodName:(Ljava/lang/String;)Ljava/lang/invoke/VarHandle$AccessMode;
            aload 2 /* type */
            invokestatic java.lang.invoke.MethodHandles.varHandleInvoker:(Ljava/lang/invoke/VarHandle$AccessMode;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
         1: areturn
         2: .line 2505
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
            pop
         3: .line 2506
            aconst_null
            areturn
        end local 2 // java.lang.invoke.MethodType type
        end local 1 // java.lang.String name
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    4     1  name  Ljava/lang/String;
            0    4     2  type  Ljava/lang/invoke/MethodType;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.IllegalArgumentException
    MethodParameters:
      Name  Flags
      name  
      type  

  public java.lang.invoke.MethodHandle findConstructor(java.lang.Class<?>, java.lang.invoke.MethodType);
    descriptor: (Ljava/lang/Class;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.Class refc
        start local 2 // java.lang.invoke.MethodType type
         0: .line 2556
            aload 1 /* refc */
            invokevirtual java.lang.Class.isArray:()Z
            ifeq 2
         1: .line 2557
            new java.lang.NoSuchMethodException
            dup
            new java.lang.StringBuilder
            dup
            ldc "no constructor for array class: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* refc */
            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;
            invokespecial java.lang.NoSuchMethodException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 2559
      StackMap locals:
      StackMap stack:
            ldc "<init>"
            astore 3 /* name */
        start local 3 // java.lang.String name
         3: .line 2560
            aload 0 /* this */
            bipush 8
            aload 1 /* refc */
            aload 3 /* name */
            aload 2 /* type */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.resolveOrFail:(BLjava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MemberName;
            astore 4 /* ctor */
        start local 4 // java.lang.invoke.MemberName ctor
         4: .line 2561
            aload 0 /* this */
            aload 1 /* refc */
            aload 4 /* ctor */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.getDirectConstructor:(Ljava/lang/Class;Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 4 // java.lang.invoke.MemberName ctor
        end local 3 // java.lang.String name
        end local 2 // java.lang.invoke.MethodType type
        end local 1 // java.lang.Class refc
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    5     1  refc  Ljava/lang/Class<*>;
            0    5     2  type  Ljava/lang/invoke/MethodType;
            3    5     3  name  Ljava/lang/String;
            4    5     4  ctor  Ljava/lang/invoke/MemberName;
    Exceptions:
      throws java.lang.NoSuchMethodException, java.lang.IllegalAccessException
    Signature: (Ljava/lang/Class<*>;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
      Name  Flags
      refc  
      type  

  public java.lang.Class<?> findClass(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Class;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.String targetName
         0: .line 2585
            aload 1 /* targetName */
            iconst_0
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.lookupClass:Ljava/lang/Class;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
            astore 2 /* targetClass */
        start local 2 // java.lang.Class targetClass
         1: .line 2586
            aload 0 /* this */
            aload 2 /* targetClass */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.accessClass:(Ljava/lang/Class;)Ljava/lang/Class;
            areturn
        end local 2 // java.lang.Class targetClass
        end local 1 // java.lang.String targetName
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    2     1   targetName  Ljava/lang/String;
            1    2     2  targetClass  Ljava/lang/Class<*>;
    Exceptions:
      throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException
    Signature: (Ljava/lang/String;)Ljava/lang/Class<*>;
    MethodParameters:
            Name  Flags
      targetName  

  public java.lang.Class<?> ensureInitialized(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/Class;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.Class targetClass
         0: .line 2611
            aload 1 /* targetClass */
            invokevirtual java.lang.Class.isPrimitive:()Z
            ifeq 2
         1: .line 2612
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 1 /* 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
         2: .line 2613
      StackMap locals:
      StackMap stack:
            aload 1 /* targetClass */
            invokevirtual java.lang.Class.isArray:()Z
            ifeq 4
         3: .line 2614
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 1 /* 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
         4: .line 2616
      StackMap locals:
      StackMap stack:
            aload 1 /* targetClass */
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.lookupClass:Ljava/lang/Class;
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.prevLookupClass:Ljava/lang/Class;
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.allowedModes:I
            invokestatic sun.invoke.util.VerifyAccess.isClassAccessible:(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/Class;I)Z
            ifne 6
         5: .line 2617
            new java.lang.invoke.MemberName
            dup
            aload 1 /* targetClass */
            invokespecial java.lang.invoke.MemberName.<init>:(Ljava/lang/Class;)V
            ldc "access violation"
            aload 0 /* this */
            invokevirtual java.lang.invoke.MemberName.makeAccessException:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/IllegalAccessException;
            athrow
         6: .line 2619
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* targetClass */
            aconst_null
            invokevirtual java.lang.invoke.MethodHandles$Lookup.checkSecurityManager:(Ljava/lang/Class;Ljava/lang/invoke/MemberName;)V
         7: .line 2622
            invokestatic jdk.internal.misc.Unsafe.getUnsafe:()Ljdk/internal/misc/Unsafe;
            aload 1 /* targetClass */
            invokevirtual jdk.internal.misc.Unsafe.ensureClassInitialized:(Ljava/lang/Class;)V
         8: .line 2623
            aload 1 /* targetClass */
            areturn
        end local 1 // java.lang.Class targetClass
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    9     0         this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    9     1  targetClass  Ljava/lang/Class<*>;
    Exceptions:
      throws java.lang.IllegalAccessException
    Signature: (Ljava/lang/Class<*>;)Ljava/lang/Class<*>;
    MethodParameters:
             Name  Flags
      targetClass  

  public java.lang.Class<?> accessClass(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/Class;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.Class targetClass
         0: .line 2695
            aload 1 /* targetClass */
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.lookupClass:Ljava/lang/Class;
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.prevLookupClass:Ljava/lang/Class;
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.allowedModes:I
            invokestatic sun.invoke.util.VerifyAccess.isClassAccessible:(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/Class;I)Z
            ifne 2
         1: .line 2696
            new java.lang.invoke.MemberName
            dup
            aload 1 /* targetClass */
            invokespecial java.lang.invoke.MemberName.<init>:(Ljava/lang/Class;)V
            ldc "access violation"
            aload 0 /* this */
            invokevirtual java.lang.invoke.MemberName.makeAccessException:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/IllegalAccessException;
            athrow
         2: .line 2698
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* targetClass */
            aconst_null
            invokevirtual java.lang.invoke.MethodHandles$Lookup.checkSecurityManager:(Ljava/lang/Class;Ljava/lang/invoke/MemberName;)V
         3: .line 2699
            aload 1 /* targetClass */
            areturn
        end local 1 // java.lang.Class targetClass
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0         this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    4     1  targetClass  Ljava/lang/Class<*>;
    Exceptions:
      throws java.lang.IllegalAccessException
    Signature: (Ljava/lang/Class<*>;)Ljava/lang/Class<*>;
    MethodParameters:
             Name  Flags
      targetClass  

  public java.lang.invoke.MethodHandle findSpecial(java.lang.Class<?>, java.lang.String, java.lang.invoke.MethodType, java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=7, args_size=5
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.Class refc
        start local 2 // java.lang.String name
        start local 3 // java.lang.invoke.MethodType type
        start local 4 // java.lang.Class specialCaller
         0: .line 2777
            aload 0 /* this */
            aload 4 /* specialCaller */
            aload 1 /* refc */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.checkSpecialCaller:(Ljava/lang/Class;Ljava/lang/Class;)V
         1: .line 2778
            aload 0 /* this */
            aload 4 /* specialCaller */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.in:(Ljava/lang/Class;)Ljava/lang/invoke/MethodHandles$Lookup;
            astore 5 /* specialLookup */
        start local 5 // java.lang.invoke.MethodHandles$Lookup specialLookup
         2: .line 2779
            aload 5 /* specialLookup */
            bipush 7
            aload 1 /* refc */
            aload 2 /* name */
            aload 3 /* type */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.resolveOrFail:(BLjava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MemberName;
            astore 6 /* method */
        start local 6 // java.lang.invoke.MemberName method
         3: .line 2780
            aload 5 /* specialLookup */
            bipush 7
            aload 1 /* refc */
            aload 6 /* method */
            aload 0 /* this */
            aload 6 /* method */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.findBoundCallerLookup:(Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/MethodHandles$Lookup;
            invokevirtual java.lang.invoke.MethodHandles$Lookup.getDirectMethod:(BLjava/lang/Class;Ljava/lang/invoke/MemberName;Ljava/lang/invoke/MethodHandles$Lookup;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 6 // java.lang.invoke.MemberName method
        end local 5 // java.lang.invoke.MethodHandles$Lookup specialLookup
        end local 4 // java.lang.Class specialCaller
        end local 3 // java.lang.invoke.MethodType type
        end local 2 // java.lang.String name
        end local 1 // java.lang.Class refc
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    4     1           refc  Ljava/lang/Class<*>;
            0    4     2           name  Ljava/lang/String;
            0    4     3           type  Ljava/lang/invoke/MethodType;
            0    4     4  specialCaller  Ljava/lang/Class<*>;
            2    4     5  specialLookup  Ljava/lang/invoke/MethodHandles$Lookup;
            3    4     6         method  Ljava/lang/invoke/MemberName;
    Exceptions:
      throws java.lang.NoSuchMethodException, java.lang.IllegalAccessException
    Signature: (Ljava/lang/Class<*>;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/Class<*>;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
               Name  Flags
      refc           
      name           
      type           
      specialCaller  

  public java.lang.invoke.MethodHandle findGetter(java.lang.Class<?>, java.lang.String, java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.Class refc
        start local 2 // java.lang.String name
        start local 3 // java.lang.Class type
         0: .line 2802
            aload 0 /* this */
            iconst_1
            aload 1 /* refc */
            aload 2 /* name */
            aload 3 /* type */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.resolveOrFail:(BLjava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/invoke/MemberName;
            astore 4 /* field */
        start local 4 // java.lang.invoke.MemberName field
         1: .line 2803
            aload 0 /* this */
            iconst_1
            aload 1 /* refc */
            aload 4 /* field */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.getDirectField:(BLjava/lang/Class;Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 4 // java.lang.invoke.MemberName field
        end local 3 // java.lang.Class type
        end local 2 // java.lang.String name
        end local 1 // java.lang.Class refc
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    2     1   refc  Ljava/lang/Class<*>;
            0    2     2   name  Ljava/lang/String;
            0    2     3   type  Ljava/lang/Class<*>;
            1    2     4  field  Ljava/lang/invoke/MemberName;
    Exceptions:
      throws java.lang.NoSuchFieldException, java.lang.IllegalAccessException
    Signature: (Ljava/lang/Class<*>;Ljava/lang/String;Ljava/lang/Class<*>;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
      Name  Flags
      refc  
      name  
      type  

  public java.lang.invoke.MethodHandle findSetter(java.lang.Class<?>, java.lang.String, java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.Class refc
        start local 2 // java.lang.String name
        start local 3 // java.lang.Class type
         0: .line 2826
            aload 0 /* this */
            iconst_3
            aload 1 /* refc */
            aload 2 /* name */
            aload 3 /* type */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.resolveOrFail:(BLjava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/invoke/MemberName;
            astore 4 /* field */
        start local 4 // java.lang.invoke.MemberName field
         1: .line 2827
            aload 0 /* this */
            iconst_3
            aload 1 /* refc */
            aload 4 /* field */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.getDirectField:(BLjava/lang/Class;Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 4 // java.lang.invoke.MemberName field
        end local 3 // java.lang.Class type
        end local 2 // java.lang.String name
        end local 1 // java.lang.Class refc
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    2     1   refc  Ljava/lang/Class<*>;
            0    2     2   name  Ljava/lang/String;
            0    2     3   type  Ljava/lang/Class<*>;
            1    2     4  field  Ljava/lang/invoke/MemberName;
    Exceptions:
      throws java.lang.NoSuchFieldException, java.lang.IllegalAccessException
    Signature: (Ljava/lang/Class<*>;Ljava/lang/String;Ljava/lang/Class<*>;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
      Name  Flags
      refc  
      name  
      type  

  public java.lang.invoke.VarHandle findVarHandle(java.lang.Class<?>, java.lang.String, java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/invoke/VarHandle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=4
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.Class recv
        start local 2 // java.lang.String name
        start local 3 // java.lang.Class type
         0: .line 2899
            aload 0 /* this */
            iconst_1
            aload 1 /* recv */
            aload 2 /* name */
            aload 3 /* type */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.resolveOrFail:(BLjava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/invoke/MemberName;
            astore 4 /* getField */
        start local 4 // java.lang.invoke.MemberName getField
         1: .line 2900
            aload 0 /* this */
            iconst_3
            aload 1 /* recv */
            aload 2 /* name */
            aload 3 /* type */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.resolveOrFail:(BLjava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/invoke/MemberName;
            astore 5 /* putField */
        start local 5 // java.lang.invoke.MemberName putField
         2: .line 2901
            aload 0 /* this */
            iconst_1
            iconst_3
            aload 1 /* recv */
            aload 4 /* getField */
            aload 5 /* putField */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.getFieldVarHandle:(BBLjava/lang/Class;Ljava/lang/invoke/MemberName;Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/VarHandle;
            areturn
        end local 5 // java.lang.invoke.MemberName putField
        end local 4 // java.lang.invoke.MemberName getField
        end local 3 // java.lang.Class type
        end local 2 // java.lang.String name
        end local 1 // java.lang.Class recv
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    3     1      recv  Ljava/lang/Class<*>;
            0    3     2      name  Ljava/lang/String;
            0    3     3      type  Ljava/lang/Class<*>;
            1    3     4  getField  Ljava/lang/invoke/MemberName;
            2    3     5  putField  Ljava/lang/invoke/MemberName;
    Exceptions:
      throws java.lang.NoSuchFieldException, java.lang.IllegalAccessException
    Signature: (Ljava/lang/Class<*>;Ljava/lang/String;Ljava/lang/Class<*>;)Ljava/lang/invoke/VarHandle;
    MethodParameters:
      Name  Flags
      recv  
      name  
      type  

  public java.lang.invoke.MethodHandle findStaticGetter(java.lang.Class<?>, java.lang.String, java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.Class refc
        start local 2 // java.lang.String name
        start local 3 // java.lang.Class type
         0: .line 2924
            aload 0 /* this */
            iconst_2
            aload 1 /* refc */
            aload 2 /* name */
            aload 3 /* type */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.resolveOrFail:(BLjava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/invoke/MemberName;
            astore 4 /* field */
        start local 4 // java.lang.invoke.MemberName field
         1: .line 2925
            aload 0 /* this */
            iconst_2
            aload 1 /* refc */
            aload 4 /* field */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.getDirectField:(BLjava/lang/Class;Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 4 // java.lang.invoke.MemberName field
        end local 3 // java.lang.Class type
        end local 2 // java.lang.String name
        end local 1 // java.lang.Class refc
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    2     1   refc  Ljava/lang/Class<*>;
            0    2     2   name  Ljava/lang/String;
            0    2     3   type  Ljava/lang/Class<*>;
            1    2     4  field  Ljava/lang/invoke/MemberName;
    Exceptions:
      throws java.lang.NoSuchFieldException, java.lang.IllegalAccessException
    Signature: (Ljava/lang/Class<*>;Ljava/lang/String;Ljava/lang/Class<*>;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
      Name  Flags
      refc  
      name  
      type  

  public java.lang.invoke.MethodHandle findStaticSetter(java.lang.Class<?>, java.lang.String, java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.Class refc
        start local 2 // java.lang.String name
        start local 3 // java.lang.Class type
         0: .line 2949
            aload 0 /* this */
            iconst_4
            aload 1 /* refc */
            aload 2 /* name */
            aload 3 /* type */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.resolveOrFail:(BLjava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/invoke/MemberName;
            astore 4 /* field */
        start local 4 // java.lang.invoke.MemberName field
         1: .line 2950
            aload 0 /* this */
            iconst_4
            aload 1 /* refc */
            aload 4 /* field */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.getDirectField:(BLjava/lang/Class;Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 4 // java.lang.invoke.MemberName field
        end local 3 // java.lang.Class type
        end local 2 // java.lang.String name
        end local 1 // java.lang.Class refc
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    2     1   refc  Ljava/lang/Class<*>;
            0    2     2   name  Ljava/lang/String;
            0    2     3   type  Ljava/lang/Class<*>;
            1    2     4  field  Ljava/lang/invoke/MemberName;
    Exceptions:
      throws java.lang.NoSuchFieldException, java.lang.IllegalAccessException
    Signature: (Ljava/lang/Class<*>;Ljava/lang/String;Ljava/lang/Class<*>;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
      Name  Flags
      refc  
      name  
      type  

  public java.lang.invoke.VarHandle findStaticVarHandle(java.lang.Class<?>, java.lang.String, java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/invoke/VarHandle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=4
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.Class decl
        start local 2 // java.lang.String name
        start local 3 // java.lang.Class type
         0: .line 3024
            aload 0 /* this */
            iconst_2
            aload 1 /* decl */
            aload 2 /* name */
            aload 3 /* type */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.resolveOrFail:(BLjava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/invoke/MemberName;
            astore 4 /* getField */
        start local 4 // java.lang.invoke.MemberName getField
         1: .line 3025
            aload 0 /* this */
            iconst_4
            aload 1 /* decl */
            aload 2 /* name */
            aload 3 /* type */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.resolveOrFail:(BLjava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/invoke/MemberName;
            astore 5 /* putField */
        start local 5 // java.lang.invoke.MemberName putField
         2: .line 3026
            aload 0 /* this */
            iconst_2
            iconst_4
            aload 1 /* decl */
            aload 4 /* getField */
            aload 5 /* putField */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.getFieldVarHandle:(BBLjava/lang/Class;Ljava/lang/invoke/MemberName;Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/VarHandle;
            areturn
        end local 5 // java.lang.invoke.MemberName putField
        end local 4 // java.lang.invoke.MemberName getField
        end local 3 // java.lang.Class type
        end local 2 // java.lang.String name
        end local 1 // java.lang.Class decl
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    3     1      decl  Ljava/lang/Class<*>;
            0    3     2      name  Ljava/lang/String;
            0    3     3      type  Ljava/lang/Class<*>;
            1    3     4  getField  Ljava/lang/invoke/MemberName;
            2    3     5  putField  Ljava/lang/invoke/MemberName;
    Exceptions:
      throws java.lang.NoSuchFieldException, java.lang.IllegalAccessException
    Signature: (Ljava/lang/Class<*>;Ljava/lang/String;Ljava/lang/Class<*>;)Ljava/lang/invoke/VarHandle;
    MethodParameters:
      Name  Flags
      decl  
      name  
      type  

  public java.lang.invoke.MethodHandle bind(java.lang.Object, java.lang.String, java.lang.invoke.MethodType);
    descriptor: (Ljava/lang/Object;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=4
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.Object receiver
        start local 2 // java.lang.String name
        start local 3 // java.lang.invoke.MethodType type
         0: .line 3079
            aload 1 /* receiver */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            astore 4 /* refc */
        start local 4 // java.lang.Class refc
         1: .line 3080
            aload 0 /* this */
            bipush 7
            aload 4 /* refc */
            aload 2 /* name */
            aload 3 /* type */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.resolveOrFail:(BLjava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MemberName;
            astore 5 /* method */
        start local 5 // java.lang.invoke.MemberName method
         2: .line 3081
            aload 0 /* this */
            aload 4 /* refc */
            aload 5 /* method */
            aload 0 /* this */
            aload 5 /* method */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.findBoundCallerLookup:(Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/MethodHandles$Lookup;
            invokevirtual java.lang.invoke.MethodHandles$Lookup.getDirectMethodNoRestrictInvokeSpecial:(Ljava/lang/Class;Ljava/lang/invoke/MemberName;Ljava/lang/invoke/MethodHandles$Lookup;)Ljava/lang/invoke/MethodHandle;
            astore 6 /* mh */
        start local 6 // java.lang.invoke.MethodHandle mh
         3: .line 3082
            aload 6 /* mh */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.leadingReferenceParameter:()Ljava/lang/Class;
            aload 1 /* receiver */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 9
         4: .line 3083
            new java.lang.IllegalAccessException
            dup
            new java.lang.StringBuilder
            dup
            ldc "The restricted defining class "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         5: .line 3084
            aload 6 /* mh */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.leadingReferenceParameter:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         6: .line 3085
            ldc " is not assignable from receiver class "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         7: .line 3086
            aload 1 /* receiver */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            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;
         8: .line 3083
            invokespecial java.lang.IllegalAccessException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 3088
      StackMap locals: java.lang.Class java.lang.invoke.MemberName java.lang.invoke.MethodHandle
      StackMap stack:
            aload 6 /* mh */
            iconst_0
            aload 1 /* receiver */
            invokevirtual java.lang.invoke.MethodHandle.bindArgumentL:(ILjava/lang/Object;)Ljava/lang/invoke/BoundMethodHandle;
            aload 5 /* method */
            invokevirtual java.lang.invoke.BoundMethodHandle.setVarargs:(Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 6 // java.lang.invoke.MethodHandle mh
        end local 5 // java.lang.invoke.MemberName method
        end local 4 // java.lang.Class refc
        end local 3 // java.lang.invoke.MethodType type
        end local 2 // java.lang.String name
        end local 1 // java.lang.Object receiver
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   10     0      this  Ljava/lang/invoke/MethodHandles$Lookup;
            0   10     1  receiver  Ljava/lang/Object;
            0   10     2      name  Ljava/lang/String;
            0   10     3      type  Ljava/lang/invoke/MethodType;
            1   10     4      refc  Ljava/lang/Class<+Ljava/lang/Object;>;
            2   10     5    method  Ljava/lang/invoke/MemberName;
            3   10     6        mh  Ljava/lang/invoke/MethodHandle;
    Exceptions:
      throws java.lang.NoSuchMethodException, java.lang.IllegalAccessException
    MethodParameters:
          Name  Flags
      receiver  
      name      
      type      

  public java.lang.invoke.MethodHandle unreflect(java.lang.reflect.Method);
    descriptor: (Ljava/lang/reflect/Method;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=2
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.reflect.Method m
         0: .line 3118
            aload 1 /* m */
            invokevirtual java.lang.reflect.Method.getDeclaringClass:()Ljava/lang/Class;
            ldc Ljava/lang/invoke/MethodHandle;
            if_acmpne 3
         1: .line 3119
            aload 0 /* this */
            aload 1 /* m */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.unreflectForMH:(Ljava/lang/reflect/Method;)Ljava/lang/invoke/MethodHandle;
            astore 2 /* mh */
        start local 2 // java.lang.invoke.MethodHandle mh
         2: .line 3120
            aload 2 /* mh */
            ifnull 3
            aload 2 /* mh */
            areturn
        end local 2 // java.lang.invoke.MethodHandle mh
         3: .line 3122
      StackMap locals:
      StackMap stack:
            aload 1 /* m */
            invokevirtual java.lang.reflect.Method.getDeclaringClass:()Ljava/lang/Class;
            ldc Ljava/lang/invoke/VarHandle;
            if_acmpne 6
         4: .line 3123
            aload 0 /* this */
            aload 1 /* m */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.unreflectForVH:(Ljava/lang/reflect/Method;)Ljava/lang/invoke/MethodHandle;
            astore 2 /* mh */
        start local 2 // java.lang.invoke.MethodHandle mh
         5: .line 3124
            aload 2 /* mh */
            ifnull 6
            aload 2 /* mh */
            areturn
        end local 2 // java.lang.invoke.MethodHandle mh
         6: .line 3126
      StackMap locals:
      StackMap stack:
            new java.lang.invoke.MemberName
            dup
            aload 1 /* m */
            invokespecial java.lang.invoke.MemberName.<init>:(Ljava/lang/reflect/Method;)V
            astore 2 /* method */
        start local 2 // java.lang.invoke.MemberName method
         7: .line 3127
            aload 2 /* method */
            invokevirtual java.lang.invoke.MemberName.getReferenceKind:()B
            istore 3 /* refKind */
        start local 3 // byte refKind
         8: .line 3128
            iload 3 /* refKind */
            bipush 7
            if_icmpne 10
         9: .line 3129
            iconst_5
            istore 3 /* refKind */
        10: .line 3130
      StackMap locals: java.lang.invoke.MemberName int
      StackMap stack:
            getstatic java.lang.invoke.MethodHandles$Lookup.$assertionsDisabled:Z
            ifne 11
            aload 2 /* method */
            invokevirtual java.lang.invoke.MemberName.isMethod:()Z
            ifne 11
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        11: .line 3132
      StackMap locals:
      StackMap stack:
            aload 1 /* m */
            invokevirtual java.lang.reflect.Method.isAccessible:()Z
            ifeq 12
            getstatic java.lang.invoke.MethodHandles$Lookup.IMPL_LOOKUP:Ljava/lang/invoke/MethodHandles$Lookup;
            goto 13
      StackMap locals:
      StackMap stack:
        12: aload 0 /* this */
      StackMap locals:
      StackMap stack: java.lang.invoke.MethodHandles$Lookup
        13: astore 4 /* lookup */
        start local 4 // java.lang.invoke.MethodHandles$Lookup lookup
        14: .line 3133
            aload 4 /* lookup */
            iload 3 /* refKind */
            aload 2 /* method */
            invokevirtual java.lang.invoke.MemberName.getDeclaringClass:()Ljava/lang/Class;
            aload 2 /* method */
            aload 0 /* this */
            aload 2 /* method */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.findBoundCallerLookup:(Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/MethodHandles$Lookup;
            invokevirtual java.lang.invoke.MethodHandles$Lookup.getDirectMethodNoSecurityManager:(BLjava/lang/Class;Ljava/lang/invoke/MemberName;Ljava/lang/invoke/MethodHandles$Lookup;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 4 // java.lang.invoke.MethodHandles$Lookup lookup
        end local 3 // byte refKind
        end local 2 // java.lang.invoke.MemberName method
        end local 1 // java.lang.reflect.Method m
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   15     0     this  Ljava/lang/invoke/MethodHandles$Lookup;
            0   15     1        m  Ljava/lang/reflect/Method;
            2    3     2       mh  Ljava/lang/invoke/MethodHandle;
            5    6     2       mh  Ljava/lang/invoke/MethodHandle;
            7   15     2   method  Ljava/lang/invoke/MemberName;
            8   15     3  refKind  B
           14   15     4   lookup  Ljava/lang/invoke/MethodHandles$Lookup;
    Exceptions:
      throws java.lang.IllegalAccessException
    MethodParameters:
      Name  Flags
      m     

  private java.lang.invoke.MethodHandle unreflectForMH(java.lang.reflect.Method);
    descriptor: (Ljava/lang/reflect/Method;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.reflect.Method m
         0: .line 3137
            aload 1 /* m */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            invokestatic java.lang.invoke.MemberName.isMethodHandleInvokeName:(Ljava/lang/String;)Z
            ifeq 2
         1: .line 3138
            new java.lang.invoke.MemberName
            dup
            aload 1 /* m */
            invokespecial java.lang.invoke.MemberName.<init>:(Ljava/lang/reflect/Method;)V
            invokestatic java.lang.invoke.MethodHandleImpl.fakeMethodHandleInvoke:(Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/MethodHandle;
            areturn
         2: .line 3139
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // java.lang.reflect.Method m
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    3     1     m  Ljava/lang/reflect/Method;
    MethodParameters:
      Name  Flags
      m     

  private java.lang.invoke.MethodHandle unreflectForVH(java.lang.reflect.Method);
    descriptor: (Ljava/lang/reflect/Method;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.reflect.Method m
         0: .line 3143
            aload 1 /* m */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            invokestatic java.lang.invoke.MemberName.isVarHandleMethodInvokeName:(Ljava/lang/String;)Z
            ifeq 2
         1: .line 3144
            new java.lang.invoke.MemberName
            dup
            aload 1 /* m */
            invokespecial java.lang.invoke.MemberName.<init>:(Ljava/lang/reflect/Method;)V
            invokestatic java.lang.invoke.MethodHandleImpl.fakeVarHandleInvoke:(Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/MethodHandle;
            areturn
         2: .line 3145
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // java.lang.reflect.Method m
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    3     1     m  Ljava/lang/reflect/Method;
    MethodParameters:
      Name  Flags
      m     

  public java.lang.invoke.MethodHandle unreflectSpecial(java.lang.reflect.Method, java.lang.Class<?>);
    descriptor: (Ljava/lang/reflect/Method;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=3
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.reflect.Method m
        start local 2 // java.lang.Class specialCaller
         0: .line 3179
            aload 0 /* this */
            aload 2 /* specialCaller */
            aload 1 /* m */
            invokevirtual java.lang.reflect.Method.getDeclaringClass:()Ljava/lang/Class;
            invokevirtual java.lang.invoke.MethodHandles$Lookup.checkSpecialCaller:(Ljava/lang/Class;Ljava/lang/Class;)V
         1: .line 3180
            aload 0 /* this */
            aload 2 /* specialCaller */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.in:(Ljava/lang/Class;)Ljava/lang/invoke/MethodHandles$Lookup;
            astore 3 /* specialLookup */
        start local 3 // java.lang.invoke.MethodHandles$Lookup specialLookup
         2: .line 3181
            new java.lang.invoke.MemberName
            dup
            aload 1 /* m */
            iconst_1
            invokespecial java.lang.invoke.MemberName.<init>:(Ljava/lang/reflect/Method;Z)V
            astore 4 /* method */
        start local 4 // java.lang.invoke.MemberName method
         3: .line 3182
            getstatic java.lang.invoke.MethodHandles$Lookup.$assertionsDisabled:Z
            ifne 4
            aload 4 /* method */
            invokevirtual java.lang.invoke.MemberName.isMethod:()Z
            ifne 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 3184
      StackMap locals: java.lang.invoke.MethodHandles$Lookup java.lang.invoke.MemberName
      StackMap stack:
            aload 3 /* specialLookup */
            bipush 7
            aload 4 /* method */
            invokevirtual java.lang.invoke.MemberName.getDeclaringClass:()Ljava/lang/Class;
            aload 4 /* method */
            aload 0 /* this */
            aload 4 /* method */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.findBoundCallerLookup:(Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/MethodHandles$Lookup;
            invokevirtual java.lang.invoke.MethodHandles$Lookup.getDirectMethodNoSecurityManager:(BLjava/lang/Class;Ljava/lang/invoke/MemberName;Ljava/lang/invoke/MethodHandles$Lookup;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 4 // java.lang.invoke.MemberName method
        end local 3 // java.lang.invoke.MethodHandles$Lookup specialLookup
        end local 2 // java.lang.Class specialCaller
        end local 1 // java.lang.reflect.Method m
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0           this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    5     1              m  Ljava/lang/reflect/Method;
            0    5     2  specialCaller  Ljava/lang/Class<*>;
            2    5     3  specialLookup  Ljava/lang/invoke/MethodHandles$Lookup;
            3    5     4         method  Ljava/lang/invoke/MemberName;
    Exceptions:
      throws java.lang.IllegalAccessException
    Signature: (Ljava/lang/reflect/Method;Ljava/lang/Class<*>;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
               Name  Flags
      m              
      specialCaller  

  public java.lang.invoke.MethodHandle unreflectConstructor(java.lang.reflect.Constructor<?>);
    descriptor: (Ljava/lang/reflect/Constructor;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.reflect.Constructor c
         0: .line 3212
            new java.lang.invoke.MemberName
            dup
            aload 1 /* c */
            invokespecial java.lang.invoke.MemberName.<init>:(Ljava/lang/reflect/Constructor;)V
            astore 2 /* ctor */
        start local 2 // java.lang.invoke.MemberName ctor
         1: .line 3213
            getstatic java.lang.invoke.MethodHandles$Lookup.$assertionsDisabled:Z
            ifne 2
            aload 2 /* ctor */
            invokevirtual java.lang.invoke.MemberName.isConstructor:()Z
            ifne 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 3215
      StackMap locals: java.lang.invoke.MemberName
      StackMap stack:
            aload 1 /* c */
            invokevirtual java.lang.reflect.Constructor.isAccessible:()Z
            ifeq 3
            getstatic java.lang.invoke.MethodHandles$Lookup.IMPL_LOOKUP:Ljava/lang/invoke/MethodHandles$Lookup;
            goto 4
      StackMap locals:
      StackMap stack:
         3: aload 0 /* this */
      StackMap locals:
      StackMap stack: java.lang.invoke.MethodHandles$Lookup
         4: astore 3 /* lookup */
        start local 3 // java.lang.invoke.MethodHandles$Lookup lookup
         5: .line 3216
            aload 3 /* lookup */
            aload 2 /* ctor */
            invokevirtual java.lang.invoke.MemberName.getDeclaringClass:()Ljava/lang/Class;
            aload 2 /* ctor */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.getDirectConstructorNoSecurityManager:(Ljava/lang/Class;Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 3 // java.lang.invoke.MethodHandles$Lookup lookup
        end local 2 // java.lang.invoke.MemberName ctor
        end local 1 // java.lang.reflect.Constructor c
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    6     1       c  Ljava/lang/reflect/Constructor<*>;
            1    6     2    ctor  Ljava/lang/invoke/MemberName;
            5    6     3  lookup  Ljava/lang/invoke/MethodHandles$Lookup;
    Exceptions:
      throws java.lang.IllegalAccessException
    Signature: (Ljava/lang/reflect/Constructor<*>;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
      Name  Flags
      c     

  public java.lang.invoke.MethodHandle unreflectGetter(java.lang.reflect.Field);
    descriptor: (Ljava/lang/reflect/Field;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.reflect.Field f
         0: .line 3238
            aload 0 /* this */
            aload 1 /* f */
            iconst_0
            invokevirtual java.lang.invoke.MethodHandles$Lookup.unreflectField:(Ljava/lang/reflect/Field;Z)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 1 // java.lang.reflect.Field f
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    1     1     f  Ljava/lang/reflect/Field;
    Exceptions:
      throws java.lang.IllegalAccessException
    MethodParameters:
      Name  Flags
      f     

  public java.lang.invoke.MethodHandle unreflectSetter(java.lang.reflect.Field);
    descriptor: (Ljava/lang/reflect/Field;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.reflect.Field f
         0: .line 3270
            aload 0 /* this */
            aload 1 /* f */
            iconst_1
            invokevirtual java.lang.invoke.MethodHandles$Lookup.unreflectField:(Ljava/lang/reflect/Field;Z)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 1 // java.lang.reflect.Field f
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    1     1     f  Ljava/lang/reflect/Field;
    Exceptions:
      throws java.lang.IllegalAccessException
    MethodParameters:
      Name  Flags
      f     

  private java.lang.invoke.MethodHandle unreflectField(java.lang.reflect.Field, boolean);
    descriptor: (Ljava/lang/reflect/Field;Z)Ljava/lang/invoke/MethodHandle;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.reflect.Field f
        start local 2 // boolean isSetter
         0: .line 3274
            new java.lang.invoke.MemberName
            dup
            aload 1 /* f */
            iload 2 /* isSetter */
            invokespecial java.lang.invoke.MemberName.<init>:(Ljava/lang/reflect/Field;Z)V
            astore 3 /* field */
        start local 3 // java.lang.invoke.MemberName field
         1: .line 3275
            iload 2 /* isSetter */
            ifeq 7
            aload 3 /* field */
            invokevirtual java.lang.invoke.MemberName.isFinal:()Z
            ifeq 7
         2: .line 3276
            aload 3 /* field */
            invokevirtual java.lang.invoke.MemberName.isTrustedFinalField:()Z
            ifeq 7
         3: .line 3277
            aload 3 /* field */
            invokevirtual java.lang.invoke.MemberName.isStatic:()Z
            ifeq 4
            ldc "static final field has no write access"
            goto 5
         4: .line 3278
      StackMap locals: java.lang.invoke.MemberName
      StackMap stack:
            ldc "final field has no write access"
         5: .line 3277
      StackMap locals:
      StackMap stack: java.lang.String
            astore 4 /* msg */
        start local 4 // java.lang.String msg
         6: .line 3279
            aload 3 /* field */
            aload 4 /* msg */
            aload 0 /* this */
            invokevirtual java.lang.invoke.MemberName.makeAccessException:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/IllegalAccessException;
            athrow
        end local 4 // java.lang.String msg
         7: .line 3282
      StackMap locals:
      StackMap stack:
            getstatic java.lang.invoke.MethodHandles$Lookup.$assertionsDisabled:Z
            ifne 11
            iload 2 /* isSetter */
            ifeq 9
         8: .line 3283
            aload 3 /* field */
            invokevirtual java.lang.invoke.MemberName.getReferenceKind:()B
            invokestatic java.lang.invoke.MethodHandleNatives.refKindIsSetter:(B)Z
            ifne 11
            goto 10
         9: .line 3284
      StackMap locals:
      StackMap stack:
            aload 3 /* field */
            invokevirtual java.lang.invoke.MemberName.getReferenceKind:()B
            invokestatic java.lang.invoke.MethodHandleNatives.refKindIsGetter:(B)Z
            ifne 11
      StackMap locals:
      StackMap stack:
        10: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        11: .line 3286
      StackMap locals:
      StackMap stack:
            aload 1 /* f */
            invokevirtual java.lang.reflect.Field.isAccessible:()Z
            ifeq 12
            getstatic java.lang.invoke.MethodHandles$Lookup.IMPL_LOOKUP:Ljava/lang/invoke/MethodHandles$Lookup;
            goto 13
      StackMap locals:
      StackMap stack:
        12: aload 0 /* this */
      StackMap locals:
      StackMap stack: java.lang.invoke.MethodHandles$Lookup
        13: astore 4 /* lookup */
        start local 4 // java.lang.invoke.MethodHandles$Lookup lookup
        14: .line 3287
            aload 4 /* lookup */
            aload 3 /* field */
            invokevirtual java.lang.invoke.MemberName.getReferenceKind:()B
            aload 1 /* f */
            invokevirtual java.lang.reflect.Field.getDeclaringClass:()Ljava/lang/Class;
            aload 3 /* field */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.getDirectFieldNoSecurityManager:(BLjava/lang/Class;Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 4 // java.lang.invoke.MethodHandles$Lookup lookup
        end local 3 // java.lang.invoke.MemberName field
        end local 2 // boolean isSetter
        end local 1 // java.lang.reflect.Field f
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   15     0      this  Ljava/lang/invoke/MethodHandles$Lookup;
            0   15     1         f  Ljava/lang/reflect/Field;
            0   15     2  isSetter  Z
            1   15     3     field  Ljava/lang/invoke/MemberName;
            6    7     4       msg  Ljava/lang/String;
           14   15     4    lookup  Ljava/lang/invoke/MethodHandles$Lookup;
    Exceptions:
      throws java.lang.IllegalAccessException
    MethodParameters:
          Name  Flags
      f         
      isSetter  

  public java.lang.invoke.VarHandle unreflectVarHandle(java.lang.reflect.Field);
    descriptor: (Ljava/lang/reflect/Field;)Ljava/lang/invoke/VarHandle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.reflect.Field f
         0: .line 3362
            new java.lang.invoke.MemberName
            dup
            aload 1 /* f */
            iconst_0
            invokespecial java.lang.invoke.MemberName.<init>:(Ljava/lang/reflect/Field;Z)V
            astore 2 /* getField */
        start local 2 // java.lang.invoke.MemberName getField
         1: .line 3363
            new java.lang.invoke.MemberName
            dup
            aload 1 /* f */
            iconst_1
            invokespecial java.lang.invoke.MemberName.<init>:(Ljava/lang/reflect/Field;Z)V
            astore 3 /* putField */
        start local 3 // java.lang.invoke.MemberName putField
         2: .line 3364
            aload 0 /* this */
            aload 2 /* getField */
            invokevirtual java.lang.invoke.MemberName.getReferenceKind:()B
            aload 3 /* putField */
            invokevirtual java.lang.invoke.MemberName.getReferenceKind:()B
         3: .line 3365
            aload 1 /* f */
            invokevirtual java.lang.reflect.Field.getDeclaringClass:()Ljava/lang/Class;
            aload 2 /* getField */
            aload 3 /* putField */
         4: .line 3364
            invokevirtual java.lang.invoke.MethodHandles$Lookup.getFieldVarHandleNoSecurityManager:(BBLjava/lang/Class;Ljava/lang/invoke/MemberName;Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/VarHandle;
            areturn
        end local 3 // java.lang.invoke.MemberName putField
        end local 2 // java.lang.invoke.MemberName getField
        end local 1 // java.lang.reflect.Field f
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    5     1         f  Ljava/lang/reflect/Field;
            1    5     2  getField  Ljava/lang/invoke/MemberName;
            2    5     3  putField  Ljava/lang/invoke/MemberName;
    Exceptions:
      throws java.lang.IllegalAccessException
    MethodParameters:
      Name  Flags
      f     

  public java.lang.invoke.MethodHandleInfo revealDirect(java.lang.invoke.MethodHandle);
    descriptor: (Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandleInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.invoke.MethodHandle target
         0: .line 3387
            aload 1 /* target */
            invokevirtual java.lang.invoke.MethodHandle.isCrackable:()Z
            ifne 2
         1: .line 3388
            ldc "not a direct method handle"
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
         2: .line 3390
      StackMap locals:
      StackMap stack:
            aload 1 /* target */
            invokevirtual java.lang.invoke.MethodHandle.internalMemberName:()Ljava/lang/invoke/MemberName;
            astore 2 /* member */
        start local 2 // java.lang.invoke.MemberName member
         3: .line 3391
            aload 2 /* member */
            invokevirtual java.lang.invoke.MemberName.getDeclaringClass:()Ljava/lang/Class;
            astore 3 /* defc */
        start local 3 // java.lang.Class defc
         4: .line 3392
            aload 2 /* member */
            invokevirtual java.lang.invoke.MemberName.getReferenceKind:()B
            istore 4 /* refKind */
        start local 4 // byte refKind
         5: .line 3393
            getstatic java.lang.invoke.MethodHandles$Lookup.$assertionsDisabled:Z
            ifne 6
            iload 4 /* refKind */
            invokestatic java.lang.invoke.MethodHandleNatives.refKindIsValid:(I)Z
            ifne 6
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         6: .line 3394
      StackMap locals: java.lang.invoke.MemberName java.lang.Class int
      StackMap stack:
            iload 4 /* refKind */
            bipush 7
            if_icmpne 8
            aload 1 /* target */
            invokevirtual java.lang.invoke.MethodHandle.isInvokeSpecial:()Z
            ifne 8
         7: .line 3398
            iconst_5
            istore 4 /* refKind */
         8: .line 3399
      StackMap locals:
      StackMap stack:
            iload 4 /* refKind */
            iconst_5
            if_icmpne 10
            aload 3 /* defc */
            invokevirtual java.lang.Class.isInterface:()Z
            ifeq 10
         9: .line 3401
            bipush 9
            istore 4 /* refKind */
        10: .line 3404
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 4 /* refKind */
            aload 3 /* defc */
            aload 2 /* member */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.checkAccess:(BLjava/lang/Class;Ljava/lang/invoke/MemberName;)V
        11: .line 3405
            aload 0 /* this */
            aload 3 /* defc */
            aload 2 /* member */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.checkSecurityManager:(Ljava/lang/Class;Ljava/lang/invoke/MemberName;)V
        12: .line 3406
            goto 15
      StackMap locals:
      StackMap stack: java.lang.IllegalAccessException
        13: astore 5 /* ex */
        start local 5 // java.lang.IllegalAccessException ex
        14: .line 3407
            new java.lang.IllegalArgumentException
            dup
            aload 5 /* ex */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 5 // java.lang.IllegalAccessException ex
        15: .line 3409
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.allowedModes:I
            iconst_m1
            if_icmpeq 19
            aload 2 /* member */
            invokevirtual java.lang.invoke.MemberName.isCallerSensitive:()Z
            ifeq 19
        16: .line 3410
            aload 1 /* target */
            invokevirtual java.lang.invoke.MethodHandle.internalCallerClass:()Ljava/lang/Class;
            astore 5 /* callerClass */
        start local 5 // java.lang.Class callerClass
        17: .line 3411
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.hasFullPrivilegeAccess:()Z
            ifeq 18
            aload 5 /* callerClass */
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupClass:()Ljava/lang/Class;
            if_acmpeq 19
        18: .line 3412
      StackMap locals: java.lang.Class
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "method handle is caller sensitive: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* callerClass */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // java.lang.Class callerClass
        19: .line 3415
      StackMap locals:
      StackMap stack:
            new java.lang.invoke.InfoFromMemberName
            dup
            aload 0 /* this */
            aload 2 /* member */
            iload 4 /* refKind */
            invokespecial java.lang.invoke.InfoFromMemberName.<init>:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/invoke/MemberName;B)V
            areturn
        end local 4 // byte refKind
        end local 3 // java.lang.Class defc
        end local 2 // java.lang.invoke.MemberName member
        end local 1 // java.lang.invoke.MethodHandle target
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   20     0         this  Ljava/lang/invoke/MethodHandles$Lookup;
            0   20     1       target  Ljava/lang/invoke/MethodHandle;
            3   20     2       member  Ljava/lang/invoke/MemberName;
            4   20     3         defc  Ljava/lang/Class<*>;
            5   20     4      refKind  B
           14   15     5           ex  Ljava/lang/IllegalAccessException;
           17   19     5  callerClass  Ljava/lang/Class<*>;
      Exception table:
        from    to  target  type
          10    12      13  Class java.lang.IllegalAccessException
    MethodParameters:
        Name  Flags
      target  

  java.lang.invoke.MemberName resolveOrFail(byte, java.lang.Class<?>, java.lang.String, java.lang.Class<?>);
    descriptor: (BLjava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/invoke/MemberName;
    flags: (0x0000) 
    Code:
      stack=8, locals=5, args_size=5
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // byte refKind
        start local 2 // java.lang.Class refc
        start local 3 // java.lang.String name
        start local 4 // java.lang.Class type
         0: .line 3421
            aload 0 /* this */
            aload 2 /* refc */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.checkSymbolicClass:(Ljava/lang/Class;)V
         1: .line 3422
            aload 3 /* name */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 3423
            aload 4 /* type */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 3424
            getstatic java.lang.invoke.MethodHandles.IMPL_NAMES:Ljava/lang/invoke/MemberName$Factory;
            iload 1 /* refKind */
            new java.lang.invoke.MemberName
            dup
            aload 2 /* refc */
            aload 3 /* name */
            aload 4 /* type */
            iload 1 /* refKind */
            invokespecial java.lang.invoke.MemberName.<init>:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;B)V
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupClassOrNull:()Ljava/lang/Class;
         4: .line 3425
            ldc Ljava/lang/NoSuchFieldException;
         5: .line 3424
            invokevirtual java.lang.invoke.MemberName$Factory.resolveOrFail:(BLjava/lang/invoke/MemberName;Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/invoke/MemberName;
            areturn
        end local 4 // java.lang.Class type
        end local 3 // java.lang.String name
        end local 2 // java.lang.Class refc
        end local 1 // byte refKind
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    6     1  refKind  B
            0    6     2     refc  Ljava/lang/Class<*>;
            0    6     3     name  Ljava/lang/String;
            0    6     4     type  Ljava/lang/Class<*>;
    Exceptions:
      throws java.lang.NoSuchFieldException, java.lang.IllegalAccessException
    Signature: (BLjava/lang/Class<*>;Ljava/lang/String;Ljava/lang/Class<*>;)Ljava/lang/invoke/MemberName;
    MethodParameters:
         Name  Flags
      refKind  
      refc     
      name     
      type     

  java.lang.invoke.MemberName resolveOrFail(byte, java.lang.Class<?>, java.lang.String, java.lang.invoke.MethodType);
    descriptor: (BLjava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MemberName;
    flags: (0x0000) 
    Code:
      stack=8, locals=5, args_size=5
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // byte refKind
        start local 2 // java.lang.Class refc
        start local 3 // java.lang.String name
        start local 4 // java.lang.invoke.MethodType type
         0: .line 3429
            aload 0 /* this */
            aload 2 /* refc */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.checkSymbolicClass:(Ljava/lang/Class;)V
         1: .line 3430
            aload 3 /* name */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 3431
            aload 4 /* type */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 3432
            aload 0 /* this */
            iload 1 /* refKind */
            aload 3 /* name */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.checkMethodName:(BLjava/lang/String;)V
         4: .line 3433
            getstatic java.lang.invoke.MethodHandles.IMPL_NAMES:Ljava/lang/invoke/MemberName$Factory;
            iload 1 /* refKind */
            new java.lang.invoke.MemberName
            dup
            aload 2 /* refc */
            aload 3 /* name */
            aload 4 /* type */
            iload 1 /* refKind */
            invokespecial java.lang.invoke.MemberName.<init>:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;B)V
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupClassOrNull:()Ljava/lang/Class;
         5: .line 3434
            ldc Ljava/lang/NoSuchMethodException;
         6: .line 3433
            invokevirtual java.lang.invoke.MemberName$Factory.resolveOrFail:(BLjava/lang/invoke/MemberName;Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/invoke/MemberName;
            areturn
        end local 4 // java.lang.invoke.MethodType type
        end local 3 // java.lang.String name
        end local 2 // java.lang.Class refc
        end local 1 // byte refKind
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    7     1  refKind  B
            0    7     2     refc  Ljava/lang/Class<*>;
            0    7     3     name  Ljava/lang/String;
            0    7     4     type  Ljava/lang/invoke/MethodType;
    Exceptions:
      throws java.lang.NoSuchMethodException, java.lang.IllegalAccessException
    Signature: (BLjava/lang/Class<*>;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MemberName;
    MethodParameters:
         Name  Flags
      refKind  
      refc     
      name     
      type     

  java.lang.invoke.MemberName resolveOrFail(byte, java.lang.invoke.MemberName);
    descriptor: (BLjava/lang/invoke/MemberName;)Ljava/lang/invoke/MemberName;
    flags: (0x0000) 
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // byte refKind
        start local 2 // java.lang.invoke.MemberName member
         0: .line 3438
            aload 0 /* this */
            aload 2 /* member */
            invokevirtual java.lang.invoke.MemberName.getDeclaringClass:()Ljava/lang/Class;
            invokevirtual java.lang.invoke.MethodHandles$Lookup.checkSymbolicClass:(Ljava/lang/Class;)V
         1: .line 3439
            aload 2 /* member */
            invokevirtual java.lang.invoke.MemberName.getName:()Ljava/lang/String;
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 3440
            aload 2 /* member */
            invokevirtual java.lang.invoke.MemberName.getType:()Ljava/lang/Object;
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 3441
            getstatic java.lang.invoke.MethodHandles.IMPL_NAMES:Ljava/lang/invoke/MemberName$Factory;
            iload 1 /* refKind */
            aload 2 /* member */
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupClassOrNull:()Ljava/lang/Class;
         4: .line 3442
            ldc Ljava/lang/ReflectiveOperationException;
         5: .line 3441
            invokevirtual java.lang.invoke.MemberName$Factory.resolveOrFail:(BLjava/lang/invoke/MemberName;Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/invoke/MemberName;
            areturn
        end local 2 // java.lang.invoke.MemberName member
        end local 1 // byte refKind
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    6     1  refKind  B
            0    6     2   member  Ljava/lang/invoke/MemberName;
    Exceptions:
      throws java.lang.ReflectiveOperationException
    MethodParameters:
         Name  Flags
      refKind  
      member   

  java.lang.invoke.MemberName resolveOrNull(byte, java.lang.invoke.MemberName);
    descriptor: (BLjava/lang/invoke/MemberName;)Ljava/lang/invoke/MemberName;
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // byte refKind
        start local 2 // java.lang.invoke.MemberName member
         0: .line 3447
            aload 0 /* this */
            aload 2 /* member */
            invokevirtual java.lang.invoke.MemberName.getDeclaringClass:()Ljava/lang/Class;
            invokevirtual java.lang.invoke.MethodHandles$Lookup.isClassAccessible:(Ljava/lang/Class;)Z
            ifne 2
         1: .line 3448
            aconst_null
            areturn
         2: .line 3450
      StackMap locals:
      StackMap stack:
            aload 2 /* member */
            invokevirtual java.lang.invoke.MemberName.getName:()Ljava/lang/String;
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 3451
            aload 2 /* member */
            invokevirtual java.lang.invoke.MemberName.getType:()Ljava/lang/Object;
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 3452
            getstatic java.lang.invoke.MethodHandles.IMPL_NAMES:Ljava/lang/invoke/MemberName$Factory;
            iload 1 /* refKind */
            aload 2 /* member */
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupClassOrNull:()Ljava/lang/Class;
            invokevirtual java.lang.invoke.MemberName$Factory.resolveOrNull:(BLjava/lang/invoke/MemberName;Ljava/lang/Class;)Ljava/lang/invoke/MemberName;
            areturn
        end local 2 // java.lang.invoke.MemberName member
        end local 1 // byte refKind
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    5     1  refKind  B
            0    5     2   member  Ljava/lang/invoke/MemberName;
    MethodParameters:
         Name  Flags
      refKind  
      member   

  void checkSymbolicClass(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.Class refc
         0: .line 3456
            aload 0 /* this */
            aload 1 /* refc */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.isClassAccessible:(Ljava/lang/Class;)Z
            ifne 2
         1: .line 3457
            new java.lang.invoke.MemberName
            dup
            aload 1 /* refc */
            invokespecial java.lang.invoke.MemberName.<init>:(Ljava/lang/Class;)V
            ldc "symbolic reference class is not accessible"
            aload 0 /* this */
            invokevirtual java.lang.invoke.MemberName.makeAccessException:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/IllegalAccessException;
            athrow
         2: .line 3459
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Class refc
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    3     1  refc  Ljava/lang/Class<*>;
    Exceptions:
      throws java.lang.IllegalAccessException
    Signature: (Ljava/lang/Class<*>;)V
    MethodParameters:
      Name  Flags
      refc  

  boolean isClassAccessible(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.Class refc
         0: .line 3462
            aload 1 /* refc */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 3463
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupClassOrNull:()Ljava/lang/Class;
            astore 2 /* caller */
        start local 2 // java.lang.Class caller
         2: .line 3464
            aload 2 /* caller */
            ifnull 3
            aload 1 /* refc */
            aload 2 /* caller */
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.prevLookupClass:Ljava/lang/Class;
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.allowedModes:I
            invokestatic sun.invoke.util.VerifyAccess.isClassAccessible:(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/Class;I)Z
            ifne 3
            iconst_0
            ireturn
      StackMap locals: java.lang.Class
      StackMap stack:
         3: iconst_1
            ireturn
        end local 2 // java.lang.Class caller
        end local 1 // java.lang.Class refc
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    4     1    refc  Ljava/lang/Class<*>;
            2    4     2  caller  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)Z
    MethodParameters:
      Name  Flags
      refc  

  void checkMethodName(byte, java.lang.String);
    descriptor: (BLjava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // byte refKind
        start local 2 // java.lang.String name
         0: .line 3469
            aload 2 /* name */
            ldc "<"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 2
            iload 1 /* refKind */
            bipush 8
            if_icmpeq 2
         1: .line 3470
            new java.lang.NoSuchMethodException
            dup
            new java.lang.StringBuilder
            dup
            ldc "illegal method name: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.NoSuchMethodException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 3471
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String name
        end local 1 // byte refKind
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    3     1  refKind  B
            0    3     2     name  Ljava/lang/String;
    Exceptions:
      throws java.lang.NoSuchMethodException
    MethodParameters:
         Name  Flags
      refKind  
      name     

  java.lang.invoke.MethodHandles$Lookup findBoundCallerLookup(java.lang.invoke.MemberName);
    descriptor: (Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/MethodHandles$Lookup;
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.invoke.MemberName m
         0: .line 3480
            aload 1 /* m */
            invokestatic java.lang.invoke.MethodHandleNatives.isCallerSensitive:(Ljava/lang/invoke/MemberName;)Z
            ifeq 2
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.hasFullPrivilegeAccess:()Z
            ifne 2
         1: .line 3482
            new java.lang.IllegalAccessException
            dup
            ldc "Attempt to lookup caller-sensitive method using restricted lookup object"
            invokespecial java.lang.IllegalAccessException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 3484
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 1 // java.lang.invoke.MemberName m
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    3     1     m  Ljava/lang/invoke/MemberName;
    Exceptions:
      throws java.lang.IllegalAccessException
    MethodParameters:
      Name  Flags
      m     

  public boolean hasPrivateAccess();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
         0: .line 3499
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.hasFullPrivilegeAccess:()Z
            ireturn
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/invoke/MethodHandles$Lookup;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated(since = "14")

  public boolean hasFullPrivilegeAccess();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
         0: .line 3513
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.allowedModes:I
            bipush 18
            iand
            bipush 18
            if_icmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/lang/invoke/MethodHandles$Lookup;

  void checkSecurityManager(java.lang.Class<?>, java.lang.invoke.MemberName);
    descriptor: (Ljava/lang/Class;Ljava/lang/invoke/MemberName;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=6, args_size=3
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.Class refc
        start local 2 // java.lang.invoke.MemberName m
         0: .line 3522
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.allowedModes:I
            iconst_m1
            if_icmpne 1
            return
         1: .line 3524
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            astore 3 /* smgr */
        start local 3 // java.lang.SecurityManager smgr
         2: .line 3525
            aload 3 /* smgr */
            ifnonnull 3
            return
         3: .line 3528
      StackMap locals: java.lang.SecurityManager
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.hasFullPrivilegeAccess:()Z
            istore 4 /* fullPowerLookup */
        start local 4 // boolean fullPowerLookup
         4: .line 3529
            iload 4 /* fullPowerLookup */
            ifeq 6
         5: .line 3530
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.lookupClass:Ljava/lang/Class;
            aload 1 /* refc */
            invokestatic sun.invoke.util.VerifyAccess.classLoaderIsAncestor:(Ljava/lang/Class;Ljava/lang/Class;)Z
            ifne 7
         6: .line 3531
      StackMap locals: int
      StackMap stack:
            aload 1 /* refc */
            invokestatic sun.reflect.misc.ReflectUtil.checkPackageAccess:(Ljava/lang/Class;)V
         7: .line 3534
      StackMap locals:
      StackMap stack:
            aload 2 /* m */
            ifnonnull 11
         8: .line 3536
            iload 4 /* fullPowerLookup */
            ifne 10
         9: .line 3537
            aload 3 /* smgr */
            getstatic sun.security.util.SecurityConstants.GET_CLASSLOADER_PERMISSION:Ljava/lang/RuntimePermission;
            invokevirtual java.lang.SecurityManager.checkPermission:(Ljava/security/Permission;)V
        10: .line 3539
      StackMap locals:
      StackMap stack:
            return
        11: .line 3543
      StackMap locals:
      StackMap stack:
            aload 2 /* m */
            invokevirtual java.lang.invoke.MemberName.isPublic:()Z
            ifeq 12
            return
        12: .line 3544
      StackMap locals:
      StackMap stack:
            iload 4 /* fullPowerLookup */
            ifne 14
        13: .line 3545
            aload 3 /* smgr */
            getstatic sun.security.util.SecurityConstants.CHECK_MEMBER_ACCESS_PERMISSION:Ljava/lang/RuntimePermission;
            invokevirtual java.lang.SecurityManager.checkPermission:(Ljava/security/Permission;)V
        14: .line 3549
      StackMap locals:
      StackMap stack:
            aload 2 /* m */
            invokevirtual java.lang.invoke.MemberName.getDeclaringClass:()Ljava/lang/Class;
            astore 5 /* defc */
        start local 5 // java.lang.Class defc
        15: .line 3550
            iload 4 /* fullPowerLookup */
            ifne 17
            aload 5 /* defc */
            aload 1 /* refc */
            if_acmpeq 17
        16: .line 3551
            aload 5 /* defc */
            invokestatic sun.reflect.misc.ReflectUtil.checkPackageAccess:(Ljava/lang/Class;)V
        17: .line 3553
      StackMap locals: java.lang.Class
      StackMap stack:
            return
        end local 5 // java.lang.Class defc
        end local 4 // boolean fullPowerLookup
        end local 3 // java.lang.SecurityManager smgr
        end local 2 // java.lang.invoke.MemberName m
        end local 1 // java.lang.Class refc
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   18     0             this  Ljava/lang/invoke/MethodHandles$Lookup;
            0   18     1             refc  Ljava/lang/Class<*>;
            0   18     2                m  Ljava/lang/invoke/MemberName;
            2   18     3             smgr  Ljava/lang/SecurityManager;
            4   18     4  fullPowerLookup  Z
           15   18     5             defc  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;Ljava/lang/invoke/MemberName;)V
    MethodParameters:
      Name  Flags
      refc  
      m     

  void checkMethod(byte, java.lang.Class<?>, java.lang.invoke.MemberName);
    descriptor: (BLjava/lang/Class;Ljava/lang/invoke/MemberName;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // byte refKind
        start local 2 // java.lang.Class refc
        start local 3 // java.lang.invoke.MemberName m
         0: .line 3556
            iload 1 /* refKind */
            bipush 6
            if_icmpne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: istore 4 /* wantStatic */
        start local 4 // boolean wantStatic
         3: .line 3558
            aload 3 /* m */
            invokevirtual java.lang.invoke.MemberName.isConstructor:()Z
            ifeq 6
         4: .line 3559
            ldc "expected a method, not a constructor"
            astore 5 /* message */
        start local 5 // java.lang.String message
         5: goto 15
        end local 5 // java.lang.String message
         6: .line 3560
      StackMap locals: int
      StackMap stack:
            aload 3 /* m */
            invokevirtual java.lang.invoke.MemberName.isMethod:()Z
            ifne 9
         7: .line 3561
            ldc "expected a method"
            astore 5 /* message */
        start local 5 // java.lang.String message
         8: goto 15
        end local 5 // java.lang.String message
         9: .line 3562
      StackMap locals:
      StackMap stack:
            iload 4 /* wantStatic */
            aload 3 /* m */
            invokevirtual java.lang.invoke.MemberName.isStatic:()Z
            if_icmpeq 14
        10: .line 3563
            iload 4 /* wantStatic */
            ifeq 11
            ldc "expected a static method"
            goto 12
      StackMap locals:
      StackMap stack:
        11: ldc "expected a non-static method"
      StackMap locals:
      StackMap stack: java.lang.String
        12: astore 5 /* message */
        start local 5 // java.lang.String message
        13: goto 15
        end local 5 // java.lang.String message
        14: .line 3565
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* refKind */
            aload 2 /* refc */
            aload 3 /* m */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.checkAccess:(BLjava/lang/Class;Ljava/lang/invoke/MemberName;)V
            return
        start local 5 // java.lang.String message
        15: .line 3566
      StackMap locals: java.lang.String
      StackMap stack:
            aload 3 /* m */
            aload 5 /* message */
            aload 0 /* this */
            invokevirtual java.lang.invoke.MemberName.makeAccessException:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/IllegalAccessException;
            athrow
        end local 5 // java.lang.String message
        end local 4 // boolean wantStatic
        end local 3 // java.lang.invoke.MemberName m
        end local 2 // java.lang.Class refc
        end local 1 // byte refKind
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   16     0        this  Ljava/lang/invoke/MethodHandles$Lookup;
            0   16     1     refKind  B
            0   16     2        refc  Ljava/lang/Class<*>;
            0   16     3           m  Ljava/lang/invoke/MemberName;
            3   16     4  wantStatic  Z
            5    6     5     message  Ljava/lang/String;
            8    9     5     message  Ljava/lang/String;
           13   14     5     message  Ljava/lang/String;
           15   16     5     message  Ljava/lang/String;
    Exceptions:
      throws java.lang.IllegalAccessException
    Signature: (BLjava/lang/Class<*>;Ljava/lang/invoke/MemberName;)V
    MethodParameters:
         Name  Flags
      refKind  
      refc     
      m        

  void checkField(byte, java.lang.Class<?>, java.lang.invoke.MemberName);
    descriptor: (BLjava/lang/Class;Ljava/lang/invoke/MemberName;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // byte refKind
        start local 2 // java.lang.Class refc
        start local 3 // java.lang.invoke.MemberName m
         0: .line 3570
            iload 1 /* refKind */
            invokestatic java.lang.invoke.MethodHandleNatives.refKindHasReceiver:(B)Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: istore 4 /* wantStatic */
        start local 4 // boolean wantStatic
         3: .line 3572
            iload 4 /* wantStatic */
            aload 3 /* m */
            invokevirtual java.lang.invoke.MemberName.isStatic:()Z
            if_icmpeq 8
         4: .line 3573
            iload 4 /* wantStatic */
            ifeq 5
            ldc "expected a static field"
            goto 6
      StackMap locals: int
      StackMap stack:
         5: ldc "expected a non-static field"
      StackMap locals:
      StackMap stack: java.lang.String
         6: astore 5 /* message */
        start local 5 // java.lang.String message
         7: goto 9
        end local 5 // java.lang.String message
         8: .line 3575
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* refKind */
            aload 2 /* refc */
            aload 3 /* m */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.checkAccess:(BLjava/lang/Class;Ljava/lang/invoke/MemberName;)V
            return
        start local 5 // java.lang.String message
         9: .line 3576
      StackMap locals: java.lang.String
      StackMap stack:
            aload 3 /* m */
            aload 5 /* message */
            aload 0 /* this */
            invokevirtual java.lang.invoke.MemberName.makeAccessException:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/IllegalAccessException;
            athrow
        end local 5 // java.lang.String message
        end local 4 // boolean wantStatic
        end local 3 // java.lang.invoke.MemberName m
        end local 2 // java.lang.Class refc
        end local 1 // byte refKind
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0        this  Ljava/lang/invoke/MethodHandles$Lookup;
            0   10     1     refKind  B
            0   10     2        refc  Ljava/lang/Class<*>;
            0   10     3           m  Ljava/lang/invoke/MemberName;
            3   10     4  wantStatic  Z
            7    8     5     message  Ljava/lang/String;
            9   10     5     message  Ljava/lang/String;
    Exceptions:
      throws java.lang.IllegalAccessException
    Signature: (BLjava/lang/Class<*>;Ljava/lang/invoke/MemberName;)V
    MethodParameters:
         Name  Flags
      refKind  
      refc     
      m        

  void checkAccess(byte, java.lang.Class<?>, java.lang.invoke.MemberName);
    descriptor: (BLjava/lang/Class;Ljava/lang/invoke/MemberName;)V
    flags: (0x0000) 
    Code:
      stack=6, locals=7, args_size=4
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // byte refKind
        start local 2 // java.lang.Class refc
        start local 3 // java.lang.invoke.MemberName m
         0: .line 3581
            getstatic java.lang.invoke.MethodHandles$Lookup.$assertionsDisabled:Z
            ifne 4
            aload 3 /* m */
            iload 1 /* refKind */
            invokevirtual java.lang.invoke.MemberName.referenceKindIsConsistentWith:(I)Z
            ifeq 3
         1: .line 3582
            iload 1 /* refKind */
            invokestatic java.lang.invoke.MethodHandleNatives.refKindIsValid:(I)Z
            ifeq 3
         2: .line 3583
            iload 1 /* refKind */
            invokestatic java.lang.invoke.MethodHandleNatives.refKindIsField:(B)Z
            aload 3 /* m */
            invokevirtual java.lang.invoke.MemberName.isField:()Z
            if_icmpeq 4
      StackMap locals:
      StackMap stack:
         3: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 3584
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.allowedModes:I
            istore 4 /* allowedModes */
        start local 4 // int allowedModes
         5: .line 3585
            iload 4 /* allowedModes */
            iconst_m1
            if_icmpne 6
            return
         6: .line 3586
      StackMap locals: int
      StackMap stack:
            aload 3 /* m */
            invokevirtual java.lang.invoke.MemberName.getModifiers:()I
            istore 5 /* mods */
        start local 5 // int mods
         7: .line 3587
            iload 5 /* mods */
            invokestatic java.lang.reflect.Modifier.isProtected:(I)Z
            ifeq 13
         8: .line 3588
            iload 1 /* refKind */
            iconst_5
            if_icmpne 13
         9: .line 3589
            aload 3 /* m */
            invokevirtual java.lang.invoke.MemberName.getDeclaringClass:()Ljava/lang/Class;
            ldc Ljava/lang/Object;
            if_acmpne 13
        10: .line 3590
            aload 3 /* m */
            invokevirtual java.lang.invoke.MemberName.getName:()Ljava/lang/String;
            ldc "clone"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 13
        11: .line 3591
            aload 2 /* refc */
            invokevirtual java.lang.Class.isArray:()Z
            ifeq 13
        12: .line 3605
            iload 5 /* mods */
            iconst_5
            ixor
            istore 5 /* mods */
        13: .line 3607
      StackMap locals: int
      StackMap stack:
            iload 5 /* mods */
            invokestatic java.lang.reflect.Modifier.isProtected:(I)Z
            ifeq 15
            iload 1 /* refKind */
            bipush 8
            if_icmpne 15
        14: .line 3609
            iload 5 /* mods */
            iconst_4
            ixor
            istore 5 /* mods */
        15: .line 3611
      StackMap locals:
      StackMap stack:
            iload 5 /* mods */
            invokestatic java.lang.reflect.Modifier.isFinal:(I)Z
            ifeq 18
        16: .line 3612
            iload 1 /* refKind */
            invokestatic java.lang.invoke.MethodHandleNatives.refKindIsSetter:(B)Z
            ifeq 18
        17: .line 3613
            aload 3 /* m */
            ldc "unexpected set of a final field"
            aload 0 /* this */
            invokevirtual java.lang.invoke.MemberName.makeAccessException:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/IllegalAccessException;
            athrow
        18: .line 3614
      StackMap locals:
      StackMap stack:
            iload 5 /* mods */
            invokestatic java.lang.invoke.MethodHandles$Lookup.fixmods:(I)I
            istore 6 /* requestedModes */
        start local 6 // int requestedModes
        19: .line 3615
            iload 6 /* requestedModes */
            iload 4 /* allowedModes */
            iand
            ifeq 25
        20: .line 3616
            aload 2 /* refc */
            aload 3 /* m */
            invokevirtual java.lang.invoke.MemberName.getDeclaringClass:()Ljava/lang/Class;
        21: .line 3617
            iload 5 /* mods */
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupClass:()Ljava/lang/Class;
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.previousLookupClass:()Ljava/lang/Class;
            iload 4 /* allowedModes */
        22: .line 3616
            invokestatic sun.invoke.util.VerifyAccess.isMemberAccessible:(Ljava/lang/Class;Ljava/lang/Class;ILjava/lang/Class;Ljava/lang/Class;I)Z
        23: .line 3617
            ifeq 28
        24: .line 3618
            return
        25: .line 3621
      StackMap locals: int
      StackMap stack:
            iload 6 /* requestedModes */
            iconst_4
            iand
            ifeq 28
            iload 4 /* allowedModes */
            bipush 8
            iand
            ifeq 28
        26: .line 3622
            aload 3 /* m */
            invokevirtual java.lang.invoke.MemberName.getDeclaringClass:()Ljava/lang/Class;
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupClass:()Ljava/lang/Class;
            invokestatic sun.invoke.util.VerifyAccess.isSamePackage:(Ljava/lang/Class;Ljava/lang/Class;)Z
            ifeq 28
        27: .line 3623
            return
        28: .line 3625
      StackMap locals:
      StackMap stack:
            aload 3 /* m */
            aload 0 /* this */
            aload 2 /* refc */
            aload 3 /* m */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.accessFailedMessage:(Ljava/lang/Class;Ljava/lang/invoke/MemberName;)Ljava/lang/String;
            aload 0 /* this */
            invokevirtual java.lang.invoke.MemberName.makeAccessException:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/IllegalAccessException;
            athrow
        end local 6 // int requestedModes
        end local 5 // int mods
        end local 4 // int allowedModes
        end local 3 // java.lang.invoke.MemberName m
        end local 2 // java.lang.Class refc
        end local 1 // byte refKind
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   29     0            this  Ljava/lang/invoke/MethodHandles$Lookup;
            0   29     1         refKind  B
            0   29     2            refc  Ljava/lang/Class<*>;
            0   29     3               m  Ljava/lang/invoke/MemberName;
            5   29     4    allowedModes  I
            7   29     5            mods  I
           19   29     6  requestedModes  I
    Exceptions:
      throws java.lang.IllegalAccessException
    Signature: (BLjava/lang/Class<*>;Ljava/lang/invoke/MemberName;)V
    MethodParameters:
         Name  Flags
      refKind  
      refc     
      m        

  java.lang.String accessFailedMessage(java.lang.Class<?>, java.lang.invoke.MemberName);
    descriptor: (Ljava/lang/Class;Ljava/lang/invoke/MemberName;)Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.Class refc
        start local 2 // java.lang.invoke.MemberName m
         0: .line 3629
            aload 2 /* m */
            invokevirtual java.lang.invoke.MemberName.getDeclaringClass:()Ljava/lang/Class;
            astore 3 /* defc */
        start local 3 // java.lang.Class defc
         1: .line 3630
            aload 2 /* m */
            invokevirtual java.lang.invoke.MemberName.getModifiers:()I
            istore 4 /* mods */
        start local 4 // int mods
         2: .line 3632
            aload 3 /* defc */
            invokevirtual java.lang.Class.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isPublic:(I)Z
            ifeq 6
         3: .line 3633
            aload 3 /* defc */
            aload 1 /* refc */
            if_acmpeq 5
         4: .line 3634
            aload 1 /* refc */
            invokevirtual java.lang.Class.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isPublic:(I)Z
            ifeq 6
         5: .line 3632
      StackMap locals: java.lang.Class int
      StackMap stack:
            iconst_1
            goto 7
      StackMap locals:
      StackMap stack:
         6: iconst_0
      StackMap locals:
      StackMap stack: int
         7: istore 5 /* classOK */
        start local 5 // boolean classOK
         8: .line 3635
            iload 5 /* classOK */
            ifne 15
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.allowedModes:I
            bipush 8
            iand
            ifeq 15
         9: .line 3637
            aload 3 /* defc */
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupClass:()Ljava/lang/Class;
            aconst_null
            bipush 31
            invokestatic sun.invoke.util.VerifyAccess.isClassAccessible:(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/Class;I)Z
            ifeq 13
        10: .line 3638
            aload 3 /* defc */
            aload 1 /* refc */
            if_acmpeq 12
        11: .line 3639
            aload 1 /* refc */
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupClass:()Ljava/lang/Class;
            aconst_null
            bipush 31
            invokestatic sun.invoke.util.VerifyAccess.isClassAccessible:(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/Class;I)Z
            ifeq 13
        12: .line 3637
      StackMap locals: int
      StackMap stack:
            iconst_1
            goto 14
      StackMap locals:
      StackMap stack:
        13: iconst_0
      StackMap locals:
      StackMap stack: int
        14: istore 5 /* classOK */
        15: .line 3641
      StackMap locals:
      StackMap stack:
            iload 5 /* classOK */
            ifne 17
        16: .line 3642
            ldc "class is not public"
            areturn
        17: .line 3643
      StackMap locals:
      StackMap stack:
            iload 4 /* mods */
            invokestatic java.lang.reflect.Modifier.isPublic:(I)Z
            ifeq 19
        18: .line 3644
            ldc "access to public member failed"
            areturn
        19: .line 3645
      StackMap locals:
      StackMap stack:
            iload 4 /* mods */
            invokestatic java.lang.reflect.Modifier.isPrivate:(I)Z
            ifeq 21
        20: .line 3646
            ldc "member is private"
            areturn
        21: .line 3647
      StackMap locals:
      StackMap stack:
            iload 4 /* mods */
            invokestatic java.lang.reflect.Modifier.isProtected:(I)Z
            ifeq 23
        22: .line 3648
            ldc "member is protected"
            areturn
        23: .line 3649
      StackMap locals:
      StackMap stack:
            ldc "member is private to package"
            areturn
        end local 5 // boolean classOK
        end local 4 // int mods
        end local 3 // java.lang.Class defc
        end local 2 // java.lang.invoke.MemberName m
        end local 1 // java.lang.Class refc
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   24     0     this  Ljava/lang/invoke/MethodHandles$Lookup;
            0   24     1     refc  Ljava/lang/Class<*>;
            0   24     2        m  Ljava/lang/invoke/MemberName;
            1   24     3     defc  Ljava/lang/Class<*>;
            2   24     4     mods  I
            8   24     5  classOK  Z
    Signature: (Ljava/lang/Class<*>;Ljava/lang/invoke/MemberName;)Ljava/lang/String;
    MethodParameters:
      Name  Flags
      refc  
      m     

  private void checkSpecialCaller(java.lang.Class<?>, java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;Ljava/lang/Class;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.Class specialCaller
        start local 2 // java.lang.Class refc
         0: .line 3653
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.allowedModes:I
            istore 3 /* allowedModes */
        start local 3 // int allowedModes
         1: .line 3654
            iload 3 /* allowedModes */
            iconst_m1
            if_icmpne 2
            return
         2: .line 3655
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupModes:()I
            iconst_2
            iand
            ifeq 5
         3: .line 3656
            aload 1 /* specialCaller */
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupClass:()Ljava/lang/Class;
            if_acmpeq 8
         4: .line 3658
            aload 2 /* refc */
            ifnull 5
            aload 2 /* refc */
            invokevirtual java.lang.Class.isInterface:()Z
            ifeq 5
            aload 2 /* refc */
            aload 1 /* specialCaller */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 8
         5: .line 3659
      StackMap locals:
      StackMap stack:
            new java.lang.invoke.MemberName
            dup
            aload 1 /* specialCaller */
            invokespecial java.lang.invoke.MemberName.<init>:(Ljava/lang/Class;)V
         6: .line 3660
            ldc "no private access for invokespecial"
            aload 0 /* this */
            invokevirtual java.lang.invoke.MemberName.makeAccessException:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/IllegalAccessException;
         7: .line 3659
            athrow
         8: .line 3661
      StackMap locals:
      StackMap stack:
            return
        end local 3 // int allowedModes
        end local 2 // java.lang.Class refc
        end local 1 // java.lang.Class specialCaller
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    9     0           this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    9     1  specialCaller  Ljava/lang/Class<*>;
            0    9     2           refc  Ljava/lang/Class<*>;
            1    9     3   allowedModes  I
    Exceptions:
      throws java.lang.IllegalAccessException
    Signature: (Ljava/lang/Class<*>;Ljava/lang/Class<*>;)V
    MethodParameters:
               Name  Flags
      specialCaller  
      refc           

  private boolean restrictProtectedReceiver(java.lang.invoke.MemberName);
    descriptor: (Ljava/lang/invoke/MemberName;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.invoke.MemberName method
         0: .line 3666
            aload 1 /* method */
            invokevirtual java.lang.invoke.MemberName.isProtected:()Z
            ifeq 4
            aload 1 /* method */
            invokevirtual java.lang.invoke.MemberName.isStatic:()Z
            ifne 4
         1: .line 3667
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.allowedModes:I
            iconst_m1
            if_icmpeq 4
         2: .line 3668
            aload 1 /* method */
            invokevirtual java.lang.invoke.MemberName.getDeclaringClass:()Ljava/lang/Class;
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupClass:()Ljava/lang/Class;
            if_acmpeq 4
         3: .line 3669
            aload 1 /* method */
            invokevirtual java.lang.invoke.MemberName.getDeclaringClass:()Ljava/lang/Class;
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupClass:()Ljava/lang/Class;
            invokestatic sun.invoke.util.VerifyAccess.isSamePackage:(Ljava/lang/Class;Ljava/lang/Class;)Z
            ifeq 5
         4: .line 3670
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         5: .line 3671
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 1 // java.lang.invoke.MemberName method
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    6     1  method  Ljava/lang/invoke/MemberName;
    MethodParameters:
        Name  Flags
      method  

  private java.lang.invoke.MethodHandle restrictReceiver(java.lang.invoke.MemberName, java.lang.invoke.DirectMethodHandle, java.lang.Class<?>);
    descriptor: (Ljava/lang/invoke/MemberName;Ljava/lang/invoke/DirectMethodHandle;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=4
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.invoke.MemberName method
        start local 2 // java.lang.invoke.DirectMethodHandle mh
        start local 3 // java.lang.Class caller
         0: .line 3674
            getstatic java.lang.invoke.MethodHandles$Lookup.$assertionsDisabled:Z
            ifne 1
            aload 1 /* method */
            invokevirtual java.lang.invoke.MemberName.isStatic:()Z
            ifeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 3676
      StackMap locals:
      StackMap stack:
            aload 1 /* method */
            invokevirtual java.lang.invoke.MemberName.getDeclaringClass:()Ljava/lang/Class;
            aload 3 /* caller */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 3
         2: .line 3677
            aload 1 /* method */
            ldc "caller class must be a subclass below the method"
            aload 3 /* caller */
            invokevirtual java.lang.invoke.MemberName.makeAccessException:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/IllegalAccessException;
            athrow
         3: .line 3679
      StackMap locals:
      StackMap stack:
            aload 2 /* mh */
            invokevirtual java.lang.invoke.DirectMethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 4 /* rawType */
        start local 4 // java.lang.invoke.MethodType rawType
         4: .line 3680
            aload 3 /* caller */
            aload 4 /* rawType */
            iconst_0
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 5
            aload 2 /* mh */
            areturn
         5: .line 3681
      StackMap locals: java.lang.invoke.MethodType
      StackMap stack:
            aload 4 /* rawType */
            iconst_0
            aload 3 /* caller */
            invokevirtual java.lang.invoke.MethodType.changeParameterType:(ILjava/lang/Class;)Ljava/lang/invoke/MethodType;
            astore 5 /* narrowType */
        start local 5 // java.lang.invoke.MethodType narrowType
         6: .line 3682
            getstatic java.lang.invoke.MethodHandles$Lookup.$assertionsDisabled:Z
            ifne 7
            aload 2 /* mh */
            invokevirtual java.lang.invoke.DirectMethodHandle.isVarargsCollector:()Z
            ifeq 7
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         7: .line 3683
      StackMap locals: java.lang.invoke.MethodType
      StackMap stack:
            getstatic java.lang.invoke.MethodHandles$Lookup.$assertionsDisabled:Z
            ifne 8
            aload 2 /* mh */
            aload 5 /* narrowType */
            iconst_1
            invokevirtual java.lang.invoke.DirectMethodHandle.viewAsTypeChecks:(Ljava/lang/invoke/MethodType;Z)Z
            ifne 8
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         8: .line 3684
      StackMap locals:
      StackMap stack:
            aload 2 /* mh */
            aload 5 /* narrowType */
            aload 2 /* mh */
            getfield java.lang.invoke.DirectMethodHandle.form:Ljava/lang/invoke/LambdaForm;
            invokevirtual java.lang.invoke.DirectMethodHandle.copyWith:(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/LambdaForm;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 5 // java.lang.invoke.MethodType narrowType
        end local 4 // java.lang.invoke.MethodType rawType
        end local 3 // java.lang.Class caller
        end local 2 // java.lang.invoke.DirectMethodHandle mh
        end local 1 // java.lang.invoke.MemberName method
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    9     0        this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    9     1      method  Ljava/lang/invoke/MemberName;
            0    9     2          mh  Ljava/lang/invoke/DirectMethodHandle;
            0    9     3      caller  Ljava/lang/Class<*>;
            4    9     4     rawType  Ljava/lang/invoke/MethodType;
            6    9     5  narrowType  Ljava/lang/invoke/MethodType;
    Exceptions:
      throws java.lang.IllegalAccessException
    Signature: (Ljava/lang/invoke/MemberName;Ljava/lang/invoke/DirectMethodHandle;Ljava/lang/Class<*>;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
        Name  Flags
      method  
      mh      
      caller  

  private java.lang.invoke.MethodHandle getDirectMethod(byte, java.lang.Class<?>, java.lang.invoke.MemberName, java.lang.invoke.MethodHandles$Lookup);
    descriptor: (BLjava/lang/Class;Ljava/lang/invoke/MemberName;Ljava/lang/invoke/MethodHandles$Lookup;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=5, args_size=5
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // byte refKind
        start local 2 // java.lang.Class refc
        start local 3 // java.lang.invoke.MemberName method
        start local 4 // java.lang.invoke.MethodHandles$Lookup callerLookup
         0: .line 3691
            aload 0 /* this */
            iload 1 /* refKind */
            aload 2 /* refc */
            aload 3 /* method */
            iconst_1
            iconst_1
            aload 4 /* callerLookup */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.getDirectMethodCommon:(BLjava/lang/Class;Ljava/lang/invoke/MemberName;ZZLjava/lang/invoke/MethodHandles$Lookup;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 4 // java.lang.invoke.MethodHandles$Lookup callerLookup
        end local 3 // java.lang.invoke.MemberName method
        end local 2 // java.lang.Class refc
        end local 1 // byte refKind
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    1     1       refKind  B
            0    1     2          refc  Ljava/lang/Class<*>;
            0    1     3        method  Ljava/lang/invoke/MemberName;
            0    1     4  callerLookup  Ljava/lang/invoke/MethodHandles$Lookup;
    Exceptions:
      throws java.lang.IllegalAccessException
    Signature: (BLjava/lang/Class<*>;Ljava/lang/invoke/MemberName;Ljava/lang/invoke/MethodHandles$Lookup;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
              Name  Flags
      refKind       
      refc          
      method        
      callerLookup  

  private java.lang.invoke.MethodHandle getDirectMethodNoRestrictInvokeSpecial(java.lang.Class<?>, java.lang.invoke.MemberName, java.lang.invoke.MethodHandles$Lookup);
    descriptor: (Ljava/lang/Class;Ljava/lang/invoke/MemberName;Ljava/lang/invoke/MethodHandles$Lookup;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=4, args_size=4
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.Class refc
        start local 2 // java.lang.invoke.MemberName method
        start local 3 // java.lang.invoke.MethodHandles$Lookup callerLookup
         0: .line 3697
            aload 0 /* this */
            bipush 7
            aload 1 /* refc */
            aload 2 /* method */
            iconst_1
            iconst_0
            aload 3 /* callerLookup */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.getDirectMethodCommon:(BLjava/lang/Class;Ljava/lang/invoke/MemberName;ZZLjava/lang/invoke/MethodHandles$Lookup;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 3 // java.lang.invoke.MethodHandles$Lookup callerLookup
        end local 2 // java.lang.invoke.MemberName method
        end local 1 // java.lang.Class refc
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    1     1          refc  Ljava/lang/Class<*>;
            0    1     2        method  Ljava/lang/invoke/MemberName;
            0    1     3  callerLookup  Ljava/lang/invoke/MethodHandles$Lookup;
    Exceptions:
      throws java.lang.IllegalAccessException
    Signature: (Ljava/lang/Class<*>;Ljava/lang/invoke/MemberName;Ljava/lang/invoke/MethodHandles$Lookup;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
              Name  Flags
      refc          
      method        
      callerLookup  

  private java.lang.invoke.MethodHandle getDirectMethodNoSecurityManager(byte, java.lang.Class<?>, java.lang.invoke.MemberName, java.lang.invoke.MethodHandles$Lookup);
    descriptor: (BLjava/lang/Class;Ljava/lang/invoke/MemberName;Ljava/lang/invoke/MethodHandles$Lookup;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=5, args_size=5
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // byte refKind
        start local 2 // java.lang.Class refc
        start local 3 // java.lang.invoke.MemberName method
        start local 4 // java.lang.invoke.MethodHandles$Lookup callerLookup
         0: .line 3703
            aload 0 /* this */
            iload 1 /* refKind */
            aload 2 /* refc */
            aload 3 /* method */
            iconst_0
            iconst_1
            aload 4 /* callerLookup */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.getDirectMethodCommon:(BLjava/lang/Class;Ljava/lang/invoke/MemberName;ZZLjava/lang/invoke/MethodHandles$Lookup;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 4 // java.lang.invoke.MethodHandles$Lookup callerLookup
        end local 3 // java.lang.invoke.MemberName method
        end local 2 // java.lang.Class refc
        end local 1 // byte refKind
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    1     1       refKind  B
            0    1     2          refc  Ljava/lang/Class<*>;
            0    1     3        method  Ljava/lang/invoke/MemberName;
            0    1     4  callerLookup  Ljava/lang/invoke/MethodHandles$Lookup;
    Exceptions:
      throws java.lang.IllegalAccessException
    Signature: (BLjava/lang/Class<*>;Ljava/lang/invoke/MemberName;Ljava/lang/invoke/MethodHandles$Lookup;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
              Name  Flags
      refKind       
      refc          
      method        
      callerLookup  

  private java.lang.invoke.MethodHandle getDirectMethodCommon(byte, java.lang.Class<?>, java.lang.invoke.MemberName, boolean, boolean, java.lang.invoke.MethodHandles$Lookup);
    descriptor: (BLjava/lang/Class;Ljava/lang/invoke/MemberName;ZZLjava/lang/invoke/MethodHandles$Lookup;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=9, args_size=7
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // byte refKind
        start local 2 // java.lang.Class refc
        start local 3 // java.lang.invoke.MemberName method
        start local 4 // boolean checkSecurity
        start local 5 // boolean doRestrict
        start local 6 // java.lang.invoke.MethodHandles$Lookup boundCaller
         0: .line 3710
            aload 0 /* this */
            iload 1 /* refKind */
            aload 2 /* refc */
            aload 3 /* method */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.checkMethod:(BLjava/lang/Class;Ljava/lang/invoke/MemberName;)V
         1: .line 3712
            iload 4 /* checkSecurity */
            ifeq 3
         2: .line 3713
            aload 0 /* this */
            aload 2 /* refc */
            aload 3 /* method */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.checkSecurityManager:(Ljava/lang/Class;Ljava/lang/invoke/MemberName;)V
         3: .line 3714
      StackMap locals:
      StackMap stack:
            getstatic java.lang.invoke.MethodHandles$Lookup.$assertionsDisabled:Z
            ifne 4
            aload 3 /* method */
            invokevirtual java.lang.invoke.MemberName.isMethodHandleInvoke:()Z
            ifeq 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 3716
      StackMap locals:
      StackMap stack:
            iload 1 /* refKind */
            bipush 7
            if_icmpne 24
         5: .line 3717
            aload 2 /* refc */
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupClass:()Ljava/lang/Class;
            if_acmpeq 24
         6: .line 3718
            aload 2 /* refc */
            invokevirtual java.lang.Class.isInterface:()Z
            ifne 24
         7: .line 3719
            aload 2 /* refc */
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getSuperclass:()Ljava/lang/Class;
            if_acmpeq 24
         8: .line 3720
            aload 2 /* refc */
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 24
         9: .line 3721
            getstatic java.lang.invoke.MethodHandles$Lookup.$assertionsDisabled:Z
            ifne 10
            aload 3 /* method */
            invokevirtual java.lang.invoke.MemberName.getName:()Ljava/lang/String;
            ldc "<init>"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 10
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        10: .line 3730
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupClass:()Ljava/lang/Class;
            astore 7 /* refcAsSuper */
        start local 7 // java.lang.Class refcAsSuper
        11: .line 3733
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 7 /* refcAsSuper */
            invokevirtual java.lang.Class.getSuperclass:()Ljava/lang/Class;
            astore 7 /* refcAsSuper */
        12: .line 3734
            new java.lang.invoke.MemberName
            dup
            aload 7 /* refcAsSuper */
        13: .line 3735
            aload 3 /* method */
            invokevirtual java.lang.invoke.MemberName.getName:()Ljava/lang/String;
        14: .line 3736
            aload 3 /* method */
            invokevirtual java.lang.invoke.MemberName.getMethodType:()Ljava/lang/invoke/MethodType;
        15: .line 3737
            bipush 7
        16: .line 3734
            invokespecial java.lang.invoke.MemberName.<init>:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;B)V
            astore 8 /* m2 */
        start local 8 // java.lang.invoke.MemberName m2
        17: .line 3738
            getstatic java.lang.invoke.MethodHandles.IMPL_NAMES:Ljava/lang/invoke/MemberName$Factory;
            iload 1 /* refKind */
            aload 8 /* m2 */
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupClassOrNull:()Ljava/lang/Class;
            invokevirtual java.lang.invoke.MemberName$Factory.resolveOrNull:(BLjava/lang/invoke/MemberName;Ljava/lang/Class;)Ljava/lang/invoke/MemberName;
            astore 8 /* m2 */
        18: .line 3739
            aload 8 /* m2 */
            ifnonnull 20
        19: .line 3740
            aload 2 /* refc */
            aload 7 /* refcAsSuper */
            if_acmpne 11
        20: .line 3741
      StackMap locals: java.lang.invoke.MemberName
      StackMap stack:
            aload 8 /* m2 */
            ifnonnull 21
            new java.lang.InternalError
            dup
            aload 3 /* method */
            invokevirtual java.lang.invoke.MemberName.toString:()Ljava/lang/String;
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
            athrow
        21: .line 3742
      StackMap locals:
      StackMap stack:
            aload 8 /* m2 */
            astore 3 /* method */
        22: .line 3743
            aload 7 /* refcAsSuper */
            astore 2 /* refc */
        23: .line 3745
            aload 0 /* this */
            iload 1 /* refKind */
            aload 2 /* refc */
            aload 3 /* method */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.checkMethod:(BLjava/lang/Class;Ljava/lang/invoke/MemberName;)V
        end local 8 // java.lang.invoke.MemberName m2
        end local 7 // java.lang.Class refcAsSuper
        24: .line 3747
      StackMap locals:
      StackMap stack:
            iload 1 /* refKind */
            aload 2 /* refc */
            aload 3 /* method */
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupClass:()Ljava/lang/Class;
            invokestatic java.lang.invoke.DirectMethodHandle.make:(BLjava/lang/Class;Ljava/lang/invoke/MemberName;Ljava/lang/Class;)Ljava/lang/invoke/DirectMethodHandle;
            astore 7 /* dmh */
        start local 7 // java.lang.invoke.DirectMethodHandle dmh
        25: .line 3748
            aload 7 /* dmh */
            astore 8 /* mh */
        start local 8 // java.lang.invoke.MethodHandle mh
        26: .line 3750
            iload 5 /* doRestrict */
            ifeq 27
            iload 1 /* refKind */
            bipush 7
            if_icmpeq 28
        27: .line 3751
      StackMap locals: java.lang.invoke.DirectMethodHandle java.lang.invoke.MethodHandle
      StackMap stack:
            iload 1 /* refKind */
            invokestatic java.lang.invoke.MethodHandleNatives.refKindHasReceiver:(B)Z
            ifeq 29
            aload 0 /* this */
            aload 3 /* method */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.restrictProtectedReceiver:(Ljava/lang/invoke/MemberName;)Z
            ifeq 29
        28: .line 3752
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* method */
            aload 7 /* dmh */
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupClass:()Ljava/lang/Class;
            invokevirtual java.lang.invoke.MethodHandles$Lookup.restrictReceiver:(Ljava/lang/invoke/MemberName;Ljava/lang/invoke/DirectMethodHandle;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            astore 8 /* mh */
        29: .line 3754
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* method */
            aload 8 /* mh */
            aload 6 /* boundCaller */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.maybeBindCaller:(Ljava/lang/invoke/MemberName;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandles$Lookup;)Ljava/lang/invoke/MethodHandle;
            astore 8 /* mh */
        30: .line 3755
            aload 8 /* mh */
            aload 3 /* method */
            invokevirtual java.lang.invoke.MethodHandle.setVarargs:(Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/MethodHandle;
            astore 8 /* mh */
        31: .line 3756
            aload 8 /* mh */
            areturn
        end local 8 // java.lang.invoke.MethodHandle mh
        end local 7 // java.lang.invoke.DirectMethodHandle dmh
        end local 6 // java.lang.invoke.MethodHandles$Lookup boundCaller
        end local 5 // boolean doRestrict
        end local 4 // boolean checkSecurity
        end local 3 // java.lang.invoke.MemberName method
        end local 2 // java.lang.Class refc
        end local 1 // byte refKind
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   32     0           this  Ljava/lang/invoke/MethodHandles$Lookup;
            0   32     1        refKind  B
            0   32     2           refc  Ljava/lang/Class<*>;
            0   32     3         method  Ljava/lang/invoke/MemberName;
            0   32     4  checkSecurity  Z
            0   32     5     doRestrict  Z
            0   32     6    boundCaller  Ljava/lang/invoke/MethodHandles$Lookup;
           11   24     7    refcAsSuper  Ljava/lang/Class<*>;
           17   24     8             m2  Ljava/lang/invoke/MemberName;
           25   32     7            dmh  Ljava/lang/invoke/DirectMethodHandle;
           26   32     8             mh  Ljava/lang/invoke/MethodHandle;
    Exceptions:
      throws java.lang.IllegalAccessException
    Signature: (BLjava/lang/Class<*>;Ljava/lang/invoke/MemberName;ZZLjava/lang/invoke/MethodHandles$Lookup;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
               Name  Flags
      refKind        
      refc           
      method         
      checkSecurity  
      doRestrict     
      boundCaller    

  private java.lang.invoke.MethodHandle maybeBindCaller(java.lang.invoke.MemberName, java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandles$Lookup);
    descriptor: (Ljava/lang/invoke/MemberName;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandles$Lookup;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.invoke.MemberName method
        start local 2 // java.lang.invoke.MethodHandle mh
        start local 3 // java.lang.invoke.MethodHandles$Lookup boundCaller
         0: .line 3760
            aload 3 /* boundCaller */
            getfield java.lang.invoke.MethodHandles$Lookup.allowedModes:I
            iconst_m1
            if_icmpeq 1
            aload 1 /* method */
            invokestatic java.lang.invoke.MethodHandleNatives.isCallerSensitive:(Ljava/lang/invoke/MemberName;)Z
            ifne 2
         1: .line 3761
      StackMap locals:
      StackMap stack:
            aload 2 /* mh */
            areturn
         2: .line 3765
      StackMap locals:
      StackMap stack:
            aload 3 /* boundCaller */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.hasFullPrivilegeAccess:()Z
            ifne 4
         3: .line 3766
            new java.lang.IllegalAccessException
            dup
            ldc "Attempt to lookup caller-sensitive method using restricted lookup object"
            invokespecial java.lang.IllegalAccessException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 3768
      StackMap locals:
      StackMap stack:
            aload 2 /* mh */
            aload 3 /* boundCaller */
            getfield java.lang.invoke.MethodHandles$Lookup.lookupClass:Ljava/lang/Class;
            invokestatic java.lang.invoke.MethodHandleImpl.bindCaller:(Ljava/lang/invoke/MethodHandle;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            astore 4 /* cbmh */
        start local 4 // java.lang.invoke.MethodHandle cbmh
         5: .line 3770
            aload 4 /* cbmh */
            areturn
        end local 4 // java.lang.invoke.MethodHandle cbmh
        end local 3 // java.lang.invoke.MethodHandles$Lookup boundCaller
        end local 2 // java.lang.invoke.MethodHandle mh
        end local 1 // java.lang.invoke.MemberName method
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0         this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    6     1       method  Ljava/lang/invoke/MemberName;
            0    6     2           mh  Ljava/lang/invoke/MethodHandle;
            0    6     3  boundCaller  Ljava/lang/invoke/MethodHandles$Lookup;
            5    6     4         cbmh  Ljava/lang/invoke/MethodHandle;
    Exceptions:
      throws java.lang.IllegalAccessException
    MethodParameters:
             Name  Flags
      method       
      mh           
      boundCaller  

  private java.lang.invoke.MethodHandle getDirectField(byte, java.lang.Class<?>, java.lang.invoke.MemberName);
    descriptor: (BLjava/lang/Class;Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // byte refKind
        start local 2 // java.lang.Class refc
        start local 3 // java.lang.invoke.MemberName field
         0: .line 3776
            aload 0 /* this */
            iload 1 /* refKind */
            aload 2 /* refc */
            aload 3 /* field */
            iconst_1
            invokevirtual java.lang.invoke.MethodHandles$Lookup.getDirectFieldCommon:(BLjava/lang/Class;Ljava/lang/invoke/MemberName;Z)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 3 // java.lang.invoke.MemberName field
        end local 2 // java.lang.Class refc
        end local 1 // byte refKind
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    1     1  refKind  B
            0    1     2     refc  Ljava/lang/Class<*>;
            0    1     3    field  Ljava/lang/invoke/MemberName;
    Exceptions:
      throws java.lang.IllegalAccessException
    Signature: (BLjava/lang/Class<*>;Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
         Name  Flags
      refKind  
      refc     
      field    

  private java.lang.invoke.MethodHandle getDirectFieldNoSecurityManager(byte, java.lang.Class<?>, java.lang.invoke.MemberName);
    descriptor: (BLjava/lang/Class;Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // byte refKind
        start local 2 // java.lang.Class refc
        start local 3 // java.lang.invoke.MemberName field
         0: .line 3781
            aload 0 /* this */
            iload 1 /* refKind */
            aload 2 /* refc */
            aload 3 /* field */
            iconst_0
            invokevirtual java.lang.invoke.MethodHandles$Lookup.getDirectFieldCommon:(BLjava/lang/Class;Ljava/lang/invoke/MemberName;Z)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 3 // java.lang.invoke.MemberName field
        end local 2 // java.lang.Class refc
        end local 1 // byte refKind
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    1     1  refKind  B
            0    1     2     refc  Ljava/lang/Class<*>;
            0    1     3    field  Ljava/lang/invoke/MemberName;
    Exceptions:
      throws java.lang.IllegalAccessException
    Signature: (BLjava/lang/Class<*>;Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
         Name  Flags
      refKind  
      refc     
      field    

  private java.lang.invoke.MethodHandle getDirectFieldCommon(byte, java.lang.Class<?>, java.lang.invoke.MemberName, boolean);
    descriptor: (BLjava/lang/Class;Ljava/lang/invoke/MemberName;Z)Ljava/lang/invoke/MethodHandle;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=5
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // byte refKind
        start local 2 // java.lang.Class refc
        start local 3 // java.lang.invoke.MemberName field
        start local 4 // boolean checkSecurity
         0: .line 3786
            aload 0 /* this */
            iload 1 /* refKind */
            aload 2 /* refc */
            aload 3 /* field */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.checkField:(BLjava/lang/Class;Ljava/lang/invoke/MemberName;)V
         1: .line 3788
            iload 4 /* checkSecurity */
            ifeq 3
         2: .line 3789
            aload 0 /* this */
            aload 2 /* refc */
            aload 3 /* field */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.checkSecurityManager:(Ljava/lang/Class;Ljava/lang/invoke/MemberName;)V
         3: .line 3790
      StackMap locals:
      StackMap stack:
            aload 2 /* refc */
            aload 3 /* field */
            invokestatic java.lang.invoke.DirectMethodHandle.make:(Ljava/lang/Class;Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/DirectMethodHandle;
            astore 5 /* dmh */
        start local 5 // java.lang.invoke.DirectMethodHandle dmh
         4: .line 3791
            iload 1 /* refKind */
            invokestatic java.lang.invoke.MethodHandleNatives.refKindHasReceiver:(B)Z
            ifeq 7
         5: .line 3792
            aload 0 /* this */
            aload 3 /* field */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.restrictProtectedReceiver:(Ljava/lang/invoke/MemberName;)Z
            ifeq 7
         6: .line 3791
            iconst_1
            goto 8
      StackMap locals: java.lang.invoke.DirectMethodHandle
      StackMap stack:
         7: iconst_0
      StackMap locals:
      StackMap stack: int
         8: istore 6 /* doRestrict */
        start local 6 // boolean doRestrict
         9: .line 3793
            iload 6 /* doRestrict */
            ifeq 11
        10: .line 3794
            aload 0 /* this */
            aload 3 /* field */
            aload 5 /* dmh */
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupClass:()Ljava/lang/Class;
            invokevirtual java.lang.invoke.MethodHandles$Lookup.restrictReceiver:(Ljava/lang/invoke/MemberName;Ljava/lang/invoke/DirectMethodHandle;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            areturn
        11: .line 3795
      StackMap locals: int
      StackMap stack:
            aload 5 /* dmh */
            areturn
        end local 6 // boolean doRestrict
        end local 5 // java.lang.invoke.DirectMethodHandle dmh
        end local 4 // boolean checkSecurity
        end local 3 // java.lang.invoke.MemberName field
        end local 2 // java.lang.Class refc
        end local 1 // byte refKind
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   12     0           this  Ljava/lang/invoke/MethodHandles$Lookup;
            0   12     1        refKind  B
            0   12     2           refc  Ljava/lang/Class<*>;
            0   12     3          field  Ljava/lang/invoke/MemberName;
            0   12     4  checkSecurity  Z
            4   12     5            dmh  Ljava/lang/invoke/DirectMethodHandle;
            9   12     6     doRestrict  Z
    Exceptions:
      throws java.lang.IllegalAccessException
    Signature: (BLjava/lang/Class<*>;Ljava/lang/invoke/MemberName;Z)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
               Name  Flags
      refKind        
      refc           
      field          
      checkSecurity  

  private java.lang.invoke.VarHandle getFieldVarHandle(byte, byte, java.lang.Class<?>, java.lang.invoke.MemberName, java.lang.invoke.MemberName);
    descriptor: (BBLjava/lang/Class;Ljava/lang/invoke/MemberName;Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/VarHandle;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=6, args_size=6
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // byte getRefKind
        start local 2 // byte putRefKind
        start local 3 // java.lang.Class refc
        start local 4 // java.lang.invoke.MemberName getField
        start local 5 // java.lang.invoke.MemberName putField
         0: .line 3801
            aload 0 /* this */
            iload 1 /* getRefKind */
            iload 2 /* putRefKind */
            aload 3 /* refc */
            aload 4 /* getField */
            aload 5 /* putField */
            iconst_1
            invokevirtual java.lang.invoke.MethodHandles$Lookup.getFieldVarHandleCommon:(BBLjava/lang/Class;Ljava/lang/invoke/MemberName;Ljava/lang/invoke/MemberName;Z)Ljava/lang/invoke/VarHandle;
            areturn
        end local 5 // java.lang.invoke.MemberName putField
        end local 4 // java.lang.invoke.MemberName getField
        end local 3 // java.lang.Class refc
        end local 2 // byte putRefKind
        end local 1 // byte getRefKind
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    1     1  getRefKind  B
            0    1     2  putRefKind  B
            0    1     3        refc  Ljava/lang/Class<*>;
            0    1     4    getField  Ljava/lang/invoke/MemberName;
            0    1     5    putField  Ljava/lang/invoke/MemberName;
    Exceptions:
      throws java.lang.IllegalAccessException
    Signature: (BBLjava/lang/Class<*>;Ljava/lang/invoke/MemberName;Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/VarHandle;
    MethodParameters:
            Name  Flags
      getRefKind  
      putRefKind  
      refc        
      getField    
      putField    

  private java.lang.invoke.VarHandle getFieldVarHandleNoSecurityManager(byte, byte, java.lang.Class<?>, java.lang.invoke.MemberName, java.lang.invoke.MemberName);
    descriptor: (BBLjava/lang/Class;Ljava/lang/invoke/MemberName;Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/VarHandle;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=6, args_size=6
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // byte getRefKind
        start local 2 // byte putRefKind
        start local 3 // java.lang.Class refc
        start local 4 // java.lang.invoke.MemberName getField
        start local 5 // java.lang.invoke.MemberName putField
         0: .line 3807
            aload 0 /* this */
            iload 1 /* getRefKind */
            iload 2 /* putRefKind */
            aload 3 /* refc */
            aload 4 /* getField */
            aload 5 /* putField */
            iconst_0
            invokevirtual java.lang.invoke.MethodHandles$Lookup.getFieldVarHandleCommon:(BBLjava/lang/Class;Ljava/lang/invoke/MemberName;Ljava/lang/invoke/MemberName;Z)Ljava/lang/invoke/VarHandle;
            areturn
        end local 5 // java.lang.invoke.MemberName putField
        end local 4 // java.lang.invoke.MemberName getField
        end local 3 // java.lang.Class refc
        end local 2 // byte putRefKind
        end local 1 // byte getRefKind
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    1     1  getRefKind  B
            0    1     2  putRefKind  B
            0    1     3        refc  Ljava/lang/Class<*>;
            0    1     4    getField  Ljava/lang/invoke/MemberName;
            0    1     5    putField  Ljava/lang/invoke/MemberName;
    Exceptions:
      throws java.lang.IllegalAccessException
    Signature: (BBLjava/lang/Class<*>;Ljava/lang/invoke/MemberName;Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/VarHandle;
    MethodParameters:
            Name  Flags
      getRefKind  
      putRefKind  
      refc        
      getField    
      putField    

  private java.lang.invoke.VarHandle getFieldVarHandleCommon(byte, byte, java.lang.Class<?>, java.lang.invoke.MemberName, java.lang.invoke.MemberName, boolean);
    descriptor: (BBLjava/lang/Class;Ljava/lang/invoke/MemberName;Ljava/lang/invoke/MemberName;Z)Ljava/lang/invoke/VarHandle;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=8, args_size=7
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // byte getRefKind
        start local 2 // byte putRefKind
        start local 3 // java.lang.Class refc
        start local 4 // java.lang.invoke.MemberName getField
        start local 5 // java.lang.invoke.MemberName putField
        start local 6 // boolean checkSecurity
         0: .line 3812
            getstatic java.lang.invoke.MethodHandles$Lookup.$assertionsDisabled:Z
            ifne 1
            aload 4 /* getField */
            invokevirtual java.lang.invoke.MemberName.isStatic:()Z
            aload 5 /* putField */
            invokevirtual java.lang.invoke.MemberName.isStatic:()Z
            if_icmpeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 3813
      StackMap locals:
      StackMap stack:
            getstatic java.lang.invoke.MethodHandles$Lookup.$assertionsDisabled:Z
            ifne 3
            aload 4 /* getField */
            invokevirtual java.lang.invoke.MemberName.isGetter:()Z
            ifeq 2
            aload 5 /* putField */
            invokevirtual java.lang.invoke.MemberName.isSetter:()Z
            ifne 3
      StackMap locals:
      StackMap stack:
         2: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 3814
      StackMap locals:
      StackMap stack:
            getstatic java.lang.invoke.MethodHandles$Lookup.$assertionsDisabled:Z
            ifne 4
            iload 1 /* getRefKind */
            invokestatic java.lang.invoke.MethodHandleNatives.refKindIsStatic:(B)Z
            iload 2 /* putRefKind */
            invokestatic java.lang.invoke.MethodHandleNatives.refKindIsStatic:(B)Z
            if_icmpeq 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 3815
      StackMap locals:
      StackMap stack:
            getstatic java.lang.invoke.MethodHandles$Lookup.$assertionsDisabled:Z
            ifne 6
            iload 1 /* getRefKind */
            invokestatic java.lang.invoke.MethodHandleNatives.refKindIsGetter:(B)Z
            ifeq 5
            iload 2 /* putRefKind */
            invokestatic java.lang.invoke.MethodHandleNatives.refKindIsSetter:(B)Z
            ifne 6
      StackMap locals:
      StackMap stack:
         5: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         6: .line 3817
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* getRefKind */
            aload 3 /* refc */
            aload 4 /* getField */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.checkField:(BLjava/lang/Class;Ljava/lang/invoke/MemberName;)V
         7: .line 3818
            iload 6 /* checkSecurity */
            ifeq 9
         8: .line 3819
            aload 0 /* this */
            aload 3 /* refc */
            aload 4 /* getField */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.checkSecurityManager:(Ljava/lang/Class;Ljava/lang/invoke/MemberName;)V
         9: .line 3821
      StackMap locals:
      StackMap stack:
            aload 5 /* putField */
            invokevirtual java.lang.invoke.MemberName.isFinal:()Z
            ifne 13
        10: .line 3826
            aload 0 /* this */
            iload 2 /* putRefKind */
            aload 3 /* refc */
            aload 5 /* putField */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.checkField:(BLjava/lang/Class;Ljava/lang/invoke/MemberName;)V
        11: .line 3827
            iload 6 /* checkSecurity */
            ifeq 13
        12: .line 3828
            aload 0 /* this */
            aload 3 /* refc */
            aload 5 /* putField */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.checkSecurityManager:(Ljava/lang/Class;Ljava/lang/invoke/MemberName;)V
        13: .line 3831
      StackMap locals:
      StackMap stack:
            iload 1 /* getRefKind */
            invokestatic java.lang.invoke.MethodHandleNatives.refKindHasReceiver:(B)Z
            ifeq 16
        14: .line 3832
            aload 0 /* this */
            aload 4 /* getField */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.restrictProtectedReceiver:(Ljava/lang/invoke/MemberName;)Z
            ifeq 16
        15: .line 3831
            iconst_1
            goto 17
      StackMap locals:
      StackMap stack:
        16: iconst_0
      StackMap locals:
      StackMap stack: int
        17: istore 7 /* doRestrict */
        start local 7 // boolean doRestrict
        18: .line 3833
            iload 7 /* doRestrict */
            ifeq 23
        19: .line 3834
            getstatic java.lang.invoke.MethodHandles$Lookup.$assertionsDisabled:Z
            ifne 20
            aload 4 /* getField */
            invokevirtual java.lang.invoke.MemberName.isStatic:()Z
            ifeq 20
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        20: .line 3836
      StackMap locals: int
      StackMap stack:
            aload 4 /* getField */
            invokevirtual java.lang.invoke.MemberName.getDeclaringClass:()Ljava/lang/Class;
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 22
        21: .line 3837
            aload 4 /* getField */
            ldc "caller class must be a subclass below the method"
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupClass:()Ljava/lang/Class;
            invokevirtual java.lang.invoke.MemberName.makeAccessException:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/IllegalAccessException;
            athrow
        22: .line 3839
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupClass:()Ljava/lang/Class;
            astore 3 /* refc */
        23: .line 3841
      StackMap locals:
      StackMap stack:
            aload 4 /* getField */
            aload 3 /* refc */
            aload 4 /* getField */
            invokevirtual java.lang.invoke.MemberName.getFieldType:()Ljava/lang/Class;
        24: .line 3842
            aload 0 /* this */
            getfield java.lang.invoke.MethodHandles$Lookup.allowedModes:I
            iconst_m1
            if_icmpne 25
            aload 4 /* getField */
            invokevirtual java.lang.invoke.MemberName.isTrustedFinalField:()Z
            ifne 25
            iconst_1
            goto 26
      StackMap locals: java.lang.invoke.MethodHandles$Lookup int int java.lang.Class java.lang.invoke.MemberName java.lang.invoke.MemberName int int
      StackMap stack: java.lang.invoke.MemberName java.lang.Class java.lang.Class
        25: iconst_0
        26: .line 3841
      StackMap locals: java.lang.invoke.MethodHandles$Lookup int int java.lang.Class java.lang.invoke.MemberName java.lang.invoke.MemberName int int
      StackMap stack: java.lang.invoke.MemberName java.lang.Class java.lang.Class int
            invokestatic java.lang.invoke.VarHandles.makeFieldHandle:(Ljava/lang/invoke/MemberName;Ljava/lang/Class;Ljava/lang/Class;Z)Ljava/lang/invoke/VarHandle;
            areturn
        end local 7 // boolean doRestrict
        end local 6 // boolean checkSecurity
        end local 5 // java.lang.invoke.MemberName putField
        end local 4 // java.lang.invoke.MemberName getField
        end local 3 // java.lang.Class refc
        end local 2 // byte putRefKind
        end local 1 // byte getRefKind
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   27     0           this  Ljava/lang/invoke/MethodHandles$Lookup;
            0   27     1     getRefKind  B
            0   27     2     putRefKind  B
            0   27     3           refc  Ljava/lang/Class<*>;
            0   27     4       getField  Ljava/lang/invoke/MemberName;
            0   27     5       putField  Ljava/lang/invoke/MemberName;
            0   27     6  checkSecurity  Z
           18   27     7     doRestrict  Z
    Exceptions:
      throws java.lang.IllegalAccessException
    Signature: (BBLjava/lang/Class<*>;Ljava/lang/invoke/MemberName;Ljava/lang/invoke/MemberName;Z)Ljava/lang/invoke/VarHandle;
    MethodParameters:
               Name  Flags
      getRefKind     
      putRefKind     
      refc           
      getField       
      putField       
      checkSecurity  

  private java.lang.invoke.MethodHandle getDirectConstructor(java.lang.Class<?>, java.lang.invoke.MemberName);
    descriptor: (Ljava/lang/Class;Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.Class refc
        start local 2 // java.lang.invoke.MemberName ctor
         0: .line 3847
            aload 0 /* this */
            aload 1 /* refc */
            aload 2 /* ctor */
            iconst_1
            invokevirtual java.lang.invoke.MethodHandles$Lookup.getDirectConstructorCommon:(Ljava/lang/Class;Ljava/lang/invoke/MemberName;Z)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 2 // java.lang.invoke.MemberName ctor
        end local 1 // java.lang.Class refc
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    1     1  refc  Ljava/lang/Class<*>;
            0    1     2  ctor  Ljava/lang/invoke/MemberName;
    Exceptions:
      throws java.lang.IllegalAccessException
    Signature: (Ljava/lang/Class<*>;Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
      Name  Flags
      refc  
      ctor  

  private java.lang.invoke.MethodHandle getDirectConstructorNoSecurityManager(java.lang.Class<?>, java.lang.invoke.MemberName);
    descriptor: (Ljava/lang/Class;Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.Class refc
        start local 2 // java.lang.invoke.MemberName ctor
         0: .line 3852
            aload 0 /* this */
            aload 1 /* refc */
            aload 2 /* ctor */
            iconst_0
            invokevirtual java.lang.invoke.MethodHandles$Lookup.getDirectConstructorCommon:(Ljava/lang/Class;Ljava/lang/invoke/MemberName;Z)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 2 // java.lang.invoke.MemberName ctor
        end local 1 // java.lang.Class refc
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    1     1  refc  Ljava/lang/Class<*>;
            0    1     2  ctor  Ljava/lang/invoke/MemberName;
    Exceptions:
      throws java.lang.IllegalAccessException
    Signature: (Ljava/lang/Class<*>;Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
      Name  Flags
      refc  
      ctor  

  private java.lang.invoke.MethodHandle getDirectConstructorCommon(java.lang.Class<?>, java.lang.invoke.MemberName, boolean);
    descriptor: (Ljava/lang/Class;Ljava/lang/invoke/MemberName;Z)Ljava/lang/invoke/MethodHandle;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // java.lang.Class refc
        start local 2 // java.lang.invoke.MemberName ctor
        start local 3 // boolean checkSecurity
         0: .line 3857
            getstatic java.lang.invoke.MethodHandles$Lookup.$assertionsDisabled:Z
            ifne 1
            aload 2 /* ctor */
            invokevirtual java.lang.invoke.MemberName.isConstructor:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 3858
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 8
            aload 1 /* refc */
            aload 2 /* ctor */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.checkAccess:(BLjava/lang/Class;Ljava/lang/invoke/MemberName;)V
         2: .line 3860
            iload 3 /* checkSecurity */
            ifeq 4
         3: .line 3861
            aload 0 /* this */
            aload 1 /* refc */
            aload 2 /* ctor */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.checkSecurityManager:(Ljava/lang/Class;Ljava/lang/invoke/MemberName;)V
         4: .line 3862
      StackMap locals:
      StackMap stack:
            getstatic java.lang.invoke.MethodHandles$Lookup.$assertionsDisabled:Z
            ifne 5
            aload 2 /* ctor */
            invokestatic java.lang.invoke.MethodHandleNatives.isCallerSensitive:(Ljava/lang/invoke/MemberName;)Z
            ifeq 5
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         5: .line 3863
      StackMap locals:
      StackMap stack:
            aload 2 /* ctor */
            invokestatic java.lang.invoke.DirectMethodHandle.make:(Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/DirectMethodHandle;
            aload 2 /* ctor */
            invokevirtual java.lang.invoke.DirectMethodHandle.setVarargs:(Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 3 // boolean checkSecurity
        end local 2 // java.lang.invoke.MemberName ctor
        end local 1 // java.lang.Class refc
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    6     0           this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    6     1           refc  Ljava/lang/Class<*>;
            0    6     2           ctor  Ljava/lang/invoke/MemberName;
            0    6     3  checkSecurity  Z
    Exceptions:
      throws java.lang.IllegalAccessException
    Signature: (Ljava/lang/Class<*>;Ljava/lang/invoke/MemberName;Z)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
               Name  Flags
      refc           
      ctor           
      checkSecurity  

  java.lang.invoke.MethodHandle linkMethodHandleConstant(byte, java.lang.Class<?>, java.lang.String, );
    descriptor: (BLjava/lang/Class;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0000) 
    Code:
      stack=6, locals=9, args_size=5
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // byte refKind
        start local 2 // java.lang.Class defc
        start local 3 // java.lang.String name
        start local 4 // java.lang.Object type
         0: .line 3871
            aload 4 /* type */
            instanceof java.lang.Class
            ifne 2
            aload 4 /* type */
            instanceof java.lang.invoke.MethodType
            ifne 2
         1: .line 3872
            new java.lang.InternalError
            dup
            ldc "unresolved MemberName"
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 3873
      StackMap locals:
      StackMap stack:
            new java.lang.invoke.MemberName
            dup
            iload 1 /* refKind */
            aload 2 /* defc */
            aload 3 /* name */
            aload 4 /* type */
            invokespecial java.lang.invoke.MemberName.<init>:(BLjava/lang/Class;Ljava/lang/String;Ljava/lang/Object;)V
            astore 5 /* member */
        start local 5 // java.lang.invoke.MemberName member
         3: .line 3874
            getstatic java.lang.invoke.MethodHandles$Lookup.LOOKASIDE_TABLE:Ljava/util/concurrent/ConcurrentHashMap;
            aload 5 /* member */
            invokevirtual java.util.concurrent.ConcurrentHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.invoke.MethodHandle
            astore 6 /* mh */
        start local 6 // java.lang.invoke.MethodHandle mh
         4: .line 3875
            aload 6 /* mh */
            ifnull 7
         5: .line 3876
            aload 0 /* this */
            aload 2 /* defc */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.checkSymbolicClass:(Ljava/lang/Class;)V
         6: .line 3877
            aload 6 /* mh */
            areturn
         7: .line 3879
      StackMap locals: java.lang.invoke.MemberName java.lang.invoke.MethodHandle
      StackMap stack:
            aload 2 /* defc */
            ldc Ljava/lang/invoke/MethodHandle;
            if_acmpne 11
            iload 1 /* refKind */
            iconst_5
            if_icmpne 11
         8: .line 3881
            aload 0 /* this */
            aload 5 /* member */
            invokevirtual java.lang.invoke.MemberName.getName:()Ljava/lang/String;
            aload 5 /* member */
            invokevirtual java.lang.invoke.MemberName.getMethodType:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodHandles$Lookup.findVirtualForMH:(Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            astore 6 /* mh */
         9: .line 3882
            aload 6 /* mh */
            ifnull 15
        10: .line 3883
            aload 6 /* mh */
            areturn
        11: .line 3885
      StackMap locals:
      StackMap stack:
            aload 2 /* defc */
            ldc Ljava/lang/invoke/VarHandle;
            if_acmpne 15
            iload 1 /* refKind */
            iconst_5
            if_icmpne 15
        12: .line 3887
            aload 0 /* this */
            aload 5 /* member */
            invokevirtual java.lang.invoke.MemberName.getName:()Ljava/lang/String;
            aload 5 /* member */
            invokevirtual java.lang.invoke.MemberName.getMethodType:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodHandles$Lookup.findVirtualForVH:(Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            astore 6 /* mh */
        13: .line 3888
            aload 6 /* mh */
            ifnull 15
        14: .line 3889
            aload 6 /* mh */
            areturn
        15: .line 3892
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* refKind */
            aload 5 /* member */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.resolveOrFail:(BLjava/lang/invoke/MemberName;)Ljava/lang/invoke/MemberName;
            astore 7 /* resolved */
        start local 7 // java.lang.invoke.MemberName resolved
        16: .line 3893
            aload 0 /* this */
            iload 1 /* refKind */
            aload 2 /* defc */
            aload 7 /* resolved */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.getDirectMethodForConstant:(BLjava/lang/Class;Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/MethodHandle;
            astore 6 /* mh */
        17: .line 3894
            aload 6 /* mh */
            instanceof java.lang.invoke.DirectMethodHandle
            ifeq 24
        18: .line 3895
            aload 0 /* this */
            iload 1 /* refKind */
            aload 2 /* defc */
            aload 7 /* resolved */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.canBeCached:(BLjava/lang/Class;Ljava/lang/invoke/MemberName;)Z
            ifeq 24
        19: .line 3896
            aload 6 /* mh */
            invokevirtual java.lang.invoke.MethodHandle.internalMemberName:()Ljava/lang/invoke/MemberName;
            astore 8 /* key */
        start local 8 // java.lang.invoke.MemberName key
        20: .line 3897
            aload 8 /* key */
            ifnull 22
        21: .line 3898
            aload 8 /* key */
            invokevirtual java.lang.invoke.MemberName.asNormalOriginal:()Ljava/lang/invoke/MemberName;
            astore 8 /* key */
        22: .line 3900
      StackMap locals: java.lang.invoke.MemberName java.lang.invoke.MemberName
      StackMap stack:
            aload 5 /* member */
            aload 8 /* key */
            invokevirtual java.lang.invoke.MemberName.equals:(Ljava/lang/invoke/MemberName;)Z
            ifeq 24
        23: .line 3901
            getstatic java.lang.invoke.MethodHandles$Lookup.LOOKASIDE_TABLE:Ljava/util/concurrent/ConcurrentHashMap;
            aload 8 /* key */
            aload 6 /* mh */
            checkcast java.lang.invoke.DirectMethodHandle
            invokevirtual java.util.concurrent.ConcurrentHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 8 // java.lang.invoke.MemberName key
        24: .line 3904
      StackMap locals:
      StackMap stack:
            aload 6 /* mh */
            areturn
        end local 7 // java.lang.invoke.MemberName resolved
        end local 6 // java.lang.invoke.MethodHandle mh
        end local 5 // java.lang.invoke.MemberName member
        end local 4 // java.lang.Object type
        end local 3 // java.lang.String name
        end local 2 // java.lang.Class defc
        end local 1 // byte refKind
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   25     0      this  Ljava/lang/invoke/MethodHandles$Lookup;
            0   25     1   refKind  B
            0   25     2      defc  Ljava/lang/Class<*>;
            0   25     3      name  Ljava/lang/String;
            0   25     4      type  Ljava/lang/Object;
            3   25     5    member  Ljava/lang/invoke/MemberName;
            4   25     6        mh  Ljava/lang/invoke/MethodHandle;
           16   25     7  resolved  Ljava/lang/invoke/MemberName;
           20   24     8       key  Ljava/lang/invoke/MemberName;
    Exceptions:
      throws java.lang.ReflectiveOperationException
    Signature: (BLjava/lang/Class<*>;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
         Name  Flags
      refKind  
      defc     
      name     
      type     

  private boolean canBeCached(byte, java.lang.Class<?>, java.lang.invoke.MemberName);
    descriptor: (BLjava/lang/Class;Ljava/lang/invoke/MemberName;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=7, args_size=4
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // byte refKind
        start local 2 // java.lang.Class defc
        start local 3 // java.lang.invoke.MemberName member
         0: .line 3907
            iload 1 /* refKind */
            bipush 7
            if_icmpne 2
         1: .line 3908
            iconst_0
            ireturn
         2: .line 3910
      StackMap locals:
      StackMap stack:
            aload 2 /* defc */
            invokevirtual java.lang.Class.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isPublic:(I)Z
            ifeq 6
         3: .line 3911
            aload 3 /* member */
            invokevirtual java.lang.invoke.MemberName.getDeclaringClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isPublic:(I)Z
            ifeq 6
         4: .line 3912
            aload 3 /* member */
            invokevirtual java.lang.invoke.MemberName.isPublic:()Z
            ifeq 6
         5: .line 3913
            aload 3 /* member */
            invokevirtual java.lang.invoke.MemberName.isCallerSensitive:()Z
            ifeq 7
         6: .line 3914
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         7: .line 3916
      StackMap locals:
      StackMap stack:
            aload 2 /* defc */
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            astore 4 /* loader */
        start local 4 // java.lang.ClassLoader loader
         8: .line 3917
            aload 4 /* loader */
            ifnull 17
         9: .line 3918
            invokestatic java.lang.ClassLoader.getSystemClassLoader:()Ljava/lang/ClassLoader;
            astore 5 /* sysl */
        start local 5 // java.lang.ClassLoader sysl
        10: .line 3919
            iconst_0
            istore 6 /* found */
        start local 6 // boolean found
        11: .line 3920
            goto 14
        12: .line 3921
      StackMap locals: java.lang.ClassLoader java.lang.ClassLoader int
      StackMap stack:
            aload 4 /* loader */
            aload 5 /* sysl */
            if_acmpne 13
            iconst_1
            istore 6 /* found */
            goto 15
        13: .line 3922
      StackMap locals:
      StackMap stack:
            aload 5 /* sysl */
            invokevirtual java.lang.ClassLoader.getParent:()Ljava/lang/ClassLoader;
            astore 5 /* sysl */
        14: .line 3920
      StackMap locals:
      StackMap stack:
            aload 5 /* sysl */
            ifnonnull 12
        15: .line 3924
      StackMap locals:
      StackMap stack:
            iload 6 /* found */
            ifne 17
        16: .line 3925
            iconst_0
            ireturn
        end local 6 // boolean found
        end local 5 // java.lang.ClassLoader sysl
        17: .line 3929
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.invoke.MethodHandles.publicLookup:()Ljava/lang/invoke/MethodHandles$Lookup;
            iload 1 /* refKind */
        18: .line 3930
            new java.lang.invoke.MemberName
            dup
            iload 1 /* refKind */
            aload 2 /* defc */
            aload 3 /* member */
            invokevirtual java.lang.invoke.MemberName.getName:()Ljava/lang/String;
            aload 3 /* member */
            invokevirtual java.lang.invoke.MemberName.getType:()Ljava/lang/Object;
            invokespecial java.lang.invoke.MemberName.<init>:(BLjava/lang/Class;Ljava/lang/String;Ljava/lang/Object;)V
        19: .line 3929
            invokevirtual java.lang.invoke.MethodHandles$Lookup.resolveOrNull:(BLjava/lang/invoke/MemberName;)Ljava/lang/invoke/MemberName;
            astore 5 /* resolved2 */
        start local 5 // java.lang.invoke.MemberName resolved2
        20: .line 3931
            aload 5 /* resolved2 */
            ifnonnull 22
        21: .line 3932
            iconst_0
            ireturn
        22: .line 3934
      StackMap locals: java.lang.invoke.MemberName
      StackMap stack:
            aload 0 /* this */
            aload 2 /* defc */
            aload 5 /* resolved2 */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.checkSecurityManager:(Ljava/lang/Class;Ljava/lang/invoke/MemberName;)V
        end local 5 // java.lang.invoke.MemberName resolved2
        23: .line 3935
            goto 26
      StackMap locals: java.lang.invoke.MethodHandles$Lookup int java.lang.Class java.lang.invoke.MemberName java.lang.ClassLoader
      StackMap stack: java.lang.SecurityException
        24: pop
        25: .line 3936
            iconst_0
            ireturn
        26: .line 3938
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 4 // java.lang.ClassLoader loader
        end local 3 // java.lang.invoke.MemberName member
        end local 2 // java.lang.Class defc
        end local 1 // byte refKind
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   27     0       this  Ljava/lang/invoke/MethodHandles$Lookup;
            0   27     1    refKind  B
            0   27     2       defc  Ljava/lang/Class<*>;
            0   27     3     member  Ljava/lang/invoke/MemberName;
            8   27     4     loader  Ljava/lang/ClassLoader;
           10   17     5       sysl  Ljava/lang/ClassLoader;
           11   17     6      found  Z
           20   23     5  resolved2  Ljava/lang/invoke/MemberName;
      Exception table:
        from    to  target  type
          17    21      24  Class java.lang.SecurityException
          22    23      24  Class java.lang.SecurityException
    Signature: (BLjava/lang/Class<*>;Ljava/lang/invoke/MemberName;)Z
    MethodParameters:
         Name  Flags
      refKind  
      defc     
      member   

  private java.lang.invoke.MethodHandle getDirectMethodForConstant(byte, java.lang.Class<?>, java.lang.invoke.MemberName);
    descriptor: (BLjava/lang/Class;Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // java.lang.invoke.MethodHandles$Lookup this
        start local 1 // byte refKind
        start local 2 // java.lang.Class defc
        start local 3 // java.lang.invoke.MemberName member
         0: .line 3942
            iload 1 /* refKind */
            invokestatic java.lang.invoke.MethodHandleNatives.refKindIsField:(B)Z
            ifeq 2
         1: .line 3943
            aload 0 /* this */
            iload 1 /* refKind */
            aload 2 /* defc */
            aload 3 /* member */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.getDirectFieldNoSecurityManager:(BLjava/lang/Class;Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/MethodHandle;
            areturn
         2: .line 3944
      StackMap locals:
      StackMap stack:
            iload 1 /* refKind */
            invokestatic java.lang.invoke.MethodHandleNatives.refKindIsMethod:(B)Z
            ifeq 4
         3: .line 3945
            aload 0 /* this */
            iload 1 /* refKind */
            aload 2 /* defc */
            aload 3 /* member */
            aload 0 /* this */
            aload 3 /* member */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.findBoundCallerLookup:(Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/MethodHandles$Lookup;
            invokevirtual java.lang.invoke.MethodHandles$Lookup.getDirectMethodNoSecurityManager:(BLjava/lang/Class;Ljava/lang/invoke/MemberName;Ljava/lang/invoke/MethodHandles$Lookup;)Ljava/lang/invoke/MethodHandle;
            areturn
         4: .line 3946
      StackMap locals:
      StackMap stack:
            iload 1 /* refKind */
            bipush 8
            if_icmpne 6
         5: .line 3947
            aload 0 /* this */
            aload 2 /* defc */
            aload 3 /* member */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.getDirectConstructorNoSecurityManager:(Ljava/lang/Class;Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/MethodHandle;
            areturn
         6: .line 3950
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "bad MethodHandle constant #"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* member */
            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
        end local 3 // java.lang.invoke.MemberName member
        end local 2 // java.lang.Class defc
        end local 1 // byte refKind
        end local 0 // java.lang.invoke.MethodHandles$Lookup this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Ljava/lang/invoke/MethodHandles$Lookup;
            0    7     1  refKind  B
            0    7     2     defc  Ljava/lang/Class<*>;
            0    7     3   member  Ljava/lang/invoke/MemberName;
    Exceptions:
      throws java.lang.ReflectiveOperationException
    Signature: (BLjava/lang/Class<*>;Ljava/lang/invoke/MemberName;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
         Name  Flags
      refKind  
      defc     
      member   
}
SourceFile: "MethodHandles.java"
NestHost: java.lang.invoke.MethodHandles
InnerClasses:
  Factory = java.lang.invoke.MemberName$Factory of java.lang.invoke.MemberName
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  ClassDefiner = java.lang.invoke.MethodHandles$Lookup$ClassDefiner of java.lang.invoke.MethodHandles$Lookup
  ClassFile = java.lang.invoke.MethodHandles$Lookup$ClassFile of java.lang.invoke.MethodHandles$Lookup
  public final ClassOption = java.lang.invoke.MethodHandles$Lookup$ClassOption of java.lang.invoke.MethodHandles$Lookup
  public final AccessMode = java.lang.invoke.VarHandle$AccessMode of java.lang.invoke.VarHandle