public class jdk.internal.foreign.LayoutPath
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: jdk.internal.foreign.LayoutPath
  super_class: java.lang.Object
{
  private static jdk.internal.access.JavaLangInvokeAccess JLI;
    descriptor: Ljdk/internal/access/JavaLangInvokeAccess;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private final jdk.incubator.foreign.MemoryLayout layout;
    descriptor: Ljdk/incubator/foreign/MemoryLayout;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final long offset;
    descriptor: J
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final jdk.internal.foreign.LayoutPath enclosing;
    descriptor: Ljdk/internal/foreign/LayoutPath;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final long[] strides;
    descriptor: [J
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final long elementIndex;
    descriptor: J
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.function.ToLongFunction<jdk.incubator.foreign.MemoryLayout> sizeFunc;
    descriptor: Ljava/util/function/ToLongFunction;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/function/ToLongFunction<Ljdk/incubator/foreign/MemoryLayout;>;

  private static long[] EMPTY_STRIDES;
    descriptor: [J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 53
            invokestatic jdk.internal.access.SharedSecrets.getJavaLangInvokeAccess:()Ljdk/internal/access/JavaLangInvokeAccess;
            putstatic jdk.internal.foreign.LayoutPath.JLI:Ljdk/internal/access/JavaLangInvokeAccess;
         1: .line 244
            iconst_0
            newarray 11
            putstatic jdk.internal.foreign.LayoutPath.EMPTY_STRIDES:[J
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>(jdk.incubator.foreign.MemoryLayout, long, long[], long, jdk.internal.foreign.LayoutPath, java.util.function.ToLongFunction<jdk.incubator.foreign.MemoryLayout>);
    descriptor: (Ljdk/incubator/foreign/MemoryLayout;J[JJLjdk/internal/foreign/LayoutPath;Ljava/util/function/ToLongFunction;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=9, args_size=7
        start local 0 // jdk.internal.foreign.LayoutPath this
        start local 1 // jdk.incubator.foreign.MemoryLayout layout
        start local 2 // long offset
        start local 4 // long[] strides
        start local 5 // long elementIndex
        start local 7 // jdk.internal.foreign.LayoutPath enclosing
        start local 8 // java.util.function.ToLongFunction sizeFunc
         0: .line 62
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 63
            aload 0 /* this */
            aload 1 /* layout */
            putfield jdk.internal.foreign.LayoutPath.layout:Ljdk/incubator/foreign/MemoryLayout;
         2: .line 64
            aload 0 /* this */
            lload 2 /* offset */
            putfield jdk.internal.foreign.LayoutPath.offset:J
         3: .line 65
            aload 0 /* this */
            aload 4 /* strides */
            putfield jdk.internal.foreign.LayoutPath.strides:[J
         4: .line 66
            aload 0 /* this */
            aload 7 /* enclosing */
            putfield jdk.internal.foreign.LayoutPath.enclosing:Ljdk/internal/foreign/LayoutPath;
         5: .line 67
            aload 0 /* this */
            lload 5 /* elementIndex */
            putfield jdk.internal.foreign.LayoutPath.elementIndex:J
         6: .line 68
            aload 0 /* this */
            aload 8 /* sizeFunc */
            putfield jdk.internal.foreign.LayoutPath.sizeFunc:Ljava/util/function/ToLongFunction;
         7: .line 69
            return
        end local 8 // java.util.function.ToLongFunction sizeFunc
        end local 7 // jdk.internal.foreign.LayoutPath enclosing
        end local 5 // long elementIndex
        end local 4 // long[] strides
        end local 2 // long offset
        end local 1 // jdk.incubator.foreign.MemoryLayout layout
        end local 0 // jdk.internal.foreign.LayoutPath this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    8     0          this  Ljdk/internal/foreign/LayoutPath;
            0    8     1        layout  Ljdk/incubator/foreign/MemoryLayout;
            0    8     2        offset  J
            0    8     4       strides  [J
            0    8     5  elementIndex  J
            0    8     7     enclosing  Ljdk/internal/foreign/LayoutPath;
            0    8     8      sizeFunc  Ljava/util/function/ToLongFunction<Ljdk/incubator/foreign/MemoryLayout;>;
    Signature: (Ljdk/incubator/foreign/MemoryLayout;J[JJLjdk/internal/foreign/LayoutPath;Ljava/util/function/ToLongFunction<Ljdk/incubator/foreign/MemoryLayout;>;)V
    MethodParameters:
              Name  Flags
      layout        
      offset        
      strides       
      elementIndex  
      enclosing     
      sizeFunc      

  public jdk.internal.foreign.LayoutPath sequenceElement();
    descriptor: ()Ljdk/internal/foreign/LayoutPath;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=3, args_size=1
        start local 0 // jdk.internal.foreign.LayoutPath this
         0: .line 74
            aload 0 /* this */
            ldc Ljdk/incubator/foreign/SequenceLayout;
            ldc "attempting to select a sequence element from a non-sequence layout"
            invokevirtual jdk.internal.foreign.LayoutPath.check:(Ljava/lang/Class;Ljava/lang/String;)V
         1: .line 75
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.layout:Ljdk/incubator/foreign/MemoryLayout;
            checkcast jdk.incubator.foreign.SequenceLayout
            astore 1 /* seq */
        start local 1 // jdk.incubator.foreign.SequenceLayout seq
         2: .line 76
            aload 1 /* seq */
            invokevirtual jdk.incubator.foreign.SequenceLayout.elementLayout:()Ljdk/incubator/foreign/MemoryLayout;
            astore 2 /* elem */
        start local 2 // jdk.incubator.foreign.MemoryLayout elem
         3: .line 77
            aload 2 /* elem */
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.offset:J
            aload 0 /* this */
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.sizeFunc:Ljava/util/function/ToLongFunction;
            aload 2 /* elem */
            invokeinterface java.util.function.ToLongFunction.applyAsLong:(Ljava/lang/Object;)J
            invokevirtual jdk.internal.foreign.LayoutPath.addStride:(J)[J
            ldc -1
            aload 0 /* this */
            invokestatic jdk.internal.foreign.LayoutPath.nestedPath:(Ljdk/incubator/foreign/MemoryLayout;J[JJLjdk/internal/foreign/LayoutPath;)Ljdk/internal/foreign/LayoutPath;
            areturn
        end local 2 // jdk.incubator.foreign.MemoryLayout elem
        end local 1 // jdk.incubator.foreign.SequenceLayout seq
        end local 0 // jdk.internal.foreign.LayoutPath this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljdk/internal/foreign/LayoutPath;
            2    4     1   seq  Ljdk/incubator/foreign/SequenceLayout;
            3    4     2  elem  Ljdk/incubator/foreign/MemoryLayout;

  public jdk.internal.foreign.LayoutPath sequenceElement(long, long);
    descriptor: (JJ)Ljdk/internal/foreign/LayoutPath;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=9, args_size=3
        start local 0 // jdk.internal.foreign.LayoutPath this
        start local 1 // long start
        start local 3 // long step
         0: .line 81
            aload 0 /* this */
            ldc Ljdk/incubator/foreign/SequenceLayout;
            ldc "attempting to select a sequence element from a non-sequence layout"
            invokevirtual jdk.internal.foreign.LayoutPath.check:(Ljava/lang/Class;Ljava/lang/String;)V
         1: .line 82
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.layout:Ljdk/incubator/foreign/MemoryLayout;
            checkcast jdk.incubator.foreign.SequenceLayout
            astore 5 /* seq */
        start local 5 // jdk.incubator.foreign.SequenceLayout seq
         2: .line 83
            aload 0 /* this */
            aload 5 /* seq */
            lload 1 /* start */
            invokevirtual jdk.internal.foreign.LayoutPath.checkSequenceBounds:(Ljdk/incubator/foreign/SequenceLayout;J)V
         3: .line 84
            aload 5 /* seq */
            invokevirtual jdk.incubator.foreign.SequenceLayout.elementLayout:()Ljdk/incubator/foreign/MemoryLayout;
            astore 6 /* elem */
        start local 6 // jdk.incubator.foreign.MemoryLayout elem
         4: .line 85
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.sizeFunc:Ljava/util/function/ToLongFunction;
            aload 6 /* elem */
            invokeinterface java.util.function.ToLongFunction.applyAsLong:(Ljava/lang/Object;)J
            lstore 7 /* elemSize */
        start local 7 // long elemSize
         5: .line 86
            aload 6 /* elem */
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.offset:J
            lload 1 /* start */
            lload 7 /* elemSize */
            lmul
            ladd
            aload 0 /* this */
            lload 7 /* elemSize */
            lload 3 /* step */
            lmul
            invokevirtual jdk.internal.foreign.LayoutPath.addStride:(J)[J
            ldc -1
            aload 0 /* this */
            invokestatic jdk.internal.foreign.LayoutPath.nestedPath:(Ljdk/incubator/foreign/MemoryLayout;J[JJLjdk/internal/foreign/LayoutPath;)Ljdk/internal/foreign/LayoutPath;
            areturn
        end local 7 // long elemSize
        end local 6 // jdk.incubator.foreign.MemoryLayout elem
        end local 5 // jdk.incubator.foreign.SequenceLayout seq
        end local 3 // long step
        end local 1 // long start
        end local 0 // jdk.internal.foreign.LayoutPath this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Ljdk/internal/foreign/LayoutPath;
            0    6     1     start  J
            0    6     3      step  J
            2    6     5       seq  Ljdk/incubator/foreign/SequenceLayout;
            4    6     6      elem  Ljdk/incubator/foreign/MemoryLayout;
            5    6     7  elemSize  J
    MethodParameters:
       Name  Flags
      start  
      step   

  public jdk.internal.foreign.LayoutPath sequenceElement(long);
    descriptor: (J)Ljdk/internal/foreign/LayoutPath;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=8, args_size=2
        start local 0 // jdk.internal.foreign.LayoutPath this
        start local 1 // long index
         0: .line 90
            aload 0 /* this */
            ldc Ljdk/incubator/foreign/SequenceLayout;
            ldc "attempting to select a sequence element from a non-sequence layout"
            invokevirtual jdk.internal.foreign.LayoutPath.check:(Ljava/lang/Class;Ljava/lang/String;)V
         1: .line 91
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.layout:Ljdk/incubator/foreign/MemoryLayout;
            checkcast jdk.incubator.foreign.SequenceLayout
            astore 3 /* seq */
        start local 3 // jdk.incubator.foreign.SequenceLayout seq
         2: .line 92
            aload 0 /* this */
            aload 3 /* seq */
            lload 1 /* index */
            invokevirtual jdk.internal.foreign.LayoutPath.checkSequenceBounds:(Ljdk/incubator/foreign/SequenceLayout;J)V
         3: .line 93
            lconst_0
            lstore 4 /* elemOffset */
        start local 4 // long elemOffset
         4: .line 94
            lload 1 /* index */
            lconst_0
            lcmp
            ifle 7
         5: .line 96
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.sizeFunc:Ljava/util/function/ToLongFunction;
            aload 3 /* seq */
            invokevirtual jdk.incubator.foreign.SequenceLayout.elementLayout:()Ljdk/incubator/foreign/MemoryLayout;
            invokeinterface java.util.function.ToLongFunction.applyAsLong:(Ljava/lang/Object;)J
            lstore 6 /* elemSize */
        start local 6 // long elemSize
         6: .line 97
            lload 6 /* elemSize */
            lload 1 /* index */
            lmul
            lstore 4 /* elemOffset */
        end local 6 // long elemSize
         7: .line 99
      StackMap locals: jdk.incubator.foreign.SequenceLayout long
      StackMap stack:
            aload 3 /* seq */
            invokevirtual jdk.incubator.foreign.SequenceLayout.elementLayout:()Ljdk/incubator/foreign/MemoryLayout;
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.offset:J
            lload 4 /* elemOffset */
            ladd
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.strides:[J
            lload 1 /* index */
            aload 0 /* this */
            invokestatic jdk.internal.foreign.LayoutPath.nestedPath:(Ljdk/incubator/foreign/MemoryLayout;J[JJLjdk/internal/foreign/LayoutPath;)Ljdk/internal/foreign/LayoutPath;
            areturn
        end local 4 // long elemOffset
        end local 3 // jdk.incubator.foreign.SequenceLayout seq
        end local 1 // long index
        end local 0 // jdk.internal.foreign.LayoutPath this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    8     0        this  Ljdk/internal/foreign/LayoutPath;
            0    8     1       index  J
            2    8     3         seq  Ljdk/incubator/foreign/SequenceLayout;
            4    8     4  elemOffset  J
            6    7     6    elemSize  J
    MethodParameters:
       Name  Flags
      index  

  public jdk.internal.foreign.LayoutPath groupElement(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljdk/internal/foreign/LayoutPath;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=9, args_size=2
        start local 0 // jdk.internal.foreign.LayoutPath this
        start local 1 // java.lang.String name
         0: .line 103
            aload 0 /* this */
            ldc Ljdk/incubator/foreign/GroupLayout;
            ldc "attempting to select a group element from a non-group layout"
            invokevirtual jdk.internal.foreign.LayoutPath.check:(Ljava/lang/Class;Ljava/lang/String;)V
         1: .line 104
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.layout:Ljdk/incubator/foreign/MemoryLayout;
            checkcast jdk.incubator.foreign.GroupLayout
            astore 2 /* g */
        start local 2 // jdk.incubator.foreign.GroupLayout g
         2: .line 105
            lconst_0
            lstore 3 /* offset */
        start local 3 // long offset
         3: .line 106
            aconst_null
            astore 5 /* elem */
        start local 5 // jdk.incubator.foreign.MemoryLayout elem
         4: .line 107
            iconst_m1
            istore 6 /* index */
        start local 6 // int index
         5: .line 108
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         6: goto 16
         7: .line 109
      StackMap locals: jdk.internal.foreign.LayoutPath java.lang.String jdk.incubator.foreign.GroupLayout long jdk.incubator.foreign.MemoryLayout int int
      StackMap stack:
            aload 2 /* g */
            invokevirtual jdk.incubator.foreign.GroupLayout.memberLayouts:()Ljava/util/List;
            iload 7 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast jdk.incubator.foreign.MemoryLayout
            astore 8 /* l */
        start local 8 // jdk.incubator.foreign.MemoryLayout l
         8: .line 110
            aload 8 /* l */
            invokeinterface jdk.incubator.foreign.MemoryLayout.name:()Ljava/util/Optional;
            invokevirtual java.util.Optional.isPresent:()Z
            ifeq 13
         9: .line 111
            aload 8 /* l */
            invokeinterface jdk.incubator.foreign.MemoryLayout.name:()Ljava/util/Optional;
            invokevirtual java.util.Optional.get:()Ljava/lang/Object;
            checkcast java.lang.String
            aload 1 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 13
        10: .line 112
            aload 8 /* l */
            astore 5 /* elem */
        11: .line 113
            iload 7 /* i */
            istore 6 /* index */
        12: .line 114
            goto 17
        13: .line 115
      StackMap locals: jdk.incubator.foreign.MemoryLayout
      StackMap stack:
            aload 2 /* g */
            invokevirtual jdk.incubator.foreign.GroupLayout.isStruct:()Z
            ifeq 15
        14: .line 116
            lload 3 /* offset */
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.sizeFunc:Ljava/util/function/ToLongFunction;
            aload 8 /* l */
            invokeinterface java.util.function.ToLongFunction.applyAsLong:(Ljava/lang/Object;)J
            ladd
            lstore 3 /* offset */
        end local 8 // jdk.incubator.foreign.MemoryLayout l
        15: .line 108
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        16: iload 7 /* i */
            aload 2 /* g */
            invokevirtual jdk.incubator.foreign.GroupLayout.memberLayouts:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            if_icmplt 7
        end local 7 // int i
        17: .line 119
      StackMap locals:
      StackMap stack:
            aload 5 /* elem */
            ifnonnull 19
        18: .line 120
            new java.lang.StringBuilder
            dup
            ldc "cannot resolve '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "' in layout "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.layout:Ljdk/incubator/foreign/MemoryLayout;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic jdk.internal.foreign.LayoutPath.badLayoutPath:(Ljava/lang/String;)Ljava/lang/IllegalArgumentException;
            athrow
        19: .line 122
      StackMap locals:
      StackMap stack:
            aload 5 /* elem */
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.offset:J
            lload 3 /* offset */
            ladd
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.strides:[J
            iload 6 /* index */
            i2l
            aload 0 /* this */
            invokestatic jdk.internal.foreign.LayoutPath.nestedPath:(Ljdk/incubator/foreign/MemoryLayout;J[JJLjdk/internal/foreign/LayoutPath;)Ljdk/internal/foreign/LayoutPath;
            areturn
        end local 6 // int index
        end local 5 // jdk.incubator.foreign.MemoryLayout elem
        end local 3 // long offset
        end local 2 // jdk.incubator.foreign.GroupLayout g
        end local 1 // java.lang.String name
        end local 0 // jdk.internal.foreign.LayoutPath this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   20     0    this  Ljdk/internal/foreign/LayoutPath;
            0   20     1    name  Ljava/lang/String;
            2   20     2       g  Ljdk/incubator/foreign/GroupLayout;
            3   20     3  offset  J
            4   20     5    elem  Ljdk/incubator/foreign/MemoryLayout;
            5   20     6   index  I
            6   17     7       i  I
            8   15     8       l  Ljdk/incubator/foreign/MemoryLayout;
    MethodParameters:
      Name  Flags
      name  

  public long offset();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.internal.foreign.LayoutPath this
         0: .line 128
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.offset:J
            lreturn
        end local 0 // jdk.internal.foreign.LayoutPath this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/foreign/LayoutPath;

  public java.lang.invoke.VarHandle dereferenceHandle(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/invoke/VarHandle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=2, args_size=2
        start local 0 // jdk.internal.foreign.LayoutPath this
        start local 1 // java.lang.Class carrier
         0: .line 132
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.layout:Ljdk/incubator/foreign/MemoryLayout;
            instanceof jdk.incubator.foreign.ValueLayout
            ifne 2
         1: .line 133
            ldc "layout path does not select a value layout"
            invokestatic jdk.internal.foreign.LayoutPath.badLayoutPath:(Ljava/lang/String;)Ljava/lang/IllegalArgumentException;
            athrow
         2: .line 136
      StackMap locals:
      StackMap stack:
            aload 1 /* carrier */
            invokevirtual java.lang.Class.isPrimitive:()Z
            ifeq 4
            aload 1 /* carrier */
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            if_acmpeq 4
            aload 1 /* carrier */
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            if_acmpeq 4
         3: .line 137
            aload 1 /* carrier */
            invokestatic sun.invoke.util.Wrapper.forPrimitiveType:(Ljava/lang/Class;)Lsun/invoke/util/Wrapper;
            invokevirtual sun.invoke.util.Wrapper.bitWidth:()I
            i2l
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.layout:Ljdk/incubator/foreign/MemoryLayout;
            invokeinterface jdk.incubator.foreign.MemoryLayout.bitSize:()J
            lcmp
            ifeq 5
         4: .line 138
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Invalid carrier: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* carrier */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ", for layout "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.layout:Ljdk/incubator/foreign/MemoryLayout;
            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
         5: .line 141
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokestatic jdk.internal.foreign.LayoutPath.checkAlignment:(Ljdk/internal/foreign/LayoutPath;)V
         6: .line 143
            getstatic jdk.internal.foreign.LayoutPath.JLI:Ljdk/internal/access/JavaLangInvokeAccess;
         7: .line 144
            aload 1 /* carrier */
         8: .line 145
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.layout:Ljdk/incubator/foreign/MemoryLayout;
            invokeinterface jdk.incubator.foreign.MemoryLayout.byteAlignment:()J
            lconst_1
            lsub
         9: .line 146
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.layout:Ljdk/incubator/foreign/MemoryLayout;
            checkcast jdk.incubator.foreign.ValueLayout
            invokevirtual jdk.incubator.foreign.ValueLayout.order:()Ljava/nio/ByteOrder;
        10: .line 147
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.offset:J
            invokedynamic get()Ljava/util/function/Supplier;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  java/lang/IllegalStateException.<init>()V (8)
                  ()Ljava/lang/RuntimeException;
            invokestatic jdk.internal.foreign.Utils.bitsToBytesOrThrow:(JLjava/util/function/Supplier;)J
        11: .line 148
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.strides:[J
            invokestatic java.util.stream.LongStream.of:([J)Ljava/util/stream/LongStream;
            invokedynamic applyAsLong()Ljava/util/function/LongUnaryOperator;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (J)J
                  jdk/internal/foreign/LayoutPath.lambda$1(J)J (6)
                  (J)J
            invokeinterface java.util.stream.LongStream.map:(Ljava/util/function/LongUnaryOperator;)Ljava/util/stream/LongStream;
            invokeinterface java.util.stream.LongStream.toArray:()[J
        12: .line 143
            invokeinterface jdk.internal.access.JavaLangInvokeAccess.memoryAddressViewVarHandle:(Ljava/lang/Class;JLjava/nio/ByteOrder;J[J)Ljava/lang/invoke/VarHandle;
            areturn
        end local 1 // java.lang.Class carrier
        end local 0 // jdk.internal.foreign.LayoutPath this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   13     0     this  Ljdk/internal/foreign/LayoutPath;
            0   13     1  carrier  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)Ljava/lang/invoke/VarHandle;
    MethodParameters:
         Name  Flags
      carrier  

  public jdk.incubator.foreign.MemoryLayout layout();
    descriptor: ()Ljdk/incubator/foreign/MemoryLayout;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.internal.foreign.LayoutPath this
         0: .line 152
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.layout:Ljdk/incubator/foreign/MemoryLayout;
            areturn
        end local 0 // jdk.internal.foreign.LayoutPath this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/foreign/LayoutPath;

  public jdk.incubator.foreign.MemoryLayout map(java.util.function.UnaryOperator<jdk.incubator.foreign.MemoryLayout>);
    descriptor: (Ljava/util/function/UnaryOperator;)Ljdk/incubator/foreign/MemoryLayout;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // jdk.internal.foreign.LayoutPath this
        start local 1 // java.util.function.UnaryOperator op
         0: .line 156
            aload 1 /* op */
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.layout:Ljdk/incubator/foreign/MemoryLayout;
            invokeinterface java.util.function.UnaryOperator.apply:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast jdk.incubator.foreign.MemoryLayout
            astore 2 /* newLayout */
        start local 2 // jdk.incubator.foreign.MemoryLayout newLayout
         1: .line 157
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.enclosing:Ljdk/internal/foreign/LayoutPath;
            ifnonnull 3
         2: .line 158
            aload 2 /* newLayout */
            areturn
         3: .line 159
      StackMap locals: jdk.incubator.foreign.MemoryLayout
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.enclosing:Ljdk/internal/foreign/LayoutPath;
            getfield jdk.internal.foreign.LayoutPath.layout:Ljdk/incubator/foreign/MemoryLayout;
            instanceof jdk.incubator.foreign.SequenceLayout
            ifeq 8
         4: .line 160
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.enclosing:Ljdk/internal/foreign/LayoutPath;
            getfield jdk.internal.foreign.LayoutPath.layout:Ljdk/incubator/foreign/MemoryLayout;
            checkcast jdk.incubator.foreign.SequenceLayout
            astore 3 /* seq */
        start local 3 // jdk.incubator.foreign.SequenceLayout seq
         5: .line 161
            aload 3 /* seq */
            invokevirtual jdk.incubator.foreign.SequenceLayout.elementCount:()Ljava/util/OptionalLong;
            invokevirtual java.util.OptionalLong.isPresent:()Z
            ifeq 7
         6: .line 162
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.enclosing:Ljdk/internal/foreign/LayoutPath;
            aload 0 /* this */
            aload 3 /* seq */
            aload 2 /* newLayout */
            invokedynamic apply(Ljdk/internal/foreign/LayoutPath;Ljdk/incubator/foreign/SequenceLayout;Ljdk/incubator/foreign/MemoryLayout;)Ljava/util/function/UnaryOperator;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  jdk/internal/foreign/LayoutPath.lambda$3(Ljdk/incubator/foreign/SequenceLayout;Ljdk/incubator/foreign/MemoryLayout;Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/MemoryLayout; (7)
                  (Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/MemoryLayout;
            invokevirtual jdk.internal.foreign.LayoutPath.map:(Ljava/util/function/UnaryOperator;)Ljdk/incubator/foreign/MemoryLayout;
            areturn
         7: .line 164
      StackMap locals: jdk.incubator.foreign.SequenceLayout
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.enclosing:Ljdk/internal/foreign/LayoutPath;
            aload 0 /* this */
            aload 2 /* newLayout */
            invokedynamic apply(Ljdk/internal/foreign/LayoutPath;Ljdk/incubator/foreign/MemoryLayout;)Ljava/util/function/UnaryOperator;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  jdk/internal/foreign/LayoutPath.lambda$4(Ljdk/incubator/foreign/MemoryLayout;Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/MemoryLayout; (7)
                  (Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/MemoryLayout;
            invokevirtual jdk.internal.foreign.LayoutPath.map:(Ljava/util/function/UnaryOperator;)Ljdk/incubator/foreign/MemoryLayout;
            areturn
        end local 3 // jdk.incubator.foreign.SequenceLayout seq
         8: .line 166
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.enclosing:Ljdk/internal/foreign/LayoutPath;
            getfield jdk.internal.foreign.LayoutPath.layout:Ljdk/incubator/foreign/MemoryLayout;
            instanceof jdk.incubator.foreign.GroupLayout
            ifeq 15
         9: .line 167
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.enclosing:Ljdk/internal/foreign/LayoutPath;
            getfield jdk.internal.foreign.LayoutPath.layout:Ljdk/incubator/foreign/MemoryLayout;
            checkcast jdk.incubator.foreign.GroupLayout
            astore 3 /* g */
        start local 3 // jdk.incubator.foreign.GroupLayout g
        10: .line 168
            new java.util.ArrayList
            dup
            aload 3 /* g */
            invokevirtual jdk.incubator.foreign.GroupLayout.memberLayouts:()Ljava/util/List;
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            astore 4 /* newElements */
        start local 4 // java.util.List newElements
        11: .line 170
            aload 4 /* newElements */
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.elementIndex:J
            l2i
            aload 2 /* newLayout */
            invokeinterface java.util.List.set:(ILjava/lang/Object;)Ljava/lang/Object;
            pop
        12: .line 171
            aload 3 /* g */
            invokevirtual jdk.incubator.foreign.GroupLayout.isUnion:()Z
            ifeq 14
        13: .line 172
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.enclosing:Ljdk/internal/foreign/LayoutPath;
            aload 0 /* this */
            aload 4 /* newElements */
            invokedynamic apply(Ljdk/internal/foreign/LayoutPath;Ljava/util/List;)Ljava/util/function/UnaryOperator;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  jdk/internal/foreign/LayoutPath.lambda$5(Ljava/util/List;Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/MemoryLayout; (7)
                  (Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/MemoryLayout;
            invokevirtual jdk.internal.foreign.LayoutPath.map:(Ljava/util/function/UnaryOperator;)Ljdk/incubator/foreign/MemoryLayout;
            areturn
        14: .line 174
      StackMap locals: jdk.incubator.foreign.GroupLayout java.util.List
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.enclosing:Ljdk/internal/foreign/LayoutPath;
            aload 0 /* this */
            aload 4 /* newElements */
            invokedynamic apply(Ljdk/internal/foreign/LayoutPath;Ljava/util/List;)Ljava/util/function/UnaryOperator;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  jdk/internal/foreign/LayoutPath.lambda$6(Ljava/util/List;Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/MemoryLayout; (7)
                  (Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/MemoryLayout;
            invokevirtual jdk.internal.foreign.LayoutPath.map:(Ljava/util/function/UnaryOperator;)Ljdk/incubator/foreign/MemoryLayout;
            areturn
        end local 4 // java.util.List newElements
        end local 3 // jdk.incubator.foreign.GroupLayout g
        15: .line 177
      StackMap locals:
      StackMap stack:
            aload 2 /* newLayout */
            areturn
        end local 2 // jdk.incubator.foreign.MemoryLayout newLayout
        end local 1 // java.util.function.UnaryOperator op
        end local 0 // jdk.internal.foreign.LayoutPath this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   16     0         this  Ljdk/internal/foreign/LayoutPath;
            0   16     1           op  Ljava/util/function/UnaryOperator<Ljdk/incubator/foreign/MemoryLayout;>;
            1   16     2    newLayout  Ljdk/incubator/foreign/MemoryLayout;
            5    8     3          seq  Ljdk/incubator/foreign/SequenceLayout;
           10   15     3            g  Ljdk/incubator/foreign/GroupLayout;
           11   15     4  newElements  Ljava/util/List<Ljdk/incubator/foreign/MemoryLayout;>;
    Signature: (Ljava/util/function/UnaryOperator<Ljdk/incubator/foreign/MemoryLayout;>;)Ljdk/incubator/foreign/MemoryLayout;
    MethodParameters:
      Name  Flags
      op    

  private jdk.incubator.foreign.MemoryLayout dup(jdk.incubator.foreign.MemoryLayout, jdk.incubator.foreign.MemoryLayout);
    descriptor: (Ljdk/incubator/foreign/MemoryLayout;Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/MemoryLayout;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // jdk.internal.foreign.LayoutPath this
        start local 1 // jdk.incubator.foreign.MemoryLayout oldLayout
        start local 2 // jdk.incubator.foreign.MemoryLayout newLayout
         0: .line 182
            aload 2 /* newLayout */
            aload 1 /* oldLayout */
            invokeinterface jdk.incubator.foreign.MemoryLayout.bitAlignment:()J
            invokeinterface jdk.incubator.foreign.MemoryLayout.withBitAlignment:(J)Ljdk/incubator/foreign/MemoryLayout;
            astore 2 /* newLayout */
         1: .line 183
            aload 1 /* oldLayout */
            invokeinterface jdk.incubator.foreign.MemoryLayout.name:()Ljava/util/Optional;
            invokevirtual java.util.Optional.isPresent:()Z
            ifeq 3
         2: .line 184
            aload 2 /* newLayout */
            aload 1 /* oldLayout */
            invokeinterface jdk.incubator.foreign.MemoryLayout.name:()Ljava/util/Optional;
            invokevirtual java.util.Optional.get:()Ljava/lang/Object;
            checkcast java.lang.String
            invokeinterface jdk.incubator.foreign.MemoryLayout.withName:(Ljava/lang/String;)Ljdk/incubator/foreign/MemoryLayout;
            pop
         3: .line 186
      StackMap locals:
      StackMap stack:
            aload 2 /* newLayout */
            areturn
        end local 2 // jdk.incubator.foreign.MemoryLayout newLayout
        end local 1 // jdk.incubator.foreign.MemoryLayout oldLayout
        end local 0 // jdk.internal.foreign.LayoutPath this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Ljdk/internal/foreign/LayoutPath;
            0    4     1  oldLayout  Ljdk/incubator/foreign/MemoryLayout;
            0    4     2  newLayout  Ljdk/incubator/foreign/MemoryLayout;
    MethodParameters:
           Name  Flags
      oldLayout  
      newLayout  

  public static jdk.internal.foreign.LayoutPath rootPath(jdk.incubator.foreign.MemoryLayout, java.util.function.ToLongFunction<jdk.incubator.foreign.MemoryLayout>);
    descriptor: (Ljdk/incubator/foreign/MemoryLayout;Ljava/util/function/ToLongFunction;)Ljdk/internal/foreign/LayoutPath;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=10, locals=2, args_size=2
        start local 0 // jdk.incubator.foreign.MemoryLayout layout
        start local 1 // java.util.function.ToLongFunction sizeFunc
         0: .line 192
            new jdk.internal.foreign.LayoutPath
            dup
            aload 0 /* layout */
            lconst_0
            getstatic jdk.internal.foreign.LayoutPath.EMPTY_STRIDES:[J
            ldc -1
            aconst_null
            aload 1 /* sizeFunc */
            invokespecial jdk.internal.foreign.LayoutPath.<init>:(Ljdk/incubator/foreign/MemoryLayout;J[JJLjdk/internal/foreign/LayoutPath;Ljava/util/function/ToLongFunction;)V
            areturn
        end local 1 // java.util.function.ToLongFunction sizeFunc
        end local 0 // jdk.incubator.foreign.MemoryLayout layout
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0    layout  Ljdk/incubator/foreign/MemoryLayout;
            0    1     1  sizeFunc  Ljava/util/function/ToLongFunction<Ljdk/incubator/foreign/MemoryLayout;>;
    Signature: (Ljdk/incubator/foreign/MemoryLayout;Ljava/util/function/ToLongFunction<Ljdk/incubator/foreign/MemoryLayout;>;)Ljdk/internal/foreign/LayoutPath;
    MethodParameters:
          Name  Flags
      layout    
      sizeFunc  

  private static jdk.internal.foreign.LayoutPath nestedPath(jdk.incubator.foreign.MemoryLayout, long, long[], long, jdk.internal.foreign.LayoutPath);
    descriptor: (Ljdk/incubator/foreign/MemoryLayout;J[JJLjdk/internal/foreign/LayoutPath;)Ljdk/internal/foreign/LayoutPath;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=10, locals=7, args_size=5
        start local 0 // jdk.incubator.foreign.MemoryLayout layout
        start local 1 // long offset
        start local 3 // long[] strides
        start local 4 // long elementIndex
        start local 6 // jdk.internal.foreign.LayoutPath encl
         0: .line 196
            new jdk.internal.foreign.LayoutPath
            dup
            aload 0 /* layout */
            lload 1 /* offset */
            aload 3 /* strides */
            lload 4 /* elementIndex */
            aload 6 /* encl */
            aload 6 /* encl */
            getfield jdk.internal.foreign.LayoutPath.sizeFunc:Ljava/util/function/ToLongFunction;
            invokespecial jdk.internal.foreign.LayoutPath.<init>:(Ljdk/incubator/foreign/MemoryLayout;J[JJLjdk/internal/foreign/LayoutPath;Ljava/util/function/ToLongFunction;)V
            areturn
        end local 6 // jdk.internal.foreign.LayoutPath encl
        end local 4 // long elementIndex
        end local 3 // long[] strides
        end local 1 // long offset
        end local 0 // jdk.incubator.foreign.MemoryLayout layout
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0        layout  Ljdk/incubator/foreign/MemoryLayout;
            0    1     1        offset  J
            0    1     3       strides  [J
            0    1     4  elementIndex  J
            0    1     6          encl  Ljdk/internal/foreign/LayoutPath;
    MethodParameters:
              Name  Flags
      layout        
      offset        
      strides       
      elementIndex  
      encl          

  private void check(java.lang.Class<?>, java.lang.String);
    descriptor: (Ljava/lang/Class;Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // jdk.internal.foreign.LayoutPath this
        start local 1 // java.lang.Class layoutClass
        start local 2 // java.lang.String msg
         0: .line 202
            aload 1 /* layoutClass */
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.layout:Ljdk/incubator/foreign/MemoryLayout;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 2
         1: .line 203
            aload 2 /* msg */
            invokestatic jdk.internal.foreign.LayoutPath.badLayoutPath:(Ljava/lang/String;)Ljava/lang/IllegalArgumentException;
            athrow
         2: .line 205
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String msg
        end local 1 // java.lang.Class layoutClass
        end local 0 // jdk.internal.foreign.LayoutPath this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Ljdk/internal/foreign/LayoutPath;
            0    3     1  layoutClass  Ljava/lang/Class<*>;
            0    3     2          msg  Ljava/lang/String;
    Signature: (Ljava/lang/Class<*>;Ljava/lang/String;)V
    MethodParameters:
             Name  Flags
      layoutClass  
      msg          

  private void checkSequenceBounds(jdk.incubator.foreign.SequenceLayout, long);
    descriptor: (Ljdk/incubator/foreign/SequenceLayout;J)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // jdk.internal.foreign.LayoutPath this
        start local 1 // jdk.incubator.foreign.SequenceLayout seq
        start local 2 // long index
         0: .line 208
            aload 1 /* seq */
            invokevirtual jdk.incubator.foreign.SequenceLayout.elementCount:()Ljava/util/OptionalLong;
            invokevirtual java.util.OptionalLong.isPresent:()Z
            ifeq 2
            lload 2 /* index */
            aload 1 /* seq */
            invokevirtual jdk.incubator.foreign.SequenceLayout.elementCount:()Ljava/util/OptionalLong;
            invokevirtual java.util.OptionalLong.getAsLong:()J
            lcmp
            iflt 2
         1: .line 209
            ldc "Sequence index out of bound; found: %d, size: %d"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            lload 2 /* index */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_1
            aload 1 /* seq */
            invokevirtual jdk.incubator.foreign.SequenceLayout.elementCount:()Ljava/util/OptionalLong;
            invokevirtual java.util.OptionalLong.getAsLong:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokestatic jdk.internal.foreign.LayoutPath.badLayoutPath:(Ljava/lang/String;)Ljava/lang/IllegalArgumentException;
            athrow
         2: .line 211
      StackMap locals:
      StackMap stack:
            return
        end local 2 // long index
        end local 1 // jdk.incubator.foreign.SequenceLayout seq
        end local 0 // jdk.internal.foreign.LayoutPath this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Ljdk/internal/foreign/LayoutPath;
            0    3     1    seq  Ljdk/incubator/foreign/SequenceLayout;
            0    3     2  index  J
    MethodParameters:
       Name  Flags
      seq    
      index  

  private static java.lang.IllegalArgumentException badLayoutPath(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/IllegalArgumentException;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // java.lang.String cause
         0: .line 214
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Bad layout path: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* cause */
            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
            areturn
        end local 0 // java.lang.String cause
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  cause  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      cause  

  private static void checkAlignment(jdk.internal.foreign.LayoutPath);
    descriptor: (Ljdk/internal/foreign/LayoutPath;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=9, args_size=1
        start local 0 // jdk.internal.foreign.LayoutPath path
         0: .line 218
            aload 0 /* path */
            getfield jdk.internal.foreign.LayoutPath.layout:Ljdk/incubator/foreign/MemoryLayout;
            astore 1 /* layout */
        start local 1 // jdk.incubator.foreign.MemoryLayout layout
         1: .line 219
            aload 1 /* layout */
            invokeinterface jdk.incubator.foreign.MemoryLayout.bitAlignment:()J
            lstore 2 /* alignment */
        start local 2 // long alignment
         2: .line 220
            aload 0 /* path */
            getfield jdk.internal.foreign.LayoutPath.offset:J
            lload 2 /* alignment */
            lrem
            lconst_0
            lcmp
            ifeq 4
         3: .line 221
            new java.lang.UnsupportedOperationException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Invalid alignment requirements for layout "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* layout */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 223
      StackMap locals: jdk.incubator.foreign.MemoryLayout long
      StackMap stack:
            aload 0 /* path */
            getfield jdk.internal.foreign.LayoutPath.strides:[J
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 9
      StackMap locals: jdk.internal.foreign.LayoutPath jdk.incubator.foreign.MemoryLayout long top top int int long[]
      StackMap stack:
         5: aload 8
            iload 6
            laload
            lstore 4 /* stride */
        start local 4 // long stride
         6: .line 224
            lload 4 /* stride */
            lload 2 /* alignment */
            lrem
            lconst_0
            lcmp
            ifeq 8
         7: .line 225
            new java.lang.UnsupportedOperationException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Alignment requirements for layout "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* layout */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " do not match stride "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            lload 4 /* stride */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // long stride
         8: .line 223
      StackMap locals:
      StackMap stack:
            iinc 6 1
      StackMap locals:
      StackMap stack:
         9: iload 6
            iload 7
            if_icmplt 5
        10: .line 228
            aload 0 /* path */
            getfield jdk.internal.foreign.LayoutPath.enclosing:Ljdk/internal/foreign/LayoutPath;
            astore 4 /* encl */
        start local 4 // jdk.internal.foreign.LayoutPath encl
        11: .line 229
            aload 4 /* encl */
            ifnull 15
        12: .line 230
            aload 4 /* encl */
            getfield jdk.internal.foreign.LayoutPath.layout:Ljdk/incubator/foreign/MemoryLayout;
            invokeinterface jdk.incubator.foreign.MemoryLayout.bitAlignment:()J
            lload 2 /* alignment */
            lcmp
            ifge 14
        13: .line 231
            new java.lang.UnsupportedOperationException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Alignment requirements for layout "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* layout */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " do not match those for enclosing layout "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* encl */
            getfield jdk.internal.foreign.LayoutPath.layout:Ljdk/incubator/foreign/MemoryLayout;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        14: .line 233
      StackMap locals: jdk.internal.foreign.LayoutPath jdk.incubator.foreign.MemoryLayout long jdk.internal.foreign.LayoutPath
      StackMap stack:
            aload 4 /* encl */
            invokestatic jdk.internal.foreign.LayoutPath.checkAlignment:(Ljdk/internal/foreign/LayoutPath;)V
        15: .line 235
      StackMap locals:
      StackMap stack:
            return
        end local 4 // jdk.internal.foreign.LayoutPath encl
        end local 2 // long alignment
        end local 1 // jdk.incubator.foreign.MemoryLayout layout
        end local 0 // jdk.internal.foreign.LayoutPath path
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   16     0       path  Ljdk/internal/foreign/LayoutPath;
            1   16     1     layout  Ljdk/incubator/foreign/MemoryLayout;
            2   16     2  alignment  J
            6    8     4     stride  J
           11   16     4       encl  Ljdk/internal/foreign/LayoutPath;
    MethodParameters:
      Name  Flags
      path  

  private long[] addStride(long);
    descriptor: (J)[J
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // jdk.internal.foreign.LayoutPath this
        start local 1 // long stride
         0: .line 238
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.strides:[J
            arraylength
            iconst_1
            iadd
            newarray 11
            astore 3 /* newStrides */
        start local 3 // long[] newStrides
         1: .line 239
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.strides:[J
            iconst_0
            aload 3 /* newStrides */
            iconst_0
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.strides:[J
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         2: .line 240
            aload 3 /* newStrides */
            aload 0 /* this */
            getfield jdk.internal.foreign.LayoutPath.strides:[J
            arraylength
            lload 1 /* stride */
            lastore
         3: .line 241
            aload 3 /* newStrides */
            areturn
        end local 3 // long[] newStrides
        end local 1 // long stride
        end local 0 // jdk.internal.foreign.LayoutPath this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Ljdk/internal/foreign/LayoutPath;
            0    4     1      stride  J
            1    4     3  newStrides  [J
    MethodParameters:
        Name  Flags
      stride  

  private static long lambda$1(long);
    descriptor: (J)J
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // long s
         0: .line 148
            lload 0 /* s */
            invokedynamic get()Ljava/util/function/Supplier;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  java/lang/IllegalStateException.<init>()V (8)
                  ()Ljava/lang/RuntimeException;
            invokestatic jdk.internal.foreign.Utils.bitsToBytesOrThrow:(JLjava/util/function/Supplier;)J
            lreturn
        end local 0 // long s
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     s  J

  private jdk.incubator.foreign.MemoryLayout lambda$3(jdk.incubator.foreign.SequenceLayout, jdk.incubator.foreign.MemoryLayout, jdk.incubator.foreign.MemoryLayout);
    descriptor: (Ljdk/incubator/foreign/SequenceLayout;Ljdk/incubator/foreign/MemoryLayout;Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/MemoryLayout;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // jdk.internal.foreign.LayoutPath this
        start local 3 // jdk.incubator.foreign.MemoryLayout l
         0: .line 162
            aload 0 /* this */
            aload 3 /* l */
            aload 1
            invokevirtual jdk.incubator.foreign.SequenceLayout.elementCount:()Ljava/util/OptionalLong;
            invokevirtual java.util.OptionalLong.getAsLong:()J
            aload 2
            invokestatic jdk.incubator.foreign.MemoryLayout.ofSequence:(JLjdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/SequenceLayout;
            invokevirtual jdk.internal.foreign.LayoutPath.dup:(Ljdk/incubator/foreign/MemoryLayout;Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/MemoryLayout;
            areturn
        end local 3 // jdk.incubator.foreign.MemoryLayout l
        end local 0 // jdk.internal.foreign.LayoutPath this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/foreign/LayoutPath;
            0    1     3     l  Ljdk/incubator/foreign/MemoryLayout;

  private jdk.incubator.foreign.MemoryLayout lambda$4(jdk.incubator.foreign.MemoryLayout, jdk.incubator.foreign.MemoryLayout);
    descriptor: (Ljdk/incubator/foreign/MemoryLayout;Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/MemoryLayout;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // jdk.internal.foreign.LayoutPath this
        start local 2 // jdk.incubator.foreign.MemoryLayout l
         0: .line 164
            aload 0 /* this */
            aload 2 /* l */
            aload 1
            invokestatic jdk.incubator.foreign.MemoryLayout.ofSequence:(Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/SequenceLayout;
            invokevirtual jdk.internal.foreign.LayoutPath.dup:(Ljdk/incubator/foreign/MemoryLayout;Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/MemoryLayout;
            areturn
        end local 2 // jdk.incubator.foreign.MemoryLayout l
        end local 0 // jdk.internal.foreign.LayoutPath this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/foreign/LayoutPath;
            0    1     2     l  Ljdk/incubator/foreign/MemoryLayout;

  private jdk.incubator.foreign.MemoryLayout lambda$5(java.util.List, jdk.incubator.foreign.MemoryLayout);
    descriptor: (Ljava/util/List;Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/MemoryLayout;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // jdk.internal.foreign.LayoutPath this
        start local 2 // jdk.incubator.foreign.MemoryLayout l
         0: .line 172
            aload 0 /* this */
            aload 2 /* l */
            aload 1
            iconst_0
            anewarray jdk.incubator.foreign.MemoryLayout
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast jdk.incubator.foreign.MemoryLayout[]
            invokestatic jdk.incubator.foreign.MemoryLayout.ofUnion:([Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/GroupLayout;
            invokevirtual jdk.internal.foreign.LayoutPath.dup:(Ljdk/incubator/foreign/MemoryLayout;Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/MemoryLayout;
            areturn
        end local 2 // jdk.incubator.foreign.MemoryLayout l
        end local 0 // jdk.internal.foreign.LayoutPath this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/foreign/LayoutPath;
            0    1     2     l  Ljdk/incubator/foreign/MemoryLayout;

  private jdk.incubator.foreign.MemoryLayout lambda$6(java.util.List, jdk.incubator.foreign.MemoryLayout);
    descriptor: (Ljava/util/List;Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/MemoryLayout;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // jdk.internal.foreign.LayoutPath this
        start local 2 // jdk.incubator.foreign.MemoryLayout l
         0: .line 174
            aload 0 /* this */
            aload 2 /* l */
            aload 1
            iconst_0
            anewarray jdk.incubator.foreign.MemoryLayout
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast jdk.incubator.foreign.MemoryLayout[]
            invokestatic jdk.incubator.foreign.MemoryLayout.ofStruct:([Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/GroupLayout;
            invokevirtual jdk.internal.foreign.LayoutPath.dup:(Ljdk/incubator/foreign/MemoryLayout;Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/MemoryLayout;
            areturn
        end local 2 // jdk.incubator.foreign.MemoryLayout l
        end local 0 // jdk.internal.foreign.LayoutPath this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/foreign/LayoutPath;
            0    1     2     l  Ljdk/incubator/foreign/MemoryLayout;
}
SourceFile: "LayoutPath.java"
NestMembers:
  jdk.internal.foreign.LayoutPath$PathElementImpl  jdk.internal.foreign.LayoutPath$PathElementImpl$PathKind
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public PathElementImpl = jdk.internal.foreign.LayoutPath$PathElementImpl of jdk.internal.foreign.LayoutPath