public class org.apache.cassandra.utils.MerkleTree$MerkleTreeSerializer implements org.apache.cassandra.io.IVersionedSerializer<org.apache.cassandra.utils.MerkleTree>
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.cassandra.utils.MerkleTree$MerkleTreeSerializer
  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.utils.MerkleTree$MerkleTreeSerializer this
         0: .line 87
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.apache.cassandra.utils.MerkleTree$MerkleTreeSerializer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/utils/MerkleTree$MerkleTreeSerializer;

  public void serialize(org.apache.cassandra.utils.MerkleTree, org.apache.cassandra.io.util.DataOutputPlus, int);
    descriptor: (Lorg/apache/cassandra/utils/MerkleTree;Lorg/apache/cassandra/io/util/DataOutputPlus;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.apache.cassandra.utils.MerkleTree$MerkleTreeSerializer this
        start local 1 // org.apache.cassandra.utils.MerkleTree mt
        start local 2 // org.apache.cassandra.io.util.DataOutputPlus out
        start local 3 // int version
         0: .line 91
            aload 2 /* out */
            aload 1 /* mt */
            getfield org.apache.cassandra.utils.MerkleTree.hashdepth:B
            invokeinterface org.apache.cassandra.io.util.DataOutputPlus.writeByte:(I)V
         1: .line 92
            aload 2 /* out */
            aload 1 /* mt */
            getfield org.apache.cassandra.utils.MerkleTree.maxsize:J
            invokeinterface org.apache.cassandra.io.util.DataOutputPlus.writeLong:(J)V
         2: .line 93
            aload 2 /* out */
            aload 1 /* mt */
            getfield org.apache.cassandra.utils.MerkleTree.size:J
            invokeinterface org.apache.cassandra.io.util.DataOutputPlus.writeLong:(J)V
         3: .line 94
            aload 2 /* out */
            aload 1 /* mt */
            getfield org.apache.cassandra.utils.MerkleTree.partitioner:Lorg/apache/cassandra/dht/IPartitioner;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getCanonicalName:()Ljava/lang/String;
            invokeinterface org.apache.cassandra.io.util.DataOutputPlus.writeUTF:(Ljava/lang/String;)V
         4: .line 96
            getstatic org.apache.cassandra.dht.Token.serializer:Lorg/apache/cassandra/dht/Token$TokenSerializer;
            aload 1 /* mt */
            getfield org.apache.cassandra.utils.MerkleTree.fullRange:Lorg/apache/cassandra/dht/Range;
            getfield org.apache.cassandra.dht.Range.left:Lorg/apache/cassandra/dht/RingPosition;
            checkcast org.apache.cassandra.dht.Token
            aload 2 /* out */
            iload 3 /* version */
            invokevirtual org.apache.cassandra.dht.Token$TokenSerializer.serialize:(Lorg/apache/cassandra/dht/Token;Lorg/apache/cassandra/io/util/DataOutputPlus;I)V
         5: .line 97
            getstatic org.apache.cassandra.dht.Token.serializer:Lorg/apache/cassandra/dht/Token$TokenSerializer;
            aload 1 /* mt */
            getfield org.apache.cassandra.utils.MerkleTree.fullRange:Lorg/apache/cassandra/dht/Range;
            getfield org.apache.cassandra.dht.Range.right:Lorg/apache/cassandra/dht/RingPosition;
            checkcast org.apache.cassandra.dht.Token
            aload 2 /* out */
            iload 3 /* version */
            invokevirtual org.apache.cassandra.dht.Token$TokenSerializer.serialize:(Lorg/apache/cassandra/dht/Token;Lorg/apache/cassandra/io/util/DataOutputPlus;I)V
         6: .line 98
            getstatic org.apache.cassandra.utils.MerkleTree$Hashable.serializer:Lorg/apache/cassandra/dht/IPartitionerDependentSerializer;
            aload 1 /* mt */
            getfield org.apache.cassandra.utils.MerkleTree.root:Lorg/apache/cassandra/utils/MerkleTree$Hashable;
            aload 2 /* out */
            iload 3 /* version */
            invokeinterface org.apache.cassandra.dht.IPartitionerDependentSerializer.serialize:(Ljava/lang/Object;Lorg/apache/cassandra/io/util/DataOutputPlus;I)V
         7: .line 99
            return
        end local 3 // int version
        end local 2 // org.apache.cassandra.io.util.DataOutputPlus out
        end local 1 // org.apache.cassandra.utils.MerkleTree mt
        end local 0 // org.apache.cassandra.utils.MerkleTree$MerkleTreeSerializer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Lorg/apache/cassandra/utils/MerkleTree$MerkleTreeSerializer;
            0    8     1       mt  Lorg/apache/cassandra/utils/MerkleTree;
            0    8     2      out  Lorg/apache/cassandra/io/util/DataOutputPlus;
            0    8     3  version  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      mt       
      out      
      version  

  public org.apache.cassandra.utils.MerkleTree deserialize(org.apache.cassandra.io.util.DataInputPlus, int);
    descriptor: (Lorg/apache/cassandra/io/util/DataInputPlus;I)Lorg/apache/cassandra/utils/MerkleTree;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=13, args_size=3
        start local 0 // org.apache.cassandra.utils.MerkleTree$MerkleTreeSerializer this
        start local 1 // org.apache.cassandra.io.util.DataInputPlus in
        start local 2 // int version
         0: .line 103
            aload 1 /* in */
            invokeinterface org.apache.cassandra.io.util.DataInputPlus.readByte:()B
            istore 3 /* hashdepth */
        start local 3 // byte hashdepth
         1: .line 104
            aload 1 /* in */
            invokeinterface org.apache.cassandra.io.util.DataInputPlus.readLong:()J
            lstore 4 /* maxsize */
        start local 4 // long maxsize
         2: .line 105
            aload 1 /* in */
            invokeinterface org.apache.cassandra.io.util.DataInputPlus.readLong:()J
            lstore 6 /* size */
        start local 6 // long size
         3: .line 109
            aload 1 /* in */
            invokeinterface org.apache.cassandra.io.util.DataInputPlus.readUTF:()Ljava/lang/String;
            invokestatic org.apache.cassandra.utils.FBUtilities.newPartitioner:(Ljava/lang/String;)Lorg/apache/cassandra/dht/IPartitioner;
            astore 8 /* partitioner */
        start local 8 // org.apache.cassandra.dht.IPartitioner partitioner
         4: .line 110
            goto 7
        end local 8 // org.apache.cassandra.dht.IPartitioner partitioner
         5: .line 111
      StackMap locals: org.apache.cassandra.utils.MerkleTree$MerkleTreeSerializer org.apache.cassandra.io.util.DataInputPlus int int long long
      StackMap stack: org.apache.cassandra.exceptions.ConfigurationException
            astore 9 /* e */
        start local 9 // org.apache.cassandra.exceptions.ConfigurationException e
         6: .line 113
            new java.io.IOException
            dup
            aload 9 /* e */
            invokespecial java.io.IOException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 9 // org.apache.cassandra.exceptions.ConfigurationException e
        start local 8 // org.apache.cassandra.dht.IPartitioner partitioner
         7: .line 117
      StackMap locals: org.apache.cassandra.dht.IPartitioner
      StackMap stack:
            getstatic org.apache.cassandra.dht.Token.serializer:Lorg/apache/cassandra/dht/Token$TokenSerializer;
            aload 1 /* in */
            aload 8 /* partitioner */
            iload 2 /* version */
            invokevirtual org.apache.cassandra.dht.Token$TokenSerializer.deserialize:(Ljava/io/DataInput;Lorg/apache/cassandra/dht/IPartitioner;I)Lorg/apache/cassandra/dht/Token;
            astore 9 /* left */
        start local 9 // org.apache.cassandra.dht.Token left
         8: .line 118
            getstatic org.apache.cassandra.dht.Token.serializer:Lorg/apache/cassandra/dht/Token$TokenSerializer;
            aload 1 /* in */
            aload 8 /* partitioner */
            iload 2 /* version */
            invokevirtual org.apache.cassandra.dht.Token$TokenSerializer.deserialize:(Ljava/io/DataInput;Lorg/apache/cassandra/dht/IPartitioner;I)Lorg/apache/cassandra/dht/Token;
            astore 10 /* right */
        start local 10 // org.apache.cassandra.dht.Token right
         9: .line 119
            new org.apache.cassandra.dht.Range
            dup
            aload 9 /* left */
            aload 10 /* right */
            invokespecial org.apache.cassandra.dht.Range.<init>:(Lorg/apache/cassandra/dht/RingPosition;Lorg/apache/cassandra/dht/RingPosition;)V
            astore 11 /* fullRange */
        start local 11 // org.apache.cassandra.dht.Range fullRange
        10: .line 121
            new org.apache.cassandra.utils.MerkleTree
            dup
            aload 8 /* partitioner */
            aload 11 /* fullRange */
            iload 3 /* hashdepth */
            lload 4 /* maxsize */
            invokespecial org.apache.cassandra.utils.MerkleTree.<init>:(Lorg/apache/cassandra/dht/IPartitioner;Lorg/apache/cassandra/dht/Range;BJ)V
            astore 12 /* mt */
        start local 12 // org.apache.cassandra.utils.MerkleTree mt
        11: .line 122
            aload 12 /* mt */
            lload 6 /* size */
            putfield org.apache.cassandra.utils.MerkleTree.size:J
        12: .line 123
            aload 12 /* mt */
            getstatic org.apache.cassandra.utils.MerkleTree$Hashable.serializer:Lorg/apache/cassandra/dht/IPartitionerDependentSerializer;
            aload 1 /* in */
            aload 8 /* partitioner */
            iload 2 /* version */
            invokeinterface org.apache.cassandra.dht.IPartitionerDependentSerializer.deserialize:(Ljava/io/DataInput;Lorg/apache/cassandra/dht/IPartitioner;I)Ljava/lang/Object;
            checkcast org.apache.cassandra.utils.MerkleTree$Hashable
            putfield org.apache.cassandra.utils.MerkleTree.root:Lorg/apache/cassandra/utils/MerkleTree$Hashable;
        13: .line 124
            aload 12 /* mt */
            areturn
        end local 12 // org.apache.cassandra.utils.MerkleTree mt
        end local 11 // org.apache.cassandra.dht.Range fullRange
        end local 10 // org.apache.cassandra.dht.Token right
        end local 9 // org.apache.cassandra.dht.Token left
        end local 8 // org.apache.cassandra.dht.IPartitioner partitioner
        end local 6 // long size
        end local 4 // long maxsize
        end local 3 // byte hashdepth
        end local 2 // int version
        end local 1 // org.apache.cassandra.io.util.DataInputPlus in
        end local 0 // org.apache.cassandra.utils.MerkleTree$MerkleTreeSerializer this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   14     0         this  Lorg/apache/cassandra/utils/MerkleTree$MerkleTreeSerializer;
            0   14     1           in  Lorg/apache/cassandra/io/util/DataInputPlus;
            0   14     2      version  I
            1   14     3    hashdepth  B
            2   14     4      maxsize  J
            3   14     6         size  J
            4    5     8  partitioner  Lorg/apache/cassandra/dht/IPartitioner;
            7   14     8  partitioner  Lorg/apache/cassandra/dht/IPartitioner;
            6    7     9            e  Lorg/apache/cassandra/exceptions/ConfigurationException;
            8   14     9         left  Lorg/apache/cassandra/dht/Token;
            9   14    10        right  Lorg/apache/cassandra/dht/Token;
           10   14    11    fullRange  Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;
           11   14    12           mt  Lorg/apache/cassandra/utils/MerkleTree;
      Exception table:
        from    to  target  type
           3     4       5  Class org.apache.cassandra.exceptions.ConfigurationException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      in       
      version  

  public long serializedSize(org.apache.cassandra.utils.MerkleTree, int);
    descriptor: (Lorg/apache/cassandra/utils/MerkleTree;I)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // org.apache.cassandra.utils.MerkleTree$MerkleTreeSerializer this
        start local 1 // org.apache.cassandra.utils.MerkleTree mt
        start local 2 // int version
         0: .line 129
            iconst_1
         1: .line 130
            aload 1 /* mt */
            getfield org.apache.cassandra.utils.MerkleTree.maxsize:J
            invokestatic org.apache.cassandra.db.TypeSizes.sizeof:(J)I
         2: .line 129
            iadd
         3: .line 131
            aload 1 /* mt */
            getfield org.apache.cassandra.utils.MerkleTree.size:J
            invokestatic org.apache.cassandra.db.TypeSizes.sizeof:(J)I
         4: .line 129
            iadd
         5: .line 132
            aload 1 /* mt */
            getfield org.apache.cassandra.utils.MerkleTree.partitioner:Lorg/apache/cassandra/dht/IPartitioner;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getCanonicalName:()Ljava/lang/String;
            invokestatic org.apache.cassandra.db.TypeSizes.sizeof:(Ljava/lang/String;)I
         6: .line 129
            iadd
            i2l
            lstore 3 /* size */
        start local 3 // long size
         7: .line 135
            lload 3 /* size */
            getstatic org.apache.cassandra.dht.Token.serializer:Lorg/apache/cassandra/dht/Token$TokenSerializer;
            aload 1 /* mt */
            getfield org.apache.cassandra.utils.MerkleTree.fullRange:Lorg/apache/cassandra/dht/Range;
            getfield org.apache.cassandra.dht.Range.left:Lorg/apache/cassandra/dht/RingPosition;
            checkcast org.apache.cassandra.dht.Token
            iload 2 /* version */
            invokevirtual org.apache.cassandra.dht.Token$TokenSerializer.serializedSize:(Lorg/apache/cassandra/dht/Token;I)J
            ladd
            lstore 3 /* size */
         8: .line 136
            lload 3 /* size */
            getstatic org.apache.cassandra.dht.Token.serializer:Lorg/apache/cassandra/dht/Token$TokenSerializer;
            aload 1 /* mt */
            getfield org.apache.cassandra.utils.MerkleTree.fullRange:Lorg/apache/cassandra/dht/Range;
            getfield org.apache.cassandra.dht.Range.right:Lorg/apache/cassandra/dht/RingPosition;
            checkcast org.apache.cassandra.dht.Token
            iload 2 /* version */
            invokevirtual org.apache.cassandra.dht.Token$TokenSerializer.serializedSize:(Lorg/apache/cassandra/dht/Token;I)J
            ladd
            lstore 3 /* size */
         9: .line 138
            lload 3 /* size */
            getstatic org.apache.cassandra.utils.MerkleTree$Hashable.serializer:Lorg/apache/cassandra/dht/IPartitionerDependentSerializer;
            aload 1 /* mt */
            getfield org.apache.cassandra.utils.MerkleTree.root:Lorg/apache/cassandra/utils/MerkleTree$Hashable;
            iload 2 /* version */
            invokeinterface org.apache.cassandra.dht.IPartitionerDependentSerializer.serializedSize:(Ljava/lang/Object;I)J
            ladd
            lstore 3 /* size */
        10: .line 139
            lload 3 /* size */
            lreturn
        end local 3 // long size
        end local 2 // int version
        end local 1 // org.apache.cassandra.utils.MerkleTree mt
        end local 0 // org.apache.cassandra.utils.MerkleTree$MerkleTreeSerializer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0     this  Lorg/apache/cassandra/utils/MerkleTree$MerkleTreeSerializer;
            0   11     1       mt  Lorg/apache/cassandra/utils/MerkleTree;
            0   11     2  version  I
            7   11     3     size  J
    MethodParameters:
         Name  Flags
      mt       
      version  

  public void serialize(java.lang.Object, org.apache.cassandra.io.util.DataOutputPlus, int);
    descriptor: (Ljava/lang/Object;Lorg/apache/cassandra/io/util/DataOutputPlus;I)V
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=4, locals=4, args_size=4
         0: .line 1
            aload 0
            aload 1
            checkcast org.apache.cassandra.utils.MerkleTree
            aload 2
            iload 3
            invokevirtual org.apache.cassandra.utils.MerkleTree$MerkleTreeSerializer.serialize:(Lorg/apache/cassandra/utils/MerkleTree;Lorg/apache/cassandra/io/util/DataOutputPlus;I)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.io.IOException

  public long serializedSize(java.lang.Object, int);
    descriptor: (Ljava/lang/Object;I)J
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 1
            aload 0
            aload 1
            checkcast org.apache.cassandra.utils.MerkleTree
            iload 2
            invokevirtual org.apache.cassandra.utils.MerkleTree$MerkleTreeSerializer.serializedSize:(Lorg/apache/cassandra/utils/MerkleTree;I)J
            lreturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.lang.Object deserialize(org.apache.cassandra.io.util.DataInputPlus, int);
    descriptor: (Lorg/apache/cassandra/io/util/DataInputPlus;I)Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 1
            aload 0
            aload 1
            iload 2
            invokevirtual org.apache.cassandra.utils.MerkleTree$MerkleTreeSerializer.deserialize:(Lorg/apache/cassandra/io/util/DataInputPlus;I)Lorg/apache/cassandra/utils/MerkleTree;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.io.IOException
}
Signature: Ljava/lang/Object;Lorg/apache/cassandra/io/IVersionedSerializer<Lorg/apache/cassandra/utils/MerkleTree;>;
SourceFile: "MerkleTree.java"
NestHost: org.apache.cassandra.utils.MerkleTree
InnerClasses:
  public TokenSerializer = org.apache.cassandra.dht.Token$TokenSerializer of org.apache.cassandra.dht.Token
  abstract Hashable = org.apache.cassandra.utils.MerkleTree$Hashable of org.apache.cassandra.utils.MerkleTree
  public MerkleTreeSerializer = org.apache.cassandra.utils.MerkleTree$MerkleTreeSerializer of org.apache.cassandra.utils.MerkleTree