public abstract class org.h2.mvstore.Page implements java.lang.Cloneable
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.h2.mvstore.Page
  super_class: java.lang.Object
{
  public final org.h2.mvstore.MVMap<?, ?> map;
    descriptor: Lorg/h2/mvstore/MVMap;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Signature: Lorg/h2/mvstore/MVMap<**>;

  private long pos;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private int cachedCompare;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int memory;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int diskSpaceUsed;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private java.lang.Object[] keys;
    descriptor: [Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE

  private volatile boolean removedInMemory;
    descriptor: Z
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  static final int PAGE_MEMORY_CHILD;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 24

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

  static final int PAGE_NODE_MEMORY;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 121

  static final int PAGE_LEAF_MEMORY;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 113

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

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

  private static final org.h2.mvstore.Page$PageReference[] SINGLE_EMPTY;
    descriptor: [Lorg/h2/mvstore/Page$PageReference;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 42
            ldc Lorg/h2/mvstore/Page;
            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 org.h2.mvstore.Page.$assertionsDisabled:Z
         3: .line 115
            iconst_0
            anewarray java.lang.Object
            putstatic org.h2.mvstore.Page.EMPTY_OBJECT_ARRAY:[Ljava/lang/Object;
         4: .line 122
            iconst_1
            anewarray org.h2.mvstore.Page$PageReference
            dup
            iconst_0
            getstatic org.h2.mvstore.Page$PageReference.EMPTY:Lorg/h2/mvstore/Page$PageReference;
            aastore
            putstatic org.h2.mvstore.Page.SINGLE_EMPTY:[Lorg/h2/mvstore/Page$PageReference;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(org.h2.mvstore.MVMap<?, ?>);
    descriptor: (Lorg/h2/mvstore/MVMap;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.h2.mvstore.Page this
        start local 1 // org.h2.mvstore.MVMap map
         0: .line 125
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 126
            aload 0 /* this */
            aload 1 /* map */
            putfield org.h2.mvstore.Page.map:Lorg/h2/mvstore/MVMap;
         2: .line 127
            return
        end local 1 // org.h2.mvstore.MVMap map
        end local 0 // org.h2.mvstore.Page this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/h2/mvstore/Page;
            0    3     1   map  Lorg/h2/mvstore/MVMap<**>;
    Signature: (Lorg/h2/mvstore/MVMap<**>;)V
    MethodParameters:
      Name  Flags
      map   

  void <init>(org.h2.mvstore.MVMap<?, ?>, org.h2.mvstore.Page);
    descriptor: (Lorg/h2/mvstore/MVMap;Lorg/h2/mvstore/Page;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.h2.mvstore.Page this
        start local 1 // org.h2.mvstore.MVMap map
        start local 2 // org.h2.mvstore.Page source
         0: .line 130
            aload 0 /* this */
            aload 1 /* map */
            aload 2 /* source */
            getfield org.h2.mvstore.Page.keys:[Ljava/lang/Object;
            invokespecial org.h2.mvstore.Page.<init>:(Lorg/h2/mvstore/MVMap;[Ljava/lang/Object;)V
         1: .line 131
            aload 0 /* this */
            aload 2 /* source */
            getfield org.h2.mvstore.Page.memory:I
            putfield org.h2.mvstore.Page.memory:I
         2: .line 132
            return
        end local 2 // org.h2.mvstore.Page source
        end local 1 // org.h2.mvstore.MVMap map
        end local 0 // org.h2.mvstore.Page this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lorg/h2/mvstore/Page;
            0    3     1     map  Lorg/h2/mvstore/MVMap<**>;
            0    3     2  source  Lorg/h2/mvstore/Page;
    Signature: (Lorg/h2/mvstore/MVMap<**>;Lorg/h2/mvstore/Page;)V
    MethodParameters:
        Name  Flags
      map     
      source  

  void <init>(org.h2.mvstore.MVMap<?, ?>, []);
    descriptor: (Lorg/h2/mvstore/MVMap;[Ljava/lang/Object;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.h2.mvstore.Page this
        start local 1 // org.h2.mvstore.MVMap map
        start local 2 // java.lang.Object[] keys
         0: .line 134
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 135
            aload 0 /* this */
            aload 1 /* map */
            putfield org.h2.mvstore.Page.map:Lorg/h2/mvstore/MVMap;
         2: .line 136
            aload 0 /* this */
            aload 2 /* keys */
            putfield org.h2.mvstore.Page.keys:[Ljava/lang/Object;
         3: .line 137
            return
        end local 2 // java.lang.Object[] keys
        end local 1 // org.h2.mvstore.MVMap map
        end local 0 // org.h2.mvstore.Page this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/h2/mvstore/Page;
            0    4     1   map  Lorg/h2/mvstore/MVMap<**>;
            0    4     2  keys  [Ljava/lang/Object;
    Signature: (Lorg/h2/mvstore/MVMap<**>;[Ljava/lang/Object;)V
    MethodParameters:
      Name  Flags
      map   
      keys  

  static org.h2.mvstore.Page createEmptyLeaf(org.h2.mvstore.MVMap<?, ?>);
    descriptor: (Lorg/h2/mvstore/MVMap;)Lorg/h2/mvstore/Page;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.h2.mvstore.MVMap map
         0: .line 146
            aload 0 /* map */
            getstatic org.h2.mvstore.Page.EMPTY_OBJECT_ARRAY:[Ljava/lang/Object;
            getstatic org.h2.mvstore.Page.EMPTY_OBJECT_ARRAY:[Ljava/lang/Object;
            bipush 113
            invokestatic org.h2.mvstore.Page.createLeaf:(Lorg/h2/mvstore/MVMap;[Ljava/lang/Object;[Ljava/lang/Object;I)Lorg/h2/mvstore/Page;
            areturn
        end local 0 // org.h2.mvstore.MVMap map
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   map  Lorg/h2/mvstore/MVMap<**>;
    Signature: (Lorg/h2/mvstore/MVMap<**>;)Lorg/h2/mvstore/Page;
    MethodParameters:
      Name  Flags
      map   

  static org.h2.mvstore.Page createEmptyNode(org.h2.mvstore.MVMap<?, ?>);
    descriptor: (Lorg/h2/mvstore/MVMap;)Lorg/h2/mvstore/Page;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // org.h2.mvstore.MVMap map
         0: .line 156
            aload 0 /* map */
            getstatic org.h2.mvstore.Page.EMPTY_OBJECT_ARRAY:[Ljava/lang/Object;
            getstatic org.h2.mvstore.Page.SINGLE_EMPTY:[Lorg/h2/mvstore/Page$PageReference;
            lconst_0
         1: .line 157
            sipush 153
         2: .line 156
            invokestatic org.h2.mvstore.Page.createNode:(Lorg/h2/mvstore/MVMap;[Ljava/lang/Object;[Lorg/h2/mvstore/Page$PageReference;JI)Lorg/h2/mvstore/Page;
            areturn
        end local 0 // org.h2.mvstore.MVMap map
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0   map  Lorg/h2/mvstore/MVMap<**>;
    Signature: (Lorg/h2/mvstore/MVMap<**>;)Lorg/h2/mvstore/Page;
    MethodParameters:
      Name  Flags
      map   

  public static org.h2.mvstore.Page createNode(org.h2.mvstore.MVMap<?, ?>, [], org.h2.mvstore.Page$PageReference[], long, int);
    descriptor: (Lorg/h2/mvstore/MVMap;[Ljava/lang/Object;[Lorg/h2/mvstore/Page$PageReference;JI)Lorg/h2/mvstore/Page;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=7, args_size=5
        start local 0 // org.h2.mvstore.MVMap map
        start local 1 // java.lang.Object[] keys
        start local 2 // org.h2.mvstore.Page$PageReference[] children
        start local 3 // long totalCount
        start local 5 // int memory
         0: .line 172
            getstatic org.h2.mvstore.Page.$assertionsDisabled:Z
            ifne 1
            aload 1 /* keys */
            ifnonnull 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 173
      StackMap locals:
      StackMap stack:
            new org.h2.mvstore.Page$NonLeaf
            dup
            aload 0 /* map */
            aload 1 /* keys */
            aload 2 /* children */
            lload 3 /* totalCount */
            invokespecial org.h2.mvstore.Page$NonLeaf.<init>:(Lorg/h2/mvstore/MVMap;[Ljava/lang/Object;[Lorg/h2/mvstore/Page$PageReference;J)V
            astore 6 /* page */
        start local 6 // org.h2.mvstore.Page page
         2: .line 174
            aload 6 /* page */
            iload 5 /* memory */
            invokevirtual org.h2.mvstore.Page.initMemoryAccount:(I)V
         3: .line 175
            aload 6 /* page */
            areturn
        end local 6 // org.h2.mvstore.Page page
        end local 5 // int memory
        end local 3 // long totalCount
        end local 2 // org.h2.mvstore.Page$PageReference[] children
        end local 1 // java.lang.Object[] keys
        end local 0 // org.h2.mvstore.MVMap map
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0         map  Lorg/h2/mvstore/MVMap<**>;
            0    4     1        keys  [Ljava/lang/Object;
            0    4     2    children  [Lorg/h2/mvstore/Page$PageReference;
            0    4     3  totalCount  J
            0    4     5      memory  I
            2    4     6        page  Lorg/h2/mvstore/Page;
    Signature: (Lorg/h2/mvstore/MVMap<**>;[Ljava/lang/Object;[Lorg/h2/mvstore/Page$PageReference;JI)Lorg/h2/mvstore/Page;
    MethodParameters:
            Name  Flags
      map         
      keys        
      children    
      totalCount  
      memory      

  public static org.h2.mvstore.Page createLeaf(org.h2.mvstore.MVMap<?, ?>, [], [], int);
    descriptor: (Lorg/h2/mvstore/MVMap;[Ljava/lang/Object;[Ljava/lang/Object;I)Lorg/h2/mvstore/Page;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // org.h2.mvstore.MVMap map
        start local 1 // java.lang.Object[] keys
        start local 2 // java.lang.Object[] values
        start local 3 // int memory
         0: .line 188
            getstatic org.h2.mvstore.Page.$assertionsDisabled:Z
            ifne 1
            aload 1 /* keys */
            ifnonnull 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 189
      StackMap locals:
      StackMap stack:
            new org.h2.mvstore.Page$Leaf
            dup
            aload 0 /* map */
            aload 1 /* keys */
            aload 2 /* values */
            invokespecial org.h2.mvstore.Page$Leaf.<init>:(Lorg/h2/mvstore/MVMap;[Ljava/lang/Object;[Ljava/lang/Object;)V
            astore 4 /* page */
        start local 4 // org.h2.mvstore.Page page
         2: .line 190
            aload 4 /* page */
            iload 3 /* memory */
            invokevirtual org.h2.mvstore.Page.initMemoryAccount:(I)V
         3: .line 191
            aload 4 /* page */
            areturn
        end local 4 // org.h2.mvstore.Page page
        end local 3 // int memory
        end local 2 // java.lang.Object[] values
        end local 1 // java.lang.Object[] keys
        end local 0 // org.h2.mvstore.MVMap map
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0     map  Lorg/h2/mvstore/MVMap<**>;
            0    4     1    keys  [Ljava/lang/Object;
            0    4     2  values  [Ljava/lang/Object;
            0    4     3  memory  I
            2    4     4    page  Lorg/h2/mvstore/Page;
    Signature: (Lorg/h2/mvstore/MVMap<**>;[Ljava/lang/Object;[Ljava/lang/Object;I)Lorg/h2/mvstore/Page;
    MethodParameters:
        Name  Flags
      map     
      keys    
      values  
      memory  

  private void initMemoryAccount(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.h2.mvstore.Page this
        start local 1 // int memoryCount
         0: .line 195
            aload 0 /* this */
            getfield org.h2.mvstore.Page.map:Lorg/h2/mvstore/MVMap;
            getfield org.h2.mvstore.MVMap.store:Lorg/h2/mvstore/MVStore;
            invokevirtual org.h2.mvstore.MVStore.getFileStore:()Lorg/h2/mvstore/FileStore;
            ifnonnull 3
         1: .line 196
            aload 0 /* this */
            ldc -2147483648
            putfield org.h2.mvstore.Page.memory:I
         2: .line 197
            goto 8
      StackMap locals:
      StackMap stack:
         3: iload 1 /* memoryCount */
            ifne 6
         4: .line 198
            aload 0 /* this */
            invokevirtual org.h2.mvstore.Page.recalculateMemory:()V
         5: .line 199
            goto 8
         6: .line 200
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* memoryCount */
            invokevirtual org.h2.mvstore.Page.addMemory:(I)V
         7: .line 201
            getstatic org.h2.mvstore.Page.$assertionsDisabled:Z
            ifne 8
            iload 1 /* memoryCount */
            aload 0 /* this */
            invokevirtual org.h2.mvstore.Page.getMemory:()I
            if_icmpeq 8
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         8: .line 203
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int memoryCount
        end local 0 // org.h2.mvstore.Page this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    9     0         this  Lorg/h2/mvstore/Page;
            0    9     1  memoryCount  I
    MethodParameters:
             Name  Flags
      memoryCount  

  static java.lang.Object get(org.h2.mvstore.Page, java.lang.Object);
    descriptor: (Lorg/h2/mvstore/Page;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.h2.mvstore.Page p
        start local 1 // java.lang.Object key
         0: .line 215
      StackMap locals:
      StackMap stack:
            aload 0 /* p */
            aload 1 /* key */
            invokevirtual org.h2.mvstore.Page.binarySearch:(Ljava/lang/Object;)I
            istore 2 /* index */
        start local 2 // int index
         1: .line 216
            aload 0 /* p */
            invokevirtual org.h2.mvstore.Page.isLeaf:()Z
            ifeq 5
         2: .line 217
            iload 2 /* index */
            iflt 3
            aload 0 /* p */
            iload 2 /* index */
            invokevirtual org.h2.mvstore.Page.getValue:(I)Ljava/lang/Object;
            goto 4
      StackMap locals: int
      StackMap stack:
         3: aconst_null
      StackMap locals:
      StackMap stack: java.lang.Object
         4: areturn
         5: .line 218
      StackMap locals:
      StackMap stack:
            iload 2 /* index */
            iinc 2 /* index */ 1
            ifge 7
         6: .line 219
            iload 2 /* index */
            ineg
            istore 2 /* index */
         7: .line 221
      StackMap locals:
      StackMap stack:
            aload 0 /* p */
            iload 2 /* index */
            invokevirtual org.h2.mvstore.Page.getChildPage:(I)Lorg/h2/mvstore/Page;
            astore 0 /* p */
        end local 2 // int index
         8: .line 214
            goto 0
        end local 1 // java.lang.Object key
        end local 0 // org.h2.mvstore.Page p
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    9     0      p  Lorg/h2/mvstore/Page;
            0    9     1    key  Ljava/lang/Object;
            1    8     2  index  I
    MethodParameters:
      Name  Flags
      p     
      key   

  static org.h2.mvstore.Page read(java.nio.ByteBuffer, long, org.h2.mvstore.MVMap<?, ?>);
    descriptor: (Ljava/nio/ByteBuffer;JLorg/h2/mvstore/MVMap;)Lorg/h2/mvstore/Page;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=7, args_size=3
        start local 0 // java.nio.ByteBuffer buff
        start local 1 // long pos
        start local 3 // org.h2.mvstore.MVMap map
         0: .line 234
            lload 1 /* pos */
            invokestatic org.h2.mvstore.DataUtils.getPageType:(J)I
            iconst_1
            iand
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: istore 4 /* leaf */
        start local 4 // boolean leaf
         3: .line 235
            iload 4 /* leaf */
            ifeq 4
            new org.h2.mvstore.Page$Leaf
            dup
            aload 3 /* map */
            invokespecial org.h2.mvstore.Page$Leaf.<init>:(Lorg/h2/mvstore/MVMap;)V
            goto 5
      StackMap locals: int
      StackMap stack:
         4: new org.h2.mvstore.Page$NonLeaf
            dup
            aload 3 /* map */
            invokespecial org.h2.mvstore.Page$NonLeaf.<init>:(Lorg/h2/mvstore/MVMap;)V
      StackMap locals:
      StackMap stack: org.h2.mvstore.Page
         5: astore 5 /* p */
        start local 5 // org.h2.mvstore.Page p
         6: .line 236
            aload 5 /* p */
            lload 1 /* pos */
            putfield org.h2.mvstore.Page.pos:J
         7: .line 237
            lload 1 /* pos */
            invokestatic org.h2.mvstore.DataUtils.getPageChunkId:(J)I
            istore 6 /* chunkId */
        start local 6 // int chunkId
         8: .line 238
            aload 5 /* p */
            aload 0 /* buff */
            iload 6 /* chunkId */
            invokevirtual org.h2.mvstore.Page.read:(Ljava/nio/ByteBuffer;I)V
         9: .line 239
            aload 5 /* p */
            areturn
        end local 6 // int chunkId
        end local 5 // org.h2.mvstore.Page p
        end local 4 // boolean leaf
        end local 3 // org.h2.mvstore.MVMap map
        end local 1 // long pos
        end local 0 // java.nio.ByteBuffer buff
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0     buff  Ljava/nio/ByteBuffer;
            0   10     1      pos  J
            0   10     3      map  Lorg/h2/mvstore/MVMap<**>;
            3   10     4     leaf  Z
            6   10     5        p  Lorg/h2/mvstore/Page;
            8   10     6  chunkId  I
    Signature: (Ljava/nio/ByteBuffer;JLorg/h2/mvstore/MVMap<**>;)Lorg/h2/mvstore/Page;
    MethodParameters:
      Name  Flags
      buff  
      pos   
      map   

  static void readChildrenPositions(java.nio.ByteBuffer, long, org.h2.mvstore.MVStore$ChunkIdsCollector, java.util.concurrent.ThreadPoolExecutor, java.util.concurrent.atomic.AtomicInteger);
    descriptor: (Ljava/nio/ByteBuffer;JLorg/h2/mvstore/MVStore$ChunkIdsCollector;Ljava/util/concurrent/ThreadPoolExecutor;Ljava/util/concurrent/atomic/AtomicInteger;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=8, locals=14, args_size=5
        start local 0 // java.nio.ByteBuffer buff
        start local 1 // long pos
        start local 3 // org.h2.mvstore.MVStore$ChunkIdsCollector collector
        start local 4 // java.util.concurrent.ThreadPoolExecutor executorService
        start local 5 // java.util.concurrent.atomic.AtomicInteger executingThreadCounter
         0: .line 256
            aload 0 /* buff */
            invokestatic org.h2.mvstore.DataUtils.readVarInt:(Ljava/nio/ByteBuffer;)I
            istore 6 /* len */
        start local 6 // int len
         1: .line 257
            aload 0 /* buff */
            invokevirtual java.nio.ByteBuffer.get:()B
            istore 7 /* type */
        start local 7 // int type
         2: .line 258
            iload 7 /* type */
            iconst_1
            iand
            iconst_1
            if_icmpeq 6
         3: .line 259
            bipush 6
         4: .line 260
            ldc "Position {0} expected to be a non-leaf"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            lload 1 /* pos */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
         5: .line 259
            invokestatic org.h2.mvstore.DataUtils.newIllegalStateException:(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalStateException;
            athrow
         6: .line 268
      StackMap locals: int int
      StackMap stack:
            new java.util.ArrayList
            dup
            iload 6 /* len */
            iconst_1
            iadd
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 8 /* futures */
        start local 8 // java.util.List futures
         7: .line 269
            iconst_0
            istore 9 /* i */
        start local 9 // int i
         8: goto 18
         9: .line 270
      StackMap locals: java.util.List int
      StackMap stack:
            aload 0 /* buff */
            invokevirtual java.nio.ByteBuffer.getLong:()J
            lstore 10 /* childPagePos */
        start local 10 // long childPagePos
        10: .line 272
      StackMap locals: long
      StackMap stack:
            aload 5 /* executingThreadCounter */
            invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
            istore 12 /* counter */
        start local 12 // int counter
        11: .line 273
            iload 12 /* counter */
            aload 4 /* executorService */
            invokevirtual java.util.concurrent.ThreadPoolExecutor.getMaximumPoolSize:()I
            if_icmplt 14
        12: .line 274
            aload 3 /* collector */
            lload 10 /* childPagePos */
            aload 4 /* executorService */
            aload 5 /* executingThreadCounter */
            invokevirtual org.h2.mvstore.MVStore$ChunkIdsCollector.visit:(JLjava/util/concurrent/ThreadPoolExecutor;Ljava/util/concurrent/atomic/AtomicInteger;)V
        13: .line 275
            goto 17
        14: .line 277
      StackMap locals: int
      StackMap stack:
            aload 5 /* executingThreadCounter */
            iload 12 /* counter */
            iload 12 /* counter */
            iconst_1
            iadd
            invokevirtual java.util.concurrent.atomic.AtomicInteger.compareAndSet:(II)Z
            ifeq 10
        15: .line 278
            aload 4 /* executorService */
            new org.h2.mvstore.Page$1
            dup
            aload 5 /* executingThreadCounter */
            aload 3 /* collector */
            lload 10 /* childPagePos */
            aload 4 /* executorService */
            invokespecial org.h2.mvstore.Page$1.<init>:(Ljava/util/concurrent/atomic/AtomicInteger;Lorg/h2/mvstore/MVStore$ChunkIdsCollector;JLjava/util/concurrent/ThreadPoolExecutor;)V
            invokevirtual java.util.concurrent.ThreadPoolExecutor.submit:(Ljava/lang/Runnable;)Ljava/util/concurrent/Future;
            astore 13 /* f */
        start local 13 // java.util.concurrent.Future f
        16: .line 288
            aload 8 /* futures */
            aload 13 /* f */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 13 // java.util.concurrent.Future f
        end local 12 // int counter
        end local 10 // long childPagePos
        17: .line 269
      StackMap locals:
      StackMap stack:
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        18: iload 9 /* i */
            iload 6 /* len */
            if_icmple 9
        end local 9 // int i
        19: .line 294
            aload 8 /* futures */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 10
            goto 27
      StackMap locals: java.nio.ByteBuffer long org.h2.mvstore.MVStore$ChunkIdsCollector java.util.concurrent.ThreadPoolExecutor java.util.concurrent.atomic.AtomicInteger int int java.util.List top java.util.Iterator
      StackMap stack:
        20: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.concurrent.Future
            astore 9 /* f */
        start local 9 // java.util.concurrent.Future f
        21: .line 296
            aload 9 /* f */
            invokeinterface java.util.concurrent.Future.get:()Ljava/lang/Object;
            pop
        22: .line 297
            goto 27
      StackMap locals: java.nio.ByteBuffer long org.h2.mvstore.MVStore$ChunkIdsCollector java.util.concurrent.ThreadPoolExecutor java.util.concurrent.atomic.AtomicInteger int int java.util.List java.util.concurrent.Future java.util.Iterator
      StackMap stack: java.lang.InterruptedException
        23: astore 11 /* ex */
        start local 11 // java.lang.InterruptedException ex
        24: .line 298
            new java.lang.RuntimeException
            dup
            aload 11 /* ex */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 11 // java.lang.InterruptedException ex
        25: .line 299
      StackMap locals:
      StackMap stack: java.util.concurrent.ExecutionException
            astore 11 /* ex */
        start local 11 // java.util.concurrent.ExecutionException ex
        26: .line 300
            aload 11 /* ex */
            invokestatic org.h2.message.DbException.convert:(Ljava/lang/Throwable;)Lorg/h2/message/DbException;
            athrow
        end local 11 // java.util.concurrent.ExecutionException ex
        end local 9 // java.util.concurrent.Future f
        27: .line 294
      StackMap locals: java.nio.ByteBuffer long org.h2.mvstore.MVStore$ChunkIdsCollector java.util.concurrent.ThreadPoolExecutor java.util.concurrent.atomic.AtomicInteger int int java.util.List top java.util.Iterator
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 20
        28: .line 303
            return
        end local 8 // java.util.List futures
        end local 7 // int type
        end local 6 // int len
        end local 5 // java.util.concurrent.atomic.AtomicInteger executingThreadCounter
        end local 4 // java.util.concurrent.ThreadPoolExecutor executorService
        end local 3 // org.h2.mvstore.MVStore$ChunkIdsCollector collector
        end local 1 // long pos
        end local 0 // java.nio.ByteBuffer buff
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   29     0                    buff  Ljava/nio/ByteBuffer;
            0   29     1                     pos  J
            0   29     3               collector  Lorg/h2/mvstore/MVStore$ChunkIdsCollector;
            0   29     4         executorService  Ljava/util/concurrent/ThreadPoolExecutor;
            0   29     5  executingThreadCounter  Ljava/util/concurrent/atomic/AtomicInteger;
            1   29     6                     len  I
            2   29     7                    type  I
            7   29     8                 futures  Ljava/util/List<Ljava/util/concurrent/Future<*>;>;
            8   19     9                       i  I
           10   17    10            childPagePos  J
           11   17    12                 counter  I
           16   17    13                       f  Ljava/util/concurrent/Future<*>;
           21   27     9                       f  Ljava/util/concurrent/Future<*>;
           24   25    11                      ex  Ljava/lang/InterruptedException;
           26   27    11                      ex  Ljava/util/concurrent/ExecutionException;
      Exception table:
        from    to  target  type
          21    22      23  Class java.lang.InterruptedException
          21    22      25  Class java.util.concurrent.ExecutionException
    MethodParameters:
                        Name  Flags
      buff                    
      pos                     
      collector               final
      executorService         final
      executingThreadCounter  final

  public final int getMapId();
    descriptor: ()I
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.mvstore.Page this
         0: .line 310
            aload 0 /* this */
            getfield org.h2.mvstore.Page.map:Lorg/h2/mvstore/MVMap;
            invokevirtual org.h2.mvstore.MVMap.getId:()I
            ireturn
        end local 0 // org.h2.mvstore.Page this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/mvstore/Page;

  abstract org.h2.mvstore.Page copy(org.h2.mvstore.MVMap<?, ?>);
    descriptor: (Lorg/h2/mvstore/MVMap;)Lorg/h2/mvstore/Page;
    flags: (0x0400) ACC_ABSTRACT
    Signature: (Lorg/h2/mvstore/MVMap<**>;)Lorg/h2/mvstore/Page;
    MethodParameters:
      Name  Flags
      map   

  public java.lang.Object getKey(int);
    descriptor: (I)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.h2.mvstore.Page this
        start local 1 // int index
         0: .line 332
            aload 0 /* this */
            getfield org.h2.mvstore.Page.keys:[Ljava/lang/Object;
            iload 1 /* index */
            aaload
            areturn
        end local 1 // int index
        end local 0 // org.h2.mvstore.Page this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/h2/mvstore/Page;
            0    1     1  index  I
    MethodParameters:
       Name  Flags
      index  

  public abstract org.h2.mvstore.Page getChildPage(int);
    descriptor: (I)Lorg/h2/mvstore/Page;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
       Name  Flags
      index  

  public abstract org.h2.mvstore.Page getChildPageIfLoaded(int);
    descriptor: (I)Lorg/h2/mvstore/Page;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
       Name  Flags
      index  

  public abstract long getChildPagePos(int);
    descriptor: (I)J
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
       Name  Flags
      index  

  public abstract java.lang.Object getValue(int);
    descriptor: (I)Ljava/lang/Object;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
       Name  Flags
      index  

  public final int getKeyCount();
    descriptor: ()I
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.mvstore.Page this
         0: .line 375
            aload 0 /* this */
            getfield org.h2.mvstore.Page.keys:[Ljava/lang/Object;
            arraylength
            ireturn
        end local 0 // org.h2.mvstore.Page this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/mvstore/Page;

  public final boolean isLeaf();
    descriptor: ()Z
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.mvstore.Page this
         0: .line 384
            aload 0 /* this */
            invokevirtual org.h2.mvstore.Page.getNodeType:()I
            ifne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.h2.mvstore.Page this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/h2/mvstore/Page;

  public abstract int getNodeType();
    descriptor: ()I
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public final long getPos();
    descriptor: ()J
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.h2.mvstore.Page this
         0: .line 395
            aload 0 /* this */
            getfield org.h2.mvstore.Page.pos:J
            lreturn
        end local 0 // org.h2.mvstore.Page this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/mvstore/Page;

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.h2.mvstore.Page this
         0: .line 400
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 1 /* buff */
        start local 1 // java.lang.StringBuilder buff
         1: .line 401
            aload 0 /* this */
            aload 1 /* buff */
            invokevirtual org.h2.mvstore.Page.dump:(Ljava/lang/StringBuilder;)V
         2: .line 402
            aload 1 /* buff */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuilder buff
        end local 0 // org.h2.mvstore.Page this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/h2/mvstore/Page;
            1    3     1  buff  Ljava/lang/StringBuilder;

  protected void dump(java.lang.StringBuilder);
    descriptor: (Ljava/lang/StringBuilder;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.h2.mvstore.Page this
        start local 1 // java.lang.StringBuilder buff
         0: .line 411
            aload 1 /* buff */
            ldc "id: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokestatic java.lang.System.identityHashCode:(Ljava/lang/Object;)I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            bipush 10
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         1: .line 412
            aload 1 /* buff */
            ldc "pos: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.h2.mvstore.Page.pos:J
            invokestatic java.lang.Long.toHexString:(J)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 10
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         2: .line 413
            aload 0 /* this */
            invokevirtual org.h2.mvstore.Page.isSaved:()Z
            ifeq 5
         3: .line 414
            aload 0 /* this */
            getfield org.h2.mvstore.Page.pos:J
            invokestatic org.h2.mvstore.DataUtils.getPageChunkId:(J)I
            istore 2 /* chunkId */
        start local 2 // int chunkId
         4: .line 415
            aload 1 /* buff */
            ldc "chunk: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 2 /* chunkId */
            i2l
            invokestatic java.lang.Long.toHexString:(J)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 10
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        end local 2 // int chunkId
         5: .line 417
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.StringBuilder buff
        end local 0 // org.h2.mvstore.Page this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lorg/h2/mvstore/Page;
            0    6     1     buff  Ljava/lang/StringBuilder;
            4    5     2  chunkId  I
    MethodParameters:
      Name  Flags
      buff  

  public final org.h2.mvstore.Page copy();
    descriptor: ()Lorg/h2/mvstore/Page;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.h2.mvstore.Page this
         0: .line 425
            aload 0 /* this */
            iconst_0
            invokevirtual org.h2.mvstore.Page.copy:(Z)Lorg/h2/mvstore/Page;
            areturn
        end local 0 // org.h2.mvstore.Page this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/mvstore/Page;

  public final org.h2.mvstore.Page copy(boolean);
    descriptor: (Z)Lorg/h2/mvstore/Page;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.h2.mvstore.Page this
        start local 1 // boolean countRemoval
         0: .line 436
            aload 0 /* this */
            invokevirtual org.h2.mvstore.Page.clone:()Lorg/h2/mvstore/Page;
            astore 2 /* newPage */
        start local 2 // org.h2.mvstore.Page newPage
         1: .line 437
            aload 2 /* newPage */
            lconst_0
            putfield org.h2.mvstore.Page.pos:J
         2: .line 439
            iload 1 /* countRemoval */
            ifeq 6
         3: .line 440
            aload 0 /* this */
            invokevirtual org.h2.mvstore.Page.removePage:()V
         4: .line 441
            aload 0 /* this */
            invokevirtual org.h2.mvstore.Page.isPersistent:()Z
            ifeq 6
         5: .line 442
            aload 0 /* this */
            getfield org.h2.mvstore.Page.map:Lorg/h2/mvstore/MVMap;
            getfield org.h2.mvstore.MVMap.store:Lorg/h2/mvstore/MVStore;
            aload 2 /* newPage */
            invokevirtual org.h2.mvstore.Page.getMemory:()I
            invokevirtual org.h2.mvstore.MVStore.registerUnsavedPage:(I)V
         6: .line 445
      StackMap locals: org.h2.mvstore.Page
      StackMap stack:
            aload 2 /* newPage */
            areturn
        end local 2 // org.h2.mvstore.Page newPage
        end local 1 // boolean countRemoval
        end local 0 // org.h2.mvstore.Page this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    7     0          this  Lorg/h2/mvstore/Page;
            0    7     1  countRemoval  Z
            1    7     2       newPage  Lorg/h2/mvstore/Page;
    MethodParameters:
              Name  Flags
      countRemoval  

  protected final org.h2.mvstore.Page clone();
    descriptor: ()Lorg/h2/mvstore/Page;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // org.h2.mvstore.Page this
         0: .line 452
            aload 0 /* this */
            invokespecial java.lang.Object.clone:()Ljava/lang/Object;
            checkcast org.h2.mvstore.Page
            astore 1 /* clone */
        start local 1 // org.h2.mvstore.Page clone
         1: .line 453
            goto 4
        end local 1 // org.h2.mvstore.Page clone
      StackMap locals:
      StackMap stack: java.lang.CloneNotSupportedException
         2: astore 2 /* impossible */
        start local 2 // java.lang.CloneNotSupportedException impossible
         3: .line 454
            new java.lang.RuntimeException
            dup
            aload 2 /* impossible */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.lang.CloneNotSupportedException impossible
        start local 1 // org.h2.mvstore.Page clone
         4: .line 456
      StackMap locals: org.h2.mvstore.Page
      StackMap stack:
            aload 1 /* clone */
            areturn
        end local 1 // org.h2.mvstore.Page clone
        end local 0 // org.h2.mvstore.Page this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lorg/h2/mvstore/Page;
            1    2     1       clone  Lorg/h2/mvstore/Page;
            4    5     1       clone  Lorg/h2/mvstore/Page;
            3    4     2  impossible  Ljava/lang/CloneNotSupportedException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.CloneNotSupportedException

  int binarySearch(java.lang.Object);
    descriptor: (Ljava/lang/Object;)I
    flags: (0x0000) 
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // org.h2.mvstore.Page this
        start local 1 // java.lang.Object key
         0: .line 471
            iconst_0
            istore 2 /* low */
        start local 2 // int low
         1: aload 0 /* this */
            invokevirtual org.h2.mvstore.Page.getKeyCount:()I
            iconst_1
            isub
            istore 3 /* high */
        start local 3 // int high
         2: .line 475
            aload 0 /* this */
            getfield org.h2.mvstore.Page.cachedCompare:I
            iconst_1
            isub
            istore 4 /* x */
        start local 4 // int x
         3: .line 476
            iload 4 /* x */
            iflt 4
            iload 4 /* x */
            iload 3 /* high */
            if_icmple 5
         4: .line 477
      StackMap locals: int int int
      StackMap stack:
            iload 3 /* high */
            iconst_1
            iushr
            istore 4 /* x */
         5: .line 479
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.Page.keys:[Ljava/lang/Object;
            astore 5 /* k */
        start local 5 // java.lang.Object[] k
         6: .line 480
            goto 17
         7: .line 481
      StackMap locals: java.lang.Object[]
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.Page.map:Lorg/h2/mvstore/MVMap;
            aload 1 /* key */
            aload 5 /* k */
            iload 4 /* x */
            aaload
            invokevirtual org.h2.mvstore.MVMap.compare:(Ljava/lang/Object;Ljava/lang/Object;)I
            istore 6 /* compare */
        start local 6 // int compare
         8: .line 482
            iload 6 /* compare */
            ifle 11
         9: .line 483
            iload 4 /* x */
            iconst_1
            iadd
            istore 2 /* low */
        10: .line 484
            goto 16
      StackMap locals: int
      StackMap stack:
        11: iload 6 /* compare */
            ifge 14
        12: .line 485
            iload 4 /* x */
            iconst_1
            isub
            istore 3 /* high */
        13: .line 486
            goto 16
        14: .line 487
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 4 /* x */
            iconst_1
            iadd
            putfield org.h2.mvstore.Page.cachedCompare:I
        15: .line 488
            iload 4 /* x */
            ireturn
        16: .line 490
      StackMap locals:
      StackMap stack:
            iload 2 /* low */
            iload 3 /* high */
            iadd
            iconst_1
            iushr
            istore 4 /* x */
        end local 6 // int compare
        17: .line 480
      StackMap locals:
      StackMap stack:
            iload 2 /* low */
            iload 3 /* high */
            if_icmple 7
        18: .line 492
            aload 0 /* this */
            iload 2 /* low */
            putfield org.h2.mvstore.Page.cachedCompare:I
        19: .line 493
            iload 2 /* low */
            iconst_1
            iadd
            ineg
            ireturn
        end local 5 // java.lang.Object[] k
        end local 4 // int x
        end local 3 // int high
        end local 2 // int low
        end local 1 // java.lang.Object key
        end local 0 // org.h2.mvstore.Page this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   20     0     this  Lorg/h2/mvstore/Page;
            0   20     1      key  Ljava/lang/Object;
            1   20     2      low  I
            2   20     3     high  I
            3   20     4        x  I
            6   20     5        k  [Ljava/lang/Object;
            8   17     6  compare  I
    MethodParameters:
      Name  Flags
      key   

  abstract org.h2.mvstore.Page split(int);
    descriptor: (I)Lorg/h2/mvstore/Page;
    flags: (0x0400) ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      at    

  final java.lang.Object[] splitKeys(int, int);
    descriptor: (II)[Ljava/lang/Object;
    flags: (0x0010) ACC_FINAL
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // org.h2.mvstore.Page this
        start local 1 // int aCount
        start local 2 // int bCount
         0: .line 512
            getstatic org.h2.mvstore.Page.$assertionsDisabled:Z
            ifne 1
            iload 1 /* aCount */
            iload 2 /* bCount */
            iadd
            aload 0 /* this */
            invokevirtual org.h2.mvstore.Page.getKeyCount:()I
            if_icmple 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 513
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* aCount */
            invokevirtual org.h2.mvstore.Page.createKeyStorage:(I)[Ljava/lang/Object;
            astore 3 /* aKeys */
        start local 3 // java.lang.Object[] aKeys
         2: .line 514
            aload 0 /* this */
            iload 2 /* bCount */
            invokevirtual org.h2.mvstore.Page.createKeyStorage:(I)[Ljava/lang/Object;
            astore 4 /* bKeys */
        start local 4 // java.lang.Object[] bKeys
         3: .line 515
            aload 0 /* this */
            getfield org.h2.mvstore.Page.keys:[Ljava/lang/Object;
            iconst_0
            aload 3 /* aKeys */
            iconst_0
            iload 1 /* aCount */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         4: .line 516
            aload 0 /* this */
            getfield org.h2.mvstore.Page.keys:[Ljava/lang/Object;
            aload 0 /* this */
            invokevirtual org.h2.mvstore.Page.getKeyCount:()I
            iload 2 /* bCount */
            isub
            aload 4 /* bKeys */
            iconst_0
            iload 2 /* bCount */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         5: .line 517
            aload 0 /* this */
            aload 3 /* aKeys */
            putfield org.h2.mvstore.Page.keys:[Ljava/lang/Object;
         6: .line 518
            aload 4 /* bKeys */
            areturn
        end local 4 // java.lang.Object[] bKeys
        end local 3 // java.lang.Object[] aKeys
        end local 2 // int bCount
        end local 1 // int aCount
        end local 0 // org.h2.mvstore.Page this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lorg/h2/mvstore/Page;
            0    7     1  aCount  I
            0    7     2  bCount  I
            2    7     3   aKeys  [Ljava/lang/Object;
            3    7     4   bKeys  [Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      aCount  
      bCount  

  abstract void expand(int, java.lang.Object[], java.lang.Object[]);
    descriptor: (I[Ljava/lang/Object;[Ljava/lang/Object;)V
    flags: (0x0400) ACC_ABSTRACT
    MethodParameters:
               Name  Flags
      extraKeyCount  
      extraKeys      
      extraValues    

  final void expandKeys(int, java.lang.Object[]);
    descriptor: (I[Ljava/lang/Object;)V
    flags: (0x0010) ACC_FINAL
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // org.h2.mvstore.Page this
        start local 1 // int extraKeyCount
        start local 2 // java.lang.Object[] extraKeys
         0: .line 538
            aload 0 /* this */
            invokevirtual org.h2.mvstore.Page.getKeyCount:()I
            istore 3 /* keyCount */
        start local 3 // int keyCount
         1: .line 539
            aload 0 /* this */
            iload 3 /* keyCount */
            iload 1 /* extraKeyCount */
            iadd
            invokevirtual org.h2.mvstore.Page.createKeyStorage:(I)[Ljava/lang/Object;
            astore 4 /* newKeys */
        start local 4 // java.lang.Object[] newKeys
         2: .line 540
            aload 0 /* this */
            getfield org.h2.mvstore.Page.keys:[Ljava/lang/Object;
            iconst_0
            aload 4 /* newKeys */
            iconst_0
            iload 3 /* keyCount */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         3: .line 541
            aload 2 /* extraKeys */
            iconst_0
            aload 4 /* newKeys */
            iload 3 /* keyCount */
            iload 1 /* extraKeyCount */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         4: .line 542
            aload 0 /* this */
            aload 4 /* newKeys */
            putfield org.h2.mvstore.Page.keys:[Ljava/lang/Object;
         5: .line 543
            return
        end local 4 // java.lang.Object[] newKeys
        end local 3 // int keyCount
        end local 2 // java.lang.Object[] extraKeys
        end local 1 // int extraKeyCount
        end local 0 // org.h2.mvstore.Page this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    6     0           this  Lorg/h2/mvstore/Page;
            0    6     1  extraKeyCount  I
            0    6     2      extraKeys  [Ljava/lang/Object;
            1    6     3       keyCount  I
            2    6     4        newKeys  [Ljava/lang/Object;
    MethodParameters:
               Name  Flags
      extraKeyCount  
      extraKeys      

  public abstract long getTotalCount();
    descriptor: ()J
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  abstract long getCounts(int);
    descriptor: (I)J
    flags: (0x0400) ACC_ABSTRACT
    MethodParameters:
       Name  Flags
      index  

  public abstract void setChild(int, org.h2.mvstore.Page);
    descriptor: (ILorg/h2/mvstore/Page;)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
       Name  Flags
      index  
      c      

  public final void setKey(int, java.lang.Object);
    descriptor: (ILjava/lang/Object;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // org.h2.mvstore.Page this
        start local 1 // int index
        start local 2 // java.lang.Object key
         0: .line 575
            aload 0 /* this */
            aload 0 /* this */
            getfield org.h2.mvstore.Page.keys:[Ljava/lang/Object;
            invokevirtual java.lang.Object[].clone:()Ljava/lang/Object;
            checkcast java.lang.Object[]
            putfield org.h2.mvstore.Page.keys:[Ljava/lang/Object;
         1: .line 576
            aload 0 /* this */
            invokevirtual org.h2.mvstore.Page.isPersistent:()Z
            ifeq 8
         2: .line 577
            aload 0 /* this */
            getfield org.h2.mvstore.Page.keys:[Ljava/lang/Object;
            iload 1 /* index */
            aaload
            astore 3 /* old */
        start local 3 // java.lang.Object old
         3: .line 578
            aload 0 /* this */
            getfield org.h2.mvstore.Page.map:Lorg/h2/mvstore/MVMap;
            invokevirtual org.h2.mvstore.MVMap.getKeyType:()Lorg/h2/mvstore/type/DataType;
            astore 4 /* keyType */
        start local 4 // org.h2.mvstore.type.DataType keyType
         4: .line 579
            aload 4 /* keyType */
            aload 2 /* key */
            invokeinterface org.h2.mvstore.type.DataType.getMemory:(Ljava/lang/Object;)I
            istore 5 /* mem */
        start local 5 // int mem
         5: .line 580
            aload 3 /* old */
            ifnull 7
         6: .line 581
            iload 5 /* mem */
            aload 4 /* keyType */
            aload 3 /* old */
            invokeinterface org.h2.mvstore.type.DataType.getMemory:(Ljava/lang/Object;)I
            isub
            istore 5 /* mem */
         7: .line 583
      StackMap locals: java.lang.Object org.h2.mvstore.type.DataType int
      StackMap stack:
            aload 0 /* this */
            iload 5 /* mem */
            invokevirtual org.h2.mvstore.Page.addMemory:(I)V
        end local 5 // int mem
        end local 4 // org.h2.mvstore.type.DataType keyType
        end local 3 // java.lang.Object old
         8: .line 585
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.Page.keys:[Ljava/lang/Object;
            iload 1 /* index */
            aload 2 /* key */
            aastore
         9: .line 586
            return
        end local 2 // java.lang.Object key
        end local 1 // int index
        end local 0 // org.h2.mvstore.Page this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0     this  Lorg/h2/mvstore/Page;
            0   10     1    index  I
            0   10     2      key  Ljava/lang/Object;
            3    8     3      old  Ljava/lang/Object;
            4    8     4  keyType  Lorg/h2/mvstore/type/DataType;
            5    8     5      mem  I
    MethodParameters:
       Name  Flags
      index  
      key    

  public abstract java.lang.Object setValue(int, java.lang.Object);
    descriptor: (ILjava/lang/Object;)Ljava/lang/Object;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
       Name  Flags
      index  
      value  

  public abstract void insertLeaf(int, java.lang.Object, java.lang.Object);
    descriptor: (ILjava/lang/Object;Ljava/lang/Object;)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
       Name  Flags
      index  
      key    
      value  

  public abstract void insertNode(int, java.lang.Object, org.h2.mvstore.Page);
    descriptor: (ILjava/lang/Object;Lorg/h2/mvstore/Page;)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
           Name  Flags
      index      
      key        
      childPage  

  final void insertKey(int, java.lang.Object);
    descriptor: (ILjava/lang/Object;)V
    flags: (0x0010) ACC_FINAL
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // org.h2.mvstore.Page this
        start local 1 // int index
        start local 2 // java.lang.Object key
         0: .line 622
            aload 0 /* this */
            invokevirtual org.h2.mvstore.Page.getKeyCount:()I
            istore 3 /* keyCount */
        start local 3 // int keyCount
         1: .line 623
            getstatic org.h2.mvstore.Page.$assertionsDisabled:Z
            ifne 2
            iload 1 /* index */
            iload 3 /* keyCount */
            if_icmple 2
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            iload 1 /* index */
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " > "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 3 /* keyCount */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         2: .line 624
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iload 3 /* keyCount */
            iconst_1
            iadd
            invokevirtual org.h2.mvstore.Page.createKeyStorage:(I)[Ljava/lang/Object;
            astore 4 /* newKeys */
        start local 4 // java.lang.Object[] newKeys
         3: .line 625
            aload 0 /* this */
            getfield org.h2.mvstore.Page.keys:[Ljava/lang/Object;
            aload 4 /* newKeys */
            iload 3 /* keyCount */
            iload 1 /* index */
            invokestatic org.h2.mvstore.DataUtils.copyWithGap:(Ljava/lang/Object;Ljava/lang/Object;II)V
         4: .line 626
            aload 0 /* this */
            aload 4 /* newKeys */
            putfield org.h2.mvstore.Page.keys:[Ljava/lang/Object;
         5: .line 628
            aload 0 /* this */
            getfield org.h2.mvstore.Page.keys:[Ljava/lang/Object;
            iload 1 /* index */
            aload 2 /* key */
            aastore
         6: .line 630
            aload 0 /* this */
            invokevirtual org.h2.mvstore.Page.isPersistent:()Z
            ifeq 8
         7: .line 631
            aload 0 /* this */
            bipush 8
            aload 0 /* this */
            getfield org.h2.mvstore.Page.map:Lorg/h2/mvstore/MVMap;
            invokevirtual org.h2.mvstore.MVMap.getKeyType:()Lorg/h2/mvstore/type/DataType;
            aload 2 /* key */
            invokeinterface org.h2.mvstore.type.DataType.getMemory:(Ljava/lang/Object;)I
            iadd
            invokevirtual org.h2.mvstore.Page.addMemory:(I)V
         8: .line 633
      StackMap locals: java.lang.Object[]
      StackMap stack:
            return
        end local 4 // java.lang.Object[] newKeys
        end local 3 // int keyCount
        end local 2 // java.lang.Object key
        end local 1 // int index
        end local 0 // org.h2.mvstore.Page this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0      this  Lorg/h2/mvstore/Page;
            0    9     1     index  I
            0    9     2       key  Ljava/lang/Object;
            1    9     3  keyCount  I
            3    9     4   newKeys  [Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      index  
      key    

  public void remove(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // org.h2.mvstore.Page this
        start local 1 // int index
         0: .line 641
            aload 0 /* this */
            invokevirtual org.h2.mvstore.Page.getKeyCount:()I
            istore 2 /* keyCount */
        start local 2 // int keyCount
         1: .line 642
            aload 0 /* this */
            getfield org.h2.mvstore.Page.map:Lorg/h2/mvstore/MVMap;
            invokevirtual org.h2.mvstore.MVMap.getKeyType:()Lorg/h2/mvstore/type/DataType;
            astore 3 /* keyType */
        start local 3 // org.h2.mvstore.type.DataType keyType
         2: .line 643
            iload 1 /* index */
            iload 2 /* keyCount */
            if_icmpne 4
         3: .line 644
            iinc 1 /* index */ -1
         4: .line 646
      StackMap locals: int org.h2.mvstore.type.DataType
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.h2.mvstore.Page.isPersistent:()Z
            ifeq 7
         5: .line 647
            aload 0 /* this */
            iload 1 /* index */
            invokevirtual org.h2.mvstore.Page.getKey:(I)Ljava/lang/Object;
            astore 4 /* old */
        start local 4 // java.lang.Object old
         6: .line 648
            aload 0 /* this */
            bipush -8
            aload 3 /* keyType */
            aload 4 /* old */
            invokeinterface org.h2.mvstore.type.DataType.getMemory:(Ljava/lang/Object;)I
            isub
            invokevirtual org.h2.mvstore.Page.addMemory:(I)V
        end local 4 // java.lang.Object old
         7: .line 650
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 2 /* keyCount */
            iconst_1
            isub
            invokevirtual org.h2.mvstore.Page.createKeyStorage:(I)[Ljava/lang/Object;
            astore 4 /* newKeys */
        start local 4 // java.lang.Object[] newKeys
         8: .line 651
            aload 0 /* this */
            getfield org.h2.mvstore.Page.keys:[Ljava/lang/Object;
            aload 4 /* newKeys */
            iload 2 /* keyCount */
            iload 1 /* index */
            invokestatic org.h2.mvstore.DataUtils.copyExcept:(Ljava/lang/Object;Ljava/lang/Object;II)V
         9: .line 652
            aload 0 /* this */
            aload 4 /* newKeys */
            putfield org.h2.mvstore.Page.keys:[Ljava/lang/Object;
        10: .line 653
            return
        end local 4 // java.lang.Object[] newKeys
        end local 3 // org.h2.mvstore.type.DataType keyType
        end local 2 // int keyCount
        end local 1 // int index
        end local 0 // org.h2.mvstore.Page this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0      this  Lorg/h2/mvstore/Page;
            0   11     1     index  I
            1   11     2  keyCount  I
            2   11     3   keyType  Lorg/h2/mvstore/type/DataType;
            6    7     4       old  Ljava/lang/Object;
            8   11     4   newKeys  [Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      index  

  private void read(java.nio.ByteBuffer, int);
    descriptor: (Ljava/nio/ByteBuffer;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=12, args_size=3
        start local 0 // org.h2.mvstore.Page this
        start local 1 // java.nio.ByteBuffer buff
        start local 2 // int chunkId
         0: .line 662
            aload 1 /* buff */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            iconst_4
            iadd
            istore 3 /* pageLength */
        start local 3 // int pageLength
         1: .line 663
            aload 1 /* buff */
            invokestatic org.h2.mvstore.DataUtils.readVarInt:(Ljava/nio/ByteBuffer;)I
            istore 4 /* len */
        start local 4 // int len
         2: .line 664
            aload 0 /* this */
            aload 0 /* this */
            iload 4 /* len */
            invokevirtual org.h2.mvstore.Page.createKeyStorage:(I)[Ljava/lang/Object;
            putfield org.h2.mvstore.Page.keys:[Ljava/lang/Object;
         3: .line 665
            aload 1 /* buff */
            invokevirtual java.nio.ByteBuffer.get:()B
            istore 5 /* type */
        start local 5 // int type
         4: .line 666
            aload 0 /* this */
            invokevirtual org.h2.mvstore.Page.isLeaf:()Z
            iload 5 /* type */
            iconst_1
            iand
            ifne 5
            iconst_1
            goto 6
      StackMap locals: org.h2.mvstore.Page java.nio.ByteBuffer int int int int
      StackMap stack: int
         5: iconst_0
      StackMap locals: org.h2.mvstore.Page java.nio.ByteBuffer int int int int
      StackMap stack: int int
         6: if_icmpeq 13
         7: .line 668
            bipush 6
         8: .line 669
            ldc "File corrupted in chunk {0}, expected node type {1}, got {2}"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
         9: .line 670
            iload 2 /* chunkId */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            invokevirtual org.h2.mvstore.Page.isLeaf:()Z
            ifeq 10
            ldc "0"
            goto 11
      StackMap locals: org.h2.mvstore.Page java.nio.ByteBuffer int int int int
      StackMap stack: int java.lang.String java.lang.Object[] java.lang.Object[] int
        10: ldc "1"
      StackMap locals: org.h2.mvstore.Page java.nio.ByteBuffer int int int int
      StackMap stack: int java.lang.String java.lang.Object[] java.lang.Object[] int java.lang.String
        11: aastore
            dup
            iconst_2
            iload 5 /* type */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
        12: .line 667
            invokestatic org.h2.mvstore.DataUtils.newIllegalStateException:(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalStateException;
            athrow
        13: .line 672
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.h2.mvstore.Page.isLeaf:()Z
            ifne 15
        14: .line 673
            aload 0 /* this */
            aload 1 /* buff */
            invokevirtual org.h2.mvstore.Page.readPayLoad:(Ljava/nio/ByteBuffer;)V
        15: .line 675
      StackMap locals:
      StackMap stack:
            iload 5 /* type */
            iconst_2
            iand
            ifeq 16
            iconst_1
            goto 17
      StackMap locals:
      StackMap stack:
        16: iconst_0
      StackMap locals:
      StackMap stack: int
        17: istore 6 /* compressed */
        start local 6 // boolean compressed
        18: .line 676
            iload 6 /* compressed */
            ifeq 34
        19: .line 678
            iload 5 /* type */
            bipush 6
            iand
        20: .line 679
            bipush 6
        21: .line 678
            if_icmpne 24
        22: .line 680
            aload 0 /* this */
            getfield org.h2.mvstore.Page.map:Lorg/h2/mvstore/MVMap;
            invokevirtual org.h2.mvstore.MVMap.getStore:()Lorg/h2/mvstore/MVStore;
            invokevirtual org.h2.mvstore.MVStore.getCompressorHigh:()Lorg/h2/compress/Compressor;
            astore 7 /* compressor */
        start local 7 // org.h2.compress.Compressor compressor
        23: .line 681
            goto 25
        end local 7 // org.h2.compress.Compressor compressor
        24: .line 682
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.Page.map:Lorg/h2/mvstore/MVMap;
            invokevirtual org.h2.mvstore.MVMap.getStore:()Lorg/h2/mvstore/MVStore;
            invokevirtual org.h2.mvstore.MVStore.getCompressorFast:()Lorg/h2/compress/Compressor;
            astore 7 /* compressor */
        start local 7 // org.h2.compress.Compressor compressor
        25: .line 684
      StackMap locals: org.h2.compress.Compressor
      StackMap stack:
            aload 1 /* buff */
            invokestatic org.h2.mvstore.DataUtils.readVarInt:(Ljava/nio/ByteBuffer;)I
            istore 8 /* lenAdd */
        start local 8 // int lenAdd
        26: .line 685
            aload 1 /* buff */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            istore 9 /* compLen */
        start local 9 // int compLen
        27: .line 686
            iload 9 /* compLen */
            invokestatic org.h2.util.Utils.newBytes:(I)[B
            astore 10 /* comp */
        start local 10 // byte[] comp
        28: .line 687
            aload 1 /* buff */
            aload 10 /* comp */
            invokevirtual java.nio.ByteBuffer.get:([B)Ljava/nio/ByteBuffer;
            pop
        29: .line 688
            iload 9 /* compLen */
            iload 8 /* lenAdd */
            iadd
            istore 11 /* l */
        start local 11 // int l
        30: .line 689
            iload 11 /* l */
            invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
            astore 1 /* buff */
        31: .line 690
            aload 7 /* compressor */
            aload 10 /* comp */
            iconst_0
            iload 9 /* compLen */
            aload 1 /* buff */
            invokevirtual java.nio.ByteBuffer.array:()[B
        32: .line 691
            aload 1 /* buff */
            invokevirtual java.nio.ByteBuffer.arrayOffset:()I
            iload 11 /* l */
        33: .line 690
            invokeinterface org.h2.compress.Compressor.expand:([BII[BII)V
        end local 11 // int l
        end local 10 // byte[] comp
        end local 9 // int compLen
        end local 8 // int lenAdd
        end local 7 // org.h2.compress.Compressor compressor
        34: .line 693
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.Page.map:Lorg/h2/mvstore/MVMap;
            invokevirtual org.h2.mvstore.MVMap.getKeyType:()Lorg/h2/mvstore/type/DataType;
            aload 1 /* buff */
            aload 0 /* this */
            getfield org.h2.mvstore.Page.keys:[Ljava/lang/Object;
            iload 4 /* len */
            iconst_1
            invokeinterface org.h2.mvstore.type.DataType.read:(Ljava/nio/ByteBuffer;[Ljava/lang/Object;IZ)V
        35: .line 694
            aload 0 /* this */
            invokevirtual org.h2.mvstore.Page.isLeaf:()Z
            ifeq 37
        36: .line 695
            aload 0 /* this */
            aload 1 /* buff */
            invokevirtual org.h2.mvstore.Page.readPayLoad:(Ljava/nio/ByteBuffer;)V
        37: .line 697
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 3 /* pageLength */
            putfield org.h2.mvstore.Page.diskSpaceUsed:I
        38: .line 698
            aload 0 /* this */
            invokevirtual org.h2.mvstore.Page.recalculateMemory:()V
        39: .line 699
            return
        end local 6 // boolean compressed
        end local 5 // int type
        end local 4 // int len
        end local 3 // int pageLength
        end local 2 // int chunkId
        end local 1 // java.nio.ByteBuffer buff
        end local 0 // org.h2.mvstore.Page this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   40     0        this  Lorg/h2/mvstore/Page;
            0   40     1        buff  Ljava/nio/ByteBuffer;
            0   40     2     chunkId  I
            1   40     3  pageLength  I
            2   40     4         len  I
            4   40     5        type  I
           18   40     6  compressed  Z
           23   24     7  compressor  Lorg/h2/compress/Compressor;
           25   34     7  compressor  Lorg/h2/compress/Compressor;
           26   34     8      lenAdd  I
           27   34     9     compLen  I
           28   34    10        comp  [B
           30   34    11           l  I
    MethodParameters:
         Name  Flags
      buff     
      chunkId  

  protected abstract void readPayLoad(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      buff  

  public final boolean isSaved();
    descriptor: ()Z
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.h2.mvstore.Page this
         0: .line 709
            aload 0 /* this */
            getfield org.h2.mvstore.Page.pos:J
            invokestatic org.h2.mvstore.DataUtils.isPageSaved:(J)Z
            ireturn
        end local 0 // org.h2.mvstore.Page this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/mvstore/Page;

  protected final int write(org.h2.mvstore.Chunk, org.h2.mvstore.WriteBuffer);
    descriptor: (Lorg/h2/mvstore/Chunk;Lorg/h2/mvstore/WriteBuffer;)I
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=5, locals=17, args_size=3
        start local 0 // org.h2.mvstore.Page this
        start local 1 // org.h2.mvstore.Chunk chunk
        start local 2 // org.h2.mvstore.WriteBuffer buff
         0: .line 720
            aload 2 /* buff */
            invokevirtual org.h2.mvstore.WriteBuffer.position:()I
            istore 3 /* start */
        start local 3 // int start
         1: .line 721
            aload 0 /* this */
            invokevirtual org.h2.mvstore.Page.getKeyCount:()I
            istore 4 /* len */
        start local 4 // int len
         2: .line 722
            aload 0 /* this */
            invokevirtual org.h2.mvstore.Page.isLeaf:()Z
            ifeq 3
            iconst_0
            goto 4
      StackMap locals: int int
      StackMap stack:
         3: iconst_1
      StackMap locals:
      StackMap stack: int
         4: istore 5 /* type */
        start local 5 // int type
         5: .line 723
            aload 2 /* buff */
            iconst_0
            invokevirtual org.h2.mvstore.WriteBuffer.putInt:(I)Lorg/h2/mvstore/WriteBuffer;
         6: .line 724
            iconst_0
            invokevirtual org.h2.mvstore.WriteBuffer.putShort:(S)Lorg/h2/mvstore/WriteBuffer;
         7: .line 725
            aload 0 /* this */
            getfield org.h2.mvstore.Page.map:Lorg/h2/mvstore/MVMap;
            invokevirtual org.h2.mvstore.MVMap.getId:()I
            invokevirtual org.h2.mvstore.WriteBuffer.putVarInt:(I)Lorg/h2/mvstore/WriteBuffer;
         8: .line 726
            iload 4 /* len */
            invokevirtual org.h2.mvstore.WriteBuffer.putVarInt:(I)Lorg/h2/mvstore/WriteBuffer;
            pop
         9: .line 727
            aload 2 /* buff */
            invokevirtual org.h2.mvstore.WriteBuffer.position:()I
            istore 6 /* typePos */
        start local 6 // int typePos
        10: .line 728
            aload 2 /* buff */
            iload 5 /* type */
            i2b
            invokevirtual org.h2.mvstore.WriteBuffer.put:(B)Lorg/h2/mvstore/WriteBuffer;
            pop
        11: .line 729
            aload 0 /* this */
            aload 2 /* buff */
            iconst_1
            invokevirtual org.h2.mvstore.Page.writeChildren:(Lorg/h2/mvstore/WriteBuffer;Z)V
        12: .line 730
            aload 2 /* buff */
            invokevirtual org.h2.mvstore.WriteBuffer.position:()I
            istore 7 /* compressStart */
        start local 7 // int compressStart
        13: .line 731
            aload 0 /* this */
            getfield org.h2.mvstore.Page.map:Lorg/h2/mvstore/MVMap;
            invokevirtual org.h2.mvstore.MVMap.getKeyType:()Lorg/h2/mvstore/type/DataType;
            aload 2 /* buff */
            aload 0 /* this */
            getfield org.h2.mvstore.Page.keys:[Ljava/lang/Object;
            iload 4 /* len */
            iconst_1
            invokeinterface org.h2.mvstore.type.DataType.write:(Lorg/h2/mvstore/WriteBuffer;[Ljava/lang/Object;IZ)V
        14: .line 732
            aload 0 /* this */
            aload 2 /* buff */
            invokevirtual org.h2.mvstore.Page.writeValues:(Lorg/h2/mvstore/WriteBuffer;)V
        15: .line 733
            aload 0 /* this */
            getfield org.h2.mvstore.Page.map:Lorg/h2/mvstore/MVMap;
            invokevirtual org.h2.mvstore.MVMap.getStore:()Lorg/h2/mvstore/MVStore;
            astore 8 /* store */
        start local 8 // org.h2.mvstore.MVStore store
        16: .line 734
            aload 2 /* buff */
            invokevirtual org.h2.mvstore.WriteBuffer.position:()I
            iload 7 /* compressStart */
            isub
            istore 9 /* expLen */
        start local 9 // int expLen
        17: .line 735
            iload 9 /* expLen */
            bipush 16
            if_icmple 37
        18: .line 736
            aload 8 /* store */
            invokevirtual org.h2.mvstore.MVStore.getCompressionLevel:()I
            istore 10 /* compressionLevel */
        start local 10 // int compressionLevel
        19: .line 737
            iload 10 /* compressionLevel */
            ifle 37
        20: .line 740
            iload 10 /* compressionLevel */
            iconst_1
            if_icmpne 24
        21: .line 741
            aload 0 /* this */
            getfield org.h2.mvstore.Page.map:Lorg/h2/mvstore/MVMap;
            invokevirtual org.h2.mvstore.MVMap.getStore:()Lorg/h2/mvstore/MVStore;
            invokevirtual org.h2.mvstore.MVStore.getCompressorFast:()Lorg/h2/compress/Compressor;
            astore 11 /* compressor */
        start local 11 // org.h2.compress.Compressor compressor
        22: .line 742
            iconst_2
            istore 12 /* compressType */
        start local 12 // int compressType
        23: .line 743
            goto 26
        end local 12 // int compressType
        end local 11 // org.h2.compress.Compressor compressor
        24: .line 744
      StackMap locals: org.h2.mvstore.Page org.h2.mvstore.Chunk org.h2.mvstore.WriteBuffer int int int int int org.h2.mvstore.MVStore int int
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.Page.map:Lorg/h2/mvstore/MVMap;
            invokevirtual org.h2.mvstore.MVMap.getStore:()Lorg/h2/mvstore/MVStore;
            invokevirtual org.h2.mvstore.MVStore.getCompressorHigh:()Lorg/h2/compress/Compressor;
            astore 11 /* compressor */
        start local 11 // org.h2.compress.Compressor compressor
        25: .line 745
            bipush 6
            istore 12 /* compressType */
        start local 12 // int compressType
        26: .line 747
      StackMap locals: org.h2.compress.Compressor int
      StackMap stack:
            iload 9 /* expLen */
            newarray 8
            astore 13 /* exp */
        start local 13 // byte[] exp
        27: .line 748
            aload 2 /* buff */
            iload 7 /* compressStart */
            invokevirtual org.h2.mvstore.WriteBuffer.position:(I)Lorg/h2/mvstore/WriteBuffer;
            aload 13 /* exp */
            invokevirtual org.h2.mvstore.WriteBuffer.get:([B)Lorg/h2/mvstore/WriteBuffer;
            pop
        28: .line 749
            iload 9 /* expLen */
            iconst_2
            imul
            newarray 8
            astore 14 /* comp */
        start local 14 // byte[] comp
        29: .line 750
            aload 11 /* compressor */
            aload 13 /* exp */
            iload 9 /* expLen */
            aload 14 /* comp */
            iconst_0
            invokeinterface org.h2.compress.Compressor.compress:([BI[BI)I
            istore 15 /* compLen */
        start local 15 // int compLen
        30: .line 751
            iload 15 /* compLen */
            iload 9 /* expLen */
            isub
            invokestatic org.h2.mvstore.DataUtils.getVarIntLen:(I)I
            istore 16 /* plus */
        start local 16 // int plus
        31: .line 752
            iload 15 /* compLen */
            iload 16 /* plus */
            iadd
            iload 9 /* expLen */
            if_icmpge 37
        32: .line 753
            aload 2 /* buff */
            iload 6 /* typePos */
            invokevirtual org.h2.mvstore.WriteBuffer.position:(I)Lorg/h2/mvstore/WriteBuffer;
        33: .line 754
            iload 5 /* type */
            iload 12 /* compressType */
            iadd
            i2b
            invokevirtual org.h2.mvstore.WriteBuffer.put:(B)Lorg/h2/mvstore/WriteBuffer;
            pop
        34: .line 755
            aload 2 /* buff */
            iload 7 /* compressStart */
            invokevirtual org.h2.mvstore.WriteBuffer.position:(I)Lorg/h2/mvstore/WriteBuffer;
        35: .line 756
            iload 9 /* expLen */
            iload 15 /* compLen */
            isub
            invokevirtual org.h2.mvstore.WriteBuffer.putVarInt:(I)Lorg/h2/mvstore/WriteBuffer;
        36: .line 757
            aload 14 /* comp */
            iconst_0
            iload 15 /* compLen */
            invokevirtual org.h2.mvstore.WriteBuffer.put:([BII)Lorg/h2/mvstore/WriteBuffer;
            pop
        end local 16 // int plus
        end local 15 // int compLen
        end local 14 // byte[] comp
        end local 13 // byte[] exp
        end local 12 // int compressType
        end local 11 // org.h2.compress.Compressor compressor
        end local 10 // int compressionLevel
        37: .line 761
      StackMap locals:
      StackMap stack:
            aload 2 /* buff */
            invokevirtual org.h2.mvstore.WriteBuffer.position:()I
            iload 3 /* start */
            isub
            istore 10 /* pageLength */
        start local 10 // int pageLength
        38: .line 762
            aload 1 /* chunk */
            getfield org.h2.mvstore.Chunk.id:I
            istore 11 /* chunkId */
        start local 11 // int chunkId
        39: .line 763
            iload 11 /* chunkId */
            invokestatic org.h2.mvstore.DataUtils.getCheckValue:(I)S
        40: .line 764
            iload 3 /* start */
            invokestatic org.h2.mvstore.DataUtils.getCheckValue:(I)S
        41: .line 763
            ixor
        42: .line 765
            iload 10 /* pageLength */
            invokestatic org.h2.mvstore.DataUtils.getCheckValue:(I)S
        43: .line 763
            ixor
            istore 12 /* check */
        start local 12 // int check
        44: .line 766
            aload 2 /* buff */
            iload 3 /* start */
            iload 10 /* pageLength */
            invokevirtual org.h2.mvstore.WriteBuffer.putInt:(II)Lorg/h2/mvstore/WriteBuffer;
        45: .line 767
            iload 3 /* start */
            iconst_4
            iadd
            iload 12 /* check */
            i2s
            invokevirtual org.h2.mvstore.WriteBuffer.putShort:(IS)Lorg/h2/mvstore/WriteBuffer;
            pop
        46: .line 768
            aload 0 /* this */
            invokevirtual org.h2.mvstore.Page.isSaved:()Z
            ifeq 49
        47: .line 770
            iconst_3
            ldc "Page already stored"
            iconst_0
            anewarray java.lang.Object
        48: .line 769
            invokestatic org.h2.mvstore.DataUtils.newIllegalStateException:(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalStateException;
            athrow
        49: .line 772
      StackMap locals: int int int
      StackMap stack:
            aload 0 /* this */
            iload 11 /* chunkId */
            iload 3 /* start */
            iload 10 /* pageLength */
            iload 5 /* type */
            invokestatic org.h2.mvstore.DataUtils.getPagePos:(IIII)J
            putfield org.h2.mvstore.Page.pos:J
        50: .line 773
            aload 8 /* store */
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.cachePage:(Lorg/h2/mvstore/Page;)V
        51: .line 774
            iload 5 /* type */
            iconst_1
            if_icmpne 53
        52: .line 777
            aload 8 /* store */
            aload 0 /* this */
            invokevirtual org.h2.mvstore.MVStore.cachePage:(Lorg/h2/mvstore/Page;)V
        53: .line 779
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.Page.pos:J
            invokestatic org.h2.mvstore.DataUtils.getPageMaxLength:(J)I
            istore 13 /* max */
        start local 13 // int max
        54: .line 780
            aload 1 /* chunk */
            dup
            getfield org.h2.mvstore.Chunk.maxLen:J
            iload 13 /* max */
            i2l
            ladd
            putfield org.h2.mvstore.Chunk.maxLen:J
        55: .line 781
            aload 1 /* chunk */
            dup
            getfield org.h2.mvstore.Chunk.maxLenLive:J
            iload 13 /* max */
            i2l
            ladd
            putfield org.h2.mvstore.Chunk.maxLenLive:J
        56: .line 782
            aload 1 /* chunk */
            dup
            getfield org.h2.mvstore.Chunk.pageCount:I
            iconst_1
            iadd
            putfield org.h2.mvstore.Chunk.pageCount:I
        57: .line 783
            aload 1 /* chunk */
            dup
            getfield org.h2.mvstore.Chunk.pageCountLive:I
            iconst_1
            iadd
            putfield org.h2.mvstore.Chunk.pageCountLive:I
        58: .line 784
            aload 0 /* this */
            getfield org.h2.mvstore.Page.removedInMemory:Z
            ifeq 60
        59: .line 788
            aload 0 /* this */
            getfield org.h2.mvstore.Page.map:Lorg/h2/mvstore/MVMap;
            aload 0 /* this */
            getfield org.h2.mvstore.Page.pos:J
            aload 0 /* this */
            getfield org.h2.mvstore.Page.memory:I
            invokevirtual org.h2.mvstore.MVMap.removePage:(JI)V
        60: .line 790
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iload 13 /* max */
            ldc 2097152
            if_icmpeq 61
            iload 13 /* max */
            goto 62
      StackMap locals:
      StackMap stack: org.h2.mvstore.Page
        61: iload 10 /* pageLength */
      StackMap locals: org.h2.mvstore.Page org.h2.mvstore.Chunk org.h2.mvstore.WriteBuffer int int int int int org.h2.mvstore.MVStore int int int int int
      StackMap stack: org.h2.mvstore.Page int
        62: putfield org.h2.mvstore.Page.diskSpaceUsed:I
        63: .line 791
            iload 6 /* typePos */
            iconst_1
            iadd
            ireturn
        end local 13 // int max
        end local 12 // int check
        end local 11 // int chunkId
        end local 10 // int pageLength
        end local 9 // int expLen
        end local 8 // org.h2.mvstore.MVStore store
        end local 7 // int compressStart
        end local 6 // int typePos
        end local 5 // int type
        end local 4 // int len
        end local 3 // int start
        end local 2 // org.h2.mvstore.WriteBuffer buff
        end local 1 // org.h2.mvstore.Chunk chunk
        end local 0 // org.h2.mvstore.Page this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   64     0              this  Lorg/h2/mvstore/Page;
            0   64     1             chunk  Lorg/h2/mvstore/Chunk;
            0   64     2              buff  Lorg/h2/mvstore/WriteBuffer;
            1   64     3             start  I
            2   64     4               len  I
            5   64     5              type  I
           10   64     6           typePos  I
           13   64     7     compressStart  I
           16   64     8             store  Lorg/h2/mvstore/MVStore;
           17   64     9            expLen  I
           19   37    10  compressionLevel  I
           22   24    11        compressor  Lorg/h2/compress/Compressor;
           25   37    11        compressor  Lorg/h2/compress/Compressor;
           23   24    12      compressType  I
           26   37    12      compressType  I
           27   37    13               exp  [B
           29   37    14              comp  [B
           30   37    15           compLen  I
           31   37    16              plus  I
           38   64    10        pageLength  I
           39   64    11           chunkId  I
           44   64    12             check  I
           54   64    13               max  I
    MethodParameters:
       Name  Flags
      chunk  
      buff   

  protected abstract void writeValues(org.h2.mvstore.WriteBuffer);
    descriptor: (Lorg/h2/mvstore/WriteBuffer;)V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      buff  

  protected abstract void writeChildren(org.h2.mvstore.WriteBuffer, boolean);
    descriptor: (Lorg/h2/mvstore/WriteBuffer;Z)V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
            Name  Flags
      buff        
      withCounts  

  abstract void writeUnsavedRecursive(org.h2.mvstore.Chunk, org.h2.mvstore.WriteBuffer);
    descriptor: (Lorg/h2/mvstore/Chunk;Lorg/h2/mvstore/WriteBuffer;)V
    flags: (0x0400) ACC_ABSTRACT
    MethodParameters:
       Name  Flags
      chunk  
      buff   

  abstract void writeEnd();
    descriptor: ()V
    flags: (0x0400) ACC_ABSTRACT

  public abstract int getRawChildPageCount();
    descriptor: ()I
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public final boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.h2.mvstore.Page this
        start local 1 // java.lang.Object other
         0: .line 827
            aload 1 /* other */
            aload 0 /* this */
            if_acmpeq 2
            aload 1 /* other */
            instanceof org.h2.mvstore.Page
            ifeq 1
            aload 0 /* this */
            invokevirtual org.h2.mvstore.Page.isSaved:()Z
            ifeq 1
            aload 1 /* other */
            checkcast org.h2.mvstore.Page
            getfield org.h2.mvstore.Page.pos:J
            aload 0 /* this */
            getfield org.h2.mvstore.Page.pos:J
            lcmp
            ifeq 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         2: iconst_1
            ireturn
        end local 1 // java.lang.Object other
        end local 0 // org.h2.mvstore.Page this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/h2/mvstore/Page;
            0    3     1  other  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      other  

  public final int hashCode();
    descriptor: ()I
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // org.h2.mvstore.Page this
         0: .line 832
            aload 0 /* this */
            invokevirtual org.h2.mvstore.Page.isSaved:()Z
            ifeq 1
            aload 0 /* this */
            getfield org.h2.mvstore.Page.pos:J
            aload 0 /* this */
            getfield org.h2.mvstore.Page.pos:J
            bipush 32
            lushr
            lor
            l2i
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            invokespecial java.lang.Object.hashCode:()I
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // org.h2.mvstore.Page this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/h2/mvstore/Page;

  protected final boolean isPersistent();
    descriptor: ()Z
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.h2.mvstore.Page this
         0: .line 836
            aload 0 /* this */
            getfield org.h2.mvstore.Page.memory:I
            ldc -2147483648
            if_icmpeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.h2.mvstore.Page this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/h2/mvstore/Page;

  public final int getMemory();
    descriptor: ()I
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.mvstore.Page this
         0: .line 840
            aload 0 /* this */
            invokevirtual org.h2.mvstore.Page.isPersistent:()Z
            ifeq 2
         1: .line 843
            aload 0 /* this */
            getfield org.h2.mvstore.Page.memory:I
            ireturn
         2: .line 845
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 0 // org.h2.mvstore.Page this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/h2/mvstore/Page;

  public long getDiskSpaceUsed();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=1
        start local 0 // org.h2.mvstore.Page this
         0: .line 854
            lconst_0
            lstore 1 /* r */
        start local 1 // long r
         1: .line 855
            aload 0 /* this */
            invokevirtual org.h2.mvstore.Page.isPersistent:()Z
            ifeq 3
         2: .line 856
            lload 1 /* r */
            aload 0 /* this */
            getfield org.h2.mvstore.Page.diskSpaceUsed:I
            i2l
            ladd
            lstore 1 /* r */
         3: .line 858
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.h2.mvstore.Page.isLeaf:()Z
            ifne 11
         4: .line 859
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         5: goto 10
         6: .line 860
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iload 3 /* i */
            invokevirtual org.h2.mvstore.Page.getChildPagePos:(I)J
            lstore 4 /* pos */
        start local 4 // long pos
         7: .line 861
            lload 4 /* pos */
            lconst_0
            lcmp
            ifeq 9
         8: .line 862
            lload 1 /* r */
            aload 0 /* this */
            iload 3 /* i */
            invokevirtual org.h2.mvstore.Page.getChildPage:(I)Lorg/h2/mvstore/Page;
            invokevirtual org.h2.mvstore.Page.getDiskSpaceUsed:()J
            ladd
            lstore 1 /* r */
        end local 4 // long pos
         9: .line 859
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 3 /* i */
            aload 0 /* this */
            invokevirtual org.h2.mvstore.Page.getRawChildPageCount:()I
            if_icmplt 6
        end local 3 // int i
        11: .line 866
      StackMap locals:
      StackMap stack:
            lload 1 /* r */
            lreturn
        end local 1 // long r
        end local 0 // org.h2.mvstore.Page this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lorg/h2/mvstore/Page;
            1   12     1     r  J
            5   11     3     i  I
            7    9     4   pos  J

  final void addMemory(int);
    descriptor: (I)V
    flags: (0x0010) ACC_FINAL
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.h2.mvstore.Page this
        start local 1 // int mem
         0: .line 875
            aload 0 /* this */
            dup
            getfield org.h2.mvstore.Page.memory:I
            iload 1 /* mem */
            iadd
            putfield org.h2.mvstore.Page.memory:I
         1: .line 876
            return
        end local 1 // int mem
        end local 0 // org.h2.mvstore.Page this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/h2/mvstore/Page;
            0    2     1   mem  I
    MethodParameters:
      Name  Flags
      mem   

  final void recalculateMemory();
    descriptor: ()V
    flags: (0x0010) ACC_FINAL
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.h2.mvstore.Page this
         0: .line 882
            getstatic org.h2.mvstore.Page.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            invokevirtual org.h2.mvstore.Page.isPersistent:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 883
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.h2.mvstore.Page.calculateMemory:()I
            putfield org.h2.mvstore.Page.memory:I
         2: .line 884
            return
        end local 0 // org.h2.mvstore.Page this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/h2/mvstore/Page;

  protected int calculateMemory();
    descriptor: ()I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // org.h2.mvstore.Page this
         0: .line 892
            aload 0 /* this */
            invokevirtual org.h2.mvstore.Page.getKeyCount:()I
            istore 1 /* keyCount */
        start local 1 // int keyCount
         1: .line 893
            iload 1 /* keyCount */
            bipush 8
            imul
            istore 2 /* mem */
        start local 2 // int mem
         2: .line 894
            aload 0 /* this */
            getfield org.h2.mvstore.Page.map:Lorg/h2/mvstore/MVMap;
            invokevirtual org.h2.mvstore.MVMap.getKeyType:()Lorg/h2/mvstore/type/DataType;
            astore 3 /* keyType */
        start local 3 // org.h2.mvstore.type.DataType keyType
         3: .line 895
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         4: goto 7
         5: .line 896
      StackMap locals: org.h2.mvstore.Page int int org.h2.mvstore.type.DataType int
      StackMap stack:
            iload 2 /* mem */
            aload 3 /* keyType */
            aload 0 /* this */
            getfield org.h2.mvstore.Page.keys:[Ljava/lang/Object;
            iload 4 /* i */
            aaload
            invokeinterface org.h2.mvstore.type.DataType.getMemory:(Ljava/lang/Object;)I
            iadd
            istore 2 /* mem */
         6: .line 895
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 4 /* i */
            iload 1 /* keyCount */
            if_icmplt 5
        end local 4 // int i
         8: .line 898
            iload 2 /* mem */
            ireturn
        end local 3 // org.h2.mvstore.type.DataType keyType
        end local 2 // int mem
        end local 1 // int keyCount
        end local 0 // org.h2.mvstore.Page this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0      this  Lorg/h2/mvstore/Page;
            1    9     1  keyCount  I
            2    9     2       mem  I
            3    9     3   keyType  Lorg/h2/mvstore/type/DataType;
            4    8     4         i  I

  public boolean isComplete();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.mvstore.Page this
         0: .line 902
            iconst_1
            ireturn
        end local 0 // org.h2.mvstore.Page this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/mvstore/Page;

  public void setComplete();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // org.h2.mvstore.Page this
         0: .line 908
            return
        end local 0 // org.h2.mvstore.Page this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/mvstore/Page;

  public final void removePage();
    descriptor: ()V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // org.h2.mvstore.Page this
         0: .line 914
            aload 0 /* this */
            invokevirtual org.h2.mvstore.Page.isPersistent:()Z
            ifeq 5
         1: .line 915
            aload 0 /* this */
            getfield org.h2.mvstore.Page.pos:J
            lstore 1 /* p */
        start local 1 // long p
         2: .line 916
            lload 1 /* p */
            lconst_0
            lcmp
            ifne 4
         3: .line 917
            aload 0 /* this */
            iconst_1
            putfield org.h2.mvstore.Page.removedInMemory:Z
         4: .line 919
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.Page.map:Lorg/h2/mvstore/MVMap;
            lload 1 /* p */
            aload 0 /* this */
            getfield org.h2.mvstore.Page.memory:I
            invokevirtual org.h2.mvstore.MVMap.removePage:(JI)V
        end local 1 // long p
         5: .line 921
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.h2.mvstore.Page this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/h2/mvstore/Page;
            2    5     1     p  J

  public abstract org.h2.mvstore.CursorPos getAppendCursorPos(org.h2.mvstore.CursorPos);
    descriptor: (Lorg/h2/mvstore/CursorPos;)Lorg/h2/mvstore/CursorPos;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
           Name  Flags
      cursorPos  

  public abstract void removeAllRecursive();
    descriptor: ()V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  private java.lang.Object[] createKeyStorage(int);
    descriptor: (I)[Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.h2.mvstore.Page this
        start local 1 // int size
         0: .line 944
            iload 1 /* size */
            anewarray java.lang.Object
            areturn
        end local 1 // int size
        end local 0 // org.h2.mvstore.Page this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/mvstore/Page;
            0    1     1  size  I
    MethodParameters:
      Name  Flags
      size  

  final java.lang.Object[] createValueStorage(int);
    descriptor: (I)[Ljava/lang/Object;
    flags: (0x0010) ACC_FINAL
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.h2.mvstore.Page this
        start local 1 // int size
         0: .line 955
            iload 1 /* size */
            anewarray java.lang.Object
            areturn
        end local 1 // int size
        end local 0 // org.h2.mvstore.Page this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/mvstore/Page;
            0    1     1  size  I
    MethodParameters:
      Name  Flags
      size  

  protected java.lang.Object clone();
    descriptor: ()Ljava/lang/Object;
    flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual org.h2.mvstore.Page.clone:()Lorg/h2/mvstore/Page;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.lang.CloneNotSupportedException
}
SourceFile: "Page.java"
NestMembers:
  org.h2.mvstore.Page$1  org.h2.mvstore.Page$IncompleteNonLeaf  org.h2.mvstore.Page$Leaf  org.h2.mvstore.Page$NonLeaf  org.h2.mvstore.Page$PageReference
InnerClasses:
  final ChunkIdsCollector = org.h2.mvstore.MVStore$ChunkIdsCollector of org.h2.mvstore.MVStore
  org.h2.mvstore.Page$1
  private IncompleteNonLeaf = org.h2.mvstore.Page$IncompleteNonLeaf of org.h2.mvstore.Page
  private Leaf = org.h2.mvstore.Page$Leaf of org.h2.mvstore.Page
  private NonLeaf = org.h2.mvstore.Page$NonLeaf of org.h2.mvstore.Page
  public final PageReference = org.h2.mvstore.Page$PageReference of org.h2.mvstore.Page