public class org.apache.cassandra.io.sstable.IndexSummary$IndexSummarySerializer
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.cassandra.io.sstable.IndexSummary$IndexSummarySerializer
  super_class: java.lang.Object
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.io.sstable.IndexSummary$IndexSummarySerializer this
         0: .line 269
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.apache.cassandra.io.sstable.IndexSummary$IndexSummarySerializer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/io/sstable/IndexSummary$IndexSummarySerializer;

  public void serialize(org.apache.cassandra.io.sstable.IndexSummary, org.apache.cassandra.io.util.DataOutputPlus, boolean);
    descriptor: (Lorg/apache/cassandra/io/sstable/IndexSummary;Lorg/apache/cassandra/io/util/DataOutputPlus;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=7, args_size=4
        start local 0 // org.apache.cassandra.io.sstable.IndexSummary$IndexSummarySerializer this
        start local 1 // org.apache.cassandra.io.sstable.IndexSummary t
        start local 2 // org.apache.cassandra.io.util.DataOutputPlus out
        start local 3 // boolean withSamplingLevel
         0: .line 273
            aload 2 /* out */
            aload 1 /* t */
            getfield org.apache.cassandra.io.sstable.IndexSummary.minIndexInterval:I
            invokeinterface org.apache.cassandra.io.util.DataOutputPlus.writeInt:(I)V
         1: .line 274
            aload 2 /* out */
            aload 1 /* t */
            getfield org.apache.cassandra.io.sstable.IndexSummary.offsetCount:I
            invokeinterface org.apache.cassandra.io.util.DataOutputPlus.writeInt:(I)V
         2: .line 275
            aload 2 /* out */
            aload 1 /* t */
            invokevirtual org.apache.cassandra.io.sstable.IndexSummary.getOffHeapSize:()J
            invokeinterface org.apache.cassandra.io.util.DataOutputPlus.writeLong:(J)V
         3: .line 276
            iload 3 /* withSamplingLevel */
            ifeq 6
         4: .line 278
            aload 2 /* out */
            aload 1 /* t */
            getfield org.apache.cassandra.io.sstable.IndexSummary.samplingLevel:I
            invokeinterface org.apache.cassandra.io.util.DataOutputPlus.writeInt:(I)V
         5: .line 279
            aload 2 /* out */
            aload 1 /* t */
            getfield org.apache.cassandra.io.sstable.IndexSummary.sizeAtFullSampling:I
            invokeinterface org.apache.cassandra.io.util.DataOutputPlus.writeInt:(I)V
         6: .line 286
      StackMap locals:
      StackMap stack:
            aload 1 /* t */
            getfield org.apache.cassandra.io.sstable.IndexSummary.offsetCount:I
            iconst_4
            imul
            istore 4 /* baseOffset */
        start local 4 // int baseOffset
         7: .line 287
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         8: goto 14
         9: .line 289
      StackMap locals: int int
      StackMap stack:
            aload 1 /* t */
            getfield org.apache.cassandra.io.sstable.IndexSummary.offsets:Lorg/apache/cassandra/io/util/Memory;
            iload 5 /* i */
            iconst_4
            imul
            i2l
            invokevirtual org.apache.cassandra.io.util.Memory.getInt:(J)I
            iload 4 /* baseOffset */
            iadd
            istore 6 /* offset */
        start local 6 // int offset
        10: .line 292
            invokestatic java.nio.ByteOrder.nativeOrder:()Ljava/nio/ByteOrder;
            getstatic java.nio.ByteOrder.BIG_ENDIAN:Ljava/nio/ByteOrder;
            if_acmpeq 12
        11: .line 293
            iload 6 /* offset */
            invokestatic java.lang.Integer.reverseBytes:(I)I
            istore 6 /* offset */
        12: .line 294
      StackMap locals: int
      StackMap stack:
            aload 2 /* out */
            iload 6 /* offset */
            invokeinterface org.apache.cassandra.io.util.DataOutputPlus.writeInt:(I)V
        end local 6 // int offset
        13: .line 287
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 5 /* i */
            aload 1 /* t */
            getfield org.apache.cassandra.io.sstable.IndexSummary.offsetCount:I
            if_icmplt 9
        end local 5 // int i
        15: .line 296
            aload 2 /* out */
            aload 1 /* t */
            getfield org.apache.cassandra.io.sstable.IndexSummary.entries:Lorg/apache/cassandra/io/util/Memory;
            lconst_0
            aload 1 /* t */
            getfield org.apache.cassandra.io.sstable.IndexSummary.entriesLength:J
            invokeinterface org.apache.cassandra.io.util.DataOutputPlus.write:(Lorg/apache/cassandra/io/util/Memory;JJ)V
        16: .line 297
            return
        end local 4 // int baseOffset
        end local 3 // boolean withSamplingLevel
        end local 2 // org.apache.cassandra.io.util.DataOutputPlus out
        end local 1 // org.apache.cassandra.io.sstable.IndexSummary t
        end local 0 // org.apache.cassandra.io.sstable.IndexSummary$IndexSummarySerializer this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   17     0               this  Lorg/apache/cassandra/io/sstable/IndexSummary$IndexSummarySerializer;
            0   17     1                  t  Lorg/apache/cassandra/io/sstable/IndexSummary;
            0   17     2                out  Lorg/apache/cassandra/io/util/DataOutputPlus;
            0   17     3  withSamplingLevel  Z
            7   17     4         baseOffset  I
            8   15     5                  i  I
           10   13     6             offset  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                   Name  Flags
      t                  
      out                
      withSamplingLevel  

  public org.apache.cassandra.io.sstable.IndexSummary deserialize(java.io.DataInputStream, org.apache.cassandra.dht.IPartitioner, boolean, int, int);
    descriptor: (Ljava/io/DataInputStream;Lorg/apache/cassandra/dht/IPartitioner;ZII)Lorg/apache/cassandra/io/sstable/IndexSummary;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=11, locals=16, args_size=6
        start local 0 // org.apache.cassandra.io.sstable.IndexSummary$IndexSummarySerializer this
        start local 1 // java.io.DataInputStream in
        start local 2 // org.apache.cassandra.dht.IPartitioner partitioner
        start local 3 // boolean haveSamplingLevel
        start local 4 // int expectedMinIndexInterval
        start local 5 // int maxIndexInterval
         0: .line 302
            aload 1 /* in */
            invokevirtual java.io.DataInputStream.readInt:()I
            istore 6 /* minIndexInterval */
        start local 6 // int minIndexInterval
         1: .line 303
            iload 6 /* minIndexInterval */
            iload 4 /* expectedMinIndexInterval */
            if_icmpeq 5
         2: .line 305
            new java.io.IOException
            dup
            ldc "Cannot read index summary because min_index_interval changed from %d to %d."
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
         3: .line 306
            iload 6 /* minIndexInterval */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            iload 4 /* expectedMinIndexInterval */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
         4: .line 305
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 309
      StackMap locals: int
      StackMap stack:
            aload 1 /* in */
            invokevirtual java.io.DataInputStream.readInt:()I
            istore 7 /* offsetCount */
        start local 7 // int offsetCount
         6: .line 310
            aload 1 /* in */
            invokevirtual java.io.DataInputStream.readLong:()J
            lstore 8 /* offheapSize */
        start local 8 // long offheapSize
         7: .line 312
            iload 3 /* haveSamplingLevel */
            ifeq 11
         8: .line 314
            aload 1 /* in */
            invokevirtual java.io.DataInputStream.readInt:()I
            istore 10 /* samplingLevel */
        start local 10 // int samplingLevel
         9: .line 315
            aload 1 /* in */
            invokevirtual java.io.DataInputStream.readInt:()I
            istore 11 /* fullSamplingSummarySize */
        start local 11 // int fullSamplingSummarySize
        10: .line 316
            goto 13
        end local 11 // int fullSamplingSummarySize
        end local 10 // int samplingLevel
        11: .line 319
      StackMap locals: int long
      StackMap stack:
            sipush 128
            istore 10 /* samplingLevel */
        start local 10 // int samplingLevel
        12: .line 320
            iload 7 /* offsetCount */
            istore 11 /* fullSamplingSummarySize */
        start local 11 // int fullSamplingSummarySize
        13: .line 323
      StackMap locals: int int
      StackMap stack:
            ldc 128.0
            iload 10 /* samplingLevel */
            i2d
            ddiv
            iload 6 /* minIndexInterval */
            i2d
            dmul
            invokestatic java.lang.Math.ceil:(D)D
            d2i
            istore 12 /* effectiveIndexInterval */
        start local 12 // int effectiveIndexInterval
        14: .line 324
            iload 12 /* effectiveIndexInterval */
            iload 5 /* maxIndexInterval */
            if_icmple 18
        15: .line 326
            new java.io.IOException
            dup
            ldc "Rebuilding index summary because the effective index interval (%d) is higher than the current max index interval (%d)"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        16: .line 327
            iload 12 /* effectiveIndexInterval */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            iload 5 /* maxIndexInterval */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
        17: .line 326
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        18: .line 330
      StackMap locals: int
      StackMap stack:
            iload 7 /* offsetCount */
            iconst_4
            imul
            i2l
            invokestatic org.apache.cassandra.io.util.Memory.allocate:(J)Lorg/apache/cassandra/io/util/Memory;
            astore 13 /* offsets */
        start local 13 // org.apache.cassandra.io.util.Memory offsets
        19: .line 331
            lload 8 /* offheapSize */
            aload 13 /* offsets */
            invokevirtual org.apache.cassandra.io.util.Memory.size:()J
            lsub
            invokestatic org.apache.cassandra.io.util.Memory.allocate:(J)Lorg/apache/cassandra/io/util/Memory;
            astore 14 /* entries */
        start local 14 // org.apache.cassandra.io.util.Memory entries
        20: .line 334
            aload 1 /* in */
            new org.apache.cassandra.io.util.MemoryOutputStream
            dup
            aload 13 /* offsets */
            invokespecial org.apache.cassandra.io.util.MemoryOutputStream.<init>:(Lorg/apache/cassandra/io/util/Memory;)V
            aload 13 /* offsets */
            invokevirtual org.apache.cassandra.io.util.Memory.size:()J
            invokestatic org.apache.cassandra.utils.FBUtilities.copy:(Ljava/io/InputStream;Ljava/io/OutputStream;J)J
            pop2
        21: .line 335
            aload 1 /* in */
            new org.apache.cassandra.io.util.MemoryOutputStream
            dup
            aload 14 /* entries */
            invokespecial org.apache.cassandra.io.util.MemoryOutputStream.<init>:(Lorg/apache/cassandra/io/util/Memory;)V
            aload 14 /* entries */
            invokevirtual org.apache.cassandra.io.util.Memory.size:()J
            invokestatic org.apache.cassandra.utils.FBUtilities.copy:(Ljava/io/InputStream;Ljava/io/OutputStream;J)J
            pop2
        22: .line 336
            goto 27
        23: .line 337
      StackMap locals: org.apache.cassandra.io.sstable.IndexSummary$IndexSummarySerializer java.io.DataInputStream org.apache.cassandra.dht.IPartitioner int int int int int long int int int org.apache.cassandra.io.util.Memory org.apache.cassandra.io.util.Memory
      StackMap stack: java.io.IOException
            astore 15 /* ioe */
        start local 15 // java.io.IOException ioe
        24: .line 339
            aload 13 /* offsets */
            invokevirtual org.apache.cassandra.io.util.Memory.free:()V
        25: .line 340
            aload 14 /* entries */
            invokevirtual org.apache.cassandra.io.util.Memory.free:()V
        26: .line 341
            aload 15 /* ioe */
            athrow
        end local 15 // java.io.IOException ioe
        27: .line 348
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 15 /* i */
        start local 15 // int i
        28: goto 31
        29: .line 349
      StackMap locals: int
      StackMap stack:
            aload 13 /* offsets */
            iload 15 /* i */
            i2l
            aload 13 /* offsets */
            iload 15 /* i */
            i2l
            invokevirtual org.apache.cassandra.io.util.Memory.getInt:(J)I
            i2l
            aload 13 /* offsets */
            invokevirtual org.apache.cassandra.io.util.Memory.size:()J
            lsub
            l2i
            invokevirtual org.apache.cassandra.io.util.Memory.setInt:(JI)V
        30: .line 348
            iinc 15 /* i */ 4
      StackMap locals:
      StackMap stack:
        31: iload 15 /* i */
            i2l
            aload 13 /* offsets */
            invokevirtual org.apache.cassandra.io.util.Memory.size:()J
            lcmp
            iflt 29
        end local 15 // int i
        32: .line 350
            new org.apache.cassandra.io.sstable.IndexSummary
            dup
            aload 2 /* partitioner */
            aload 13 /* offsets */
            iload 7 /* offsetCount */
            aload 14 /* entries */
            aload 14 /* entries */
            invokevirtual org.apache.cassandra.io.util.Memory.size:()J
            iload 11 /* fullSamplingSummarySize */
            iload 6 /* minIndexInterval */
            iload 10 /* samplingLevel */
            invokespecial org.apache.cassandra.io.sstable.IndexSummary.<init>:(Lorg/apache/cassandra/dht/IPartitioner;Lorg/apache/cassandra/io/util/Memory;ILorg/apache/cassandra/io/util/Memory;JIII)V
            areturn
        end local 14 // org.apache.cassandra.io.util.Memory entries
        end local 13 // org.apache.cassandra.io.util.Memory offsets
        end local 12 // int effectiveIndexInterval
        end local 11 // int fullSamplingSummarySize
        end local 10 // int samplingLevel
        end local 8 // long offheapSize
        end local 7 // int offsetCount
        end local 6 // int minIndexInterval
        end local 5 // int maxIndexInterval
        end local 4 // int expectedMinIndexInterval
        end local 3 // boolean haveSamplingLevel
        end local 2 // org.apache.cassandra.dht.IPartitioner partitioner
        end local 1 // java.io.DataInputStream in
        end local 0 // org.apache.cassandra.io.sstable.IndexSummary$IndexSummarySerializer this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   33     0                      this  Lorg/apache/cassandra/io/sstable/IndexSummary$IndexSummarySerializer;
            0   33     1                        in  Ljava/io/DataInputStream;
            0   33     2               partitioner  Lorg/apache/cassandra/dht/IPartitioner;
            0   33     3         haveSamplingLevel  Z
            0   33     4  expectedMinIndexInterval  I
            0   33     5          maxIndexInterval  I
            1   33     6          minIndexInterval  I
            6   33     7               offsetCount  I
            7   33     8               offheapSize  J
            9   11    10             samplingLevel  I
           12   33    10             samplingLevel  I
           10   11    11   fullSamplingSummarySize  I
           13   33    11   fullSamplingSummarySize  I
           14   33    12    effectiveIndexInterval  I
           19   33    13                   offsets  Lorg/apache/cassandra/io/util/Memory;
           20   33    14                   entries  Lorg/apache/cassandra/io/util/Memory;
           24   27    15                       ioe  Ljava/io/IOException;
           28   32    15                         i  I
      Exception table:
        from    to  target  type
          20    22      23  Class java.io.IOException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                          Name  Flags
      in                        
      partitioner               
      haveSamplingLevel         
      expectedMinIndexInterval  
      maxIndexInterval          

  public org.apache.cassandra.utils.Pair<org.apache.cassandra.db.DecoratedKey, org.apache.cassandra.db.DecoratedKey> deserializeFirstLastKey(java.io.DataInputStream, org.apache.cassandra.dht.IPartitioner, boolean);
    descriptor: (Ljava/io/DataInputStream;Lorg/apache/cassandra/dht/IPartitioner;Z)Lorg/apache/cassandra/utils/Pair;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=9, args_size=4
        start local 0 // org.apache.cassandra.io.sstable.IndexSummary$IndexSummarySerializer this
        start local 1 // java.io.DataInputStream in
        start local 2 // org.apache.cassandra.dht.IPartitioner partitioner
        start local 3 // boolean haveSamplingLevel
         0: .line 360
            aload 1 /* in */
            iconst_4
            invokevirtual java.io.DataInputStream.skipBytes:(I)I
            pop
         1: .line 361
            aload 1 /* in */
            invokevirtual java.io.DataInputStream.readInt:()I
            istore 4 /* offsetCount */
        start local 4 // int offsetCount
         2: .line 362
            aload 1 /* in */
            invokevirtual java.io.DataInputStream.readLong:()J
            lstore 5 /* offheapSize */
        start local 5 // long offheapSize
         3: .line 363
            iload 3 /* haveSamplingLevel */
            ifeq 5
         4: .line 364
            aload 1 /* in */
            bipush 8
            invokevirtual java.io.DataInputStream.skipBytes:(I)I
            pop
         5: .line 366
      StackMap locals: int long
      StackMap stack:
            aload 1 /* in */
            iload 4 /* offsetCount */
            iconst_4
            imul
            i2l
            invokevirtual java.io.DataInputStream.skip:(J)J
            pop2
         6: .line 367
            aload 1 /* in */
            lload 5 /* offheapSize */
            iload 4 /* offsetCount */
            iconst_4
            imul
            i2l
            lsub
            invokevirtual java.io.DataInputStream.skip:(J)J
            pop2
         7: .line 369
            aload 2 /* partitioner */
            aload 1 /* in */
            invokestatic org.apache.cassandra.utils.ByteBufferUtil.readWithLength:(Ljava/io/DataInput;)Ljava/nio/ByteBuffer;
            invokeinterface org.apache.cassandra.dht.IPartitioner.decorateKey:(Ljava/nio/ByteBuffer;)Lorg/apache/cassandra/db/DecoratedKey;
            astore 7 /* first */
        start local 7 // org.apache.cassandra.db.DecoratedKey first
         8: .line 370
            aload 2 /* partitioner */
            aload 1 /* in */
            invokestatic org.apache.cassandra.utils.ByteBufferUtil.readWithLength:(Ljava/io/DataInput;)Ljava/nio/ByteBuffer;
            invokeinterface org.apache.cassandra.dht.IPartitioner.decorateKey:(Ljava/nio/ByteBuffer;)Lorg/apache/cassandra/db/DecoratedKey;
            astore 8 /* last */
        start local 8 // org.apache.cassandra.db.DecoratedKey last
         9: .line 371
            aload 7 /* first */
            aload 8 /* last */
            invokestatic org.apache.cassandra.utils.Pair.create:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/apache/cassandra/utils/Pair;
            areturn
        end local 8 // org.apache.cassandra.db.DecoratedKey last
        end local 7 // org.apache.cassandra.db.DecoratedKey first
        end local 5 // long offheapSize
        end local 4 // int offsetCount
        end local 3 // boolean haveSamplingLevel
        end local 2 // org.apache.cassandra.dht.IPartitioner partitioner
        end local 1 // java.io.DataInputStream in
        end local 0 // org.apache.cassandra.io.sstable.IndexSummary$IndexSummarySerializer this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   10     0               this  Lorg/apache/cassandra/io/sstable/IndexSummary$IndexSummarySerializer;
            0   10     1                 in  Ljava/io/DataInputStream;
            0   10     2        partitioner  Lorg/apache/cassandra/dht/IPartitioner;
            0   10     3  haveSamplingLevel  Z
            2   10     4        offsetCount  I
            3   10     5        offheapSize  J
            8   10     7              first  Lorg/apache/cassandra/db/DecoratedKey;
            9   10     8               last  Lorg/apache/cassandra/db/DecoratedKey;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/io/DataInputStream;Lorg/apache/cassandra/dht/IPartitioner;Z)Lorg/apache/cassandra/utils/Pair<Lorg/apache/cassandra/db/DecoratedKey;Lorg/apache/cassandra/db/DecoratedKey;>;
    MethodParameters:
                   Name  Flags
      in                 
      partitioner        
      haveSamplingLevel  
}
SourceFile: "IndexSummary.java"
NestHost: org.apache.cassandra.io.sstable.IndexSummary
InnerClasses:
  public IndexSummarySerializer = org.apache.cassandra.io.sstable.IndexSummary$IndexSummarySerializer of org.apache.cassandra.io.sstable.IndexSummary