public class com.datastax.oss.driver.internal.core.type.util.VIntCoding
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.datastax.oss.driver.internal.core.type.util.VIntCoding
  super_class: java.lang.Object
{
  private static final java.lang.ThreadLocal<byte[]> encodingBuffer;
    descriptor: Ljava/lang/ThreadLocal;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/lang/ThreadLocal<[B>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 114
            invokedynamic get()Ljava/util/function/Supplier;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  com/datastax/oss/driver/internal/core/type/util/VIntCoding.lambda$0()[B (6)
                  ()[B
            invokestatic java.lang.ThreadLocal.withInitial:(Ljava/util/function/Supplier;)Ljava/lang/ThreadLocal;
         1: .line 113
            putstatic com.datastax.oss.driver.internal.core.type.util.VIntCoding.encodingBuffer:Ljava/lang/ThreadLocal;
         2: .line 114
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.datastax.oss.driver.internal.core.type.util.VIntCoding this
         0: .line 68
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.datastax.oss.driver.internal.core.type.util.VIntCoding this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/datastax/oss/driver/internal/core/type/util/VIntCoding;

  private static long readUnsignedVInt(java.io.DataInput);
    descriptor: (Ljava/io/DataInput;)J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=1
        start local 0 // java.io.DataInput input
         0: .line 71
            aload 0 /* input */
            invokeinterface java.io.DataInput.readByte:()B
            istore 1 /* firstByte */
        start local 1 // int firstByte
         1: .line 74
            iload 1 /* firstByte */
            iflt 3
         2: .line 75
            iload 1 /* firstByte */
            i2l
            lreturn
         3: .line 78
      StackMap locals: int
      StackMap stack:
            iload 1 /* firstByte */
            invokestatic com.datastax.oss.driver.internal.core.type.util.VIntCoding.numberOfExtraBytesToRead:(I)I
            istore 2 /* size */
        start local 2 // int size
         4: .line 79
            iload 1 /* firstByte */
            iload 2 /* size */
            invokestatic com.datastax.oss.driver.internal.core.type.util.VIntCoding.firstByteValueMask:(I)I
            iand
            i2l
            lstore 3 /* retval */
        start local 3 // long retval
         5: .line 80
            iconst_0
            istore 5 /* ii */
        start local 5 // int ii
         6: goto 11
         7: .line 81
      StackMap locals: int long int
      StackMap stack:
            aload 0 /* input */
            invokeinterface java.io.DataInput.readByte:()B
            istore 6 /* b */
        start local 6 // byte b
         8: .line 82
            lload 3 /* retval */
            bipush 8
            lshl
            lstore 3 /* retval */
         9: .line 83
            lload 3 /* retval */
            iload 6 /* b */
            sipush 255
            iand
            i2l
            lor
            lstore 3 /* retval */
        end local 6 // byte b
        10: .line 80
            iinc 5 /* ii */ 1
      StackMap locals:
      StackMap stack:
        11: iload 5 /* ii */
            iload 2 /* size */
            if_icmplt 7
        end local 5 // int ii
        12: .line 86
            lload 3 /* retval */
            lreturn
        end local 3 // long retval
        end local 2 // int size
        end local 1 // int firstByte
        end local 0 // java.io.DataInput input
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   13     0      input  Ljava/io/DataInput;
            1   13     1  firstByte  I
            4   13     2       size  I
            5   13     3     retval  J
            6   12     5         ii  I
            8   10     6          b  B
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      input  

  public static long readVInt(java.io.DataInput);
    descriptor: (Ljava/io/DataInput;)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.io.DataInput input
         0: .line 90
            aload 0 /* input */
            invokestatic com.datastax.oss.driver.internal.core.type.util.VIntCoding.readUnsignedVInt:(Ljava/io/DataInput;)J
            invokestatic com.datastax.oss.driver.internal.core.type.util.VIntCoding.decodeZigZag64:(J)J
            lreturn
        end local 0 // java.io.DataInput input
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  input  Ljava/io/DataInput;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      input  

  private static int firstByteValueMask(int);
    descriptor: (I)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // int extraBytesToRead
         0: .line 97
            sipush 255
            iload 0 /* extraBytesToRead */
            ishr
            ireturn
        end local 0 // int extraBytesToRead
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    1     0  extraBytesToRead  I
    MethodParameters:
                  Name  Flags
      extraBytesToRead  

  private static byte encodeExtraBytesToRead(int);
    descriptor: (I)B
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // int extraBytesToRead
         0: .line 102
            iload 0 /* extraBytesToRead */
            invokestatic com.datastax.oss.driver.internal.core.type.util.VIntCoding.firstByteValueMask:(I)I
            iconst_m1
            ixor
            i2b
            ireturn
        end local 0 // int extraBytesToRead
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    1     0  extraBytesToRead  I
    MethodParameters:
                  Name  Flags
      extraBytesToRead  

  private static int numberOfExtraBytesToRead(int);
    descriptor: (I)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // int firstByte
         0: .line 110
            iload 0 /* firstByte */
            iconst_m1
            ixor
            invokestatic java.lang.Integer.numberOfLeadingZeros:(I)I
            bipush 24
            isub
            ireturn
        end local 0 // int firstByte
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0  firstByte  I
    MethodParameters:
           Name  Flags
      firstByte  

  private static void writeUnsignedVInt(long, java.io.DataOutput);
    descriptor: (JLjava/io/DataOutput;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // long value
        start local 2 // java.io.DataOutput output
         0: .line 117
            lload 0 /* value */
            invokestatic com.datastax.oss.driver.internal.core.type.util.VIntCoding.computeUnsignedVIntSize:(J)I
            istore 3 /* size */
        start local 3 // int size
         1: .line 118
            iload 3 /* size */
            iconst_1
            if_icmpne 4
         2: .line 119
            aload 2 /* output */
            lload 0 /* value */
            l2i
            invokeinterface java.io.DataOutput.write:(I)V
         3: .line 120
            return
         4: .line 123
      StackMap locals: int
      StackMap stack:
            aload 2 /* output */
            lload 0 /* value */
            iload 3 /* size */
            invokestatic com.datastax.oss.driver.internal.core.type.util.VIntCoding.encodeVInt:(JI)[B
            iconst_0
            iload 3 /* size */
            invokeinterface java.io.DataOutput.write:([BII)V
         5: .line 124
            return
        end local 3 // int size
        end local 2 // java.io.DataOutput output
        end local 0 // long value
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0   value  J
            0    6     2  output  Ljava/io/DataOutput;
            1    6     3    size  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      value   
      output  

  private static byte[] encodeVInt(long, int);
    descriptor: (JI)[B
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // long value
        start local 2 // int size
         0: .line 127
            getstatic com.datastax.oss.driver.internal.core.type.util.VIntCoding.encodingBuffer:Ljava/lang/ThreadLocal;
            invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
            checkcast byte[]
            astore 3 /* encodingSpace */
        start local 3 // byte[] encodingSpace
         1: .line 128
            iload 2 /* size */
            iconst_1
            isub
            istore 4 /* extraBytes */
        start local 4 // int extraBytes
         2: .line 130
            iload 4 /* extraBytes */
            istore 5 /* i */
        start local 5 // int i
         3: goto 7
         4: .line 131
      StackMap locals: byte[] int int
      StackMap stack:
            aload 3 /* encodingSpace */
            iload 5 /* i */
            lload 0 /* value */
            l2i
            i2b
            bastore
         5: .line 132
            lload 0 /* value */
            bipush 8
            lshr
            lstore 0 /* value */
         6: .line 130
            iinc 5 /* i */ -1
      StackMap locals:
      StackMap stack:
         7: iload 5 /* i */
            ifge 4
        end local 5 // int i
         8: .line 134
            aload 3 /* encodingSpace */
            iconst_0
            dup2
            baload
            iload 4 /* extraBytes */
            invokestatic com.datastax.oss.driver.internal.core.type.util.VIntCoding.encodeExtraBytesToRead:(I)B
            ior
            i2b
            bastore
         9: .line 135
            aload 3 /* encodingSpace */
            areturn
        end local 4 // int extraBytes
        end local 3 // byte[] encodingSpace
        end local 2 // int size
        end local 0 // long value
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   10     0          value  J
            0   10     2           size  I
            1   10     3  encodingSpace  [B
            2   10     4     extraBytes  I
            3    8     5              i  I
    MethodParameters:
       Name  Flags
      value  
      size   

  public static void writeVInt(long, java.io.DataOutput);
    descriptor: (JLjava/io/DataOutput;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // long value
        start local 2 // java.io.DataOutput output
         0: .line 139
            lload 0 /* value */
            invokestatic com.datastax.oss.driver.internal.core.type.util.VIntCoding.encodeZigZag64:(J)J
            aload 2 /* output */
            invokestatic com.datastax.oss.driver.internal.core.type.util.VIntCoding.writeUnsignedVInt:(JLjava/io/DataOutput;)V
         1: .line 140
            return
        end local 2 // java.io.DataOutput output
        end local 0 // long value
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0   value  J
            0    2     2  output  Ljava/io/DataOutput;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      value   
      output  

  private static long decodeZigZag64(long);
    descriptor: (J)J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // long n
         0: .line 152
            lload 0 /* n */
            iconst_1
            lushr
            lload 0 /* n */
            lconst_1
            land
            lneg
            lxor
            lreturn
        end local 0 // long n
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     n  J
    MethodParameters:
      Name  Flags
      n     final

  private static long encodeZigZag64(long);
    descriptor: (J)J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // long n
         0: .line 166
            lload 0 /* n */
            iconst_1
            lshl
            lload 0 /* n */
            bipush 63
            lshr
            lxor
            lreturn
        end local 0 // long n
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     n  J
    MethodParameters:
      Name  Flags
      n     final

  public static int computeVIntSize(long);
    descriptor: (J)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // long param
         0: .line 171
            lload 0 /* param */
            invokestatic com.datastax.oss.driver.internal.core.type.util.VIntCoding.encodeZigZag64:(J)J
            invokestatic com.datastax.oss.driver.internal.core.type.util.VIntCoding.computeUnsignedVIntSize:(J)I
            ireturn
        end local 0 // long param
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  param  J
    MethodParameters:
       Name  Flags
      param  final

  private static int computeUnsignedVIntSize(long);
    descriptor: (J)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // long value
         0: .line 178
            lload 0 /* value */
            lconst_1
            lor
         1: .line 177
            invokestatic java.lang.Long.numberOfLeadingZeros:(J)I
         2: .line 176
            istore 2 /* magnitude */
        start local 2 // int magnitude
         3: .line 179
            sipush 639
            iload 2 /* magnitude */
            bipush 9
            imul
            isub
            bipush 6
            ishr
            ireturn
        end local 2 // int magnitude
        end local 0 // long value
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0      value  J
            3    4     2  magnitude  I
    MethodParameters:
       Name  Flags
      value  final

  private static byte[] lambda$0();
    descriptor: ()[B
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 114
            bipush 9
            newarray 8
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "VIntCoding.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles