public class io.reactiverse.pgclient.impl.codec.util.Util
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: io.reactiverse.pgclient.impl.codec.util.Util
  super_class: java.lang.Object
{
  private static final byte ZERO;
    descriptor: B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

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

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.reactiverse.pgclient.impl.codec.util.Util this
         0: .line 30
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // io.reactiverse.pgclient.impl.codec.util.Util this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/reactiverse/pgclient/impl/codec/util/Util;

  public static java.lang.String readCString(io.netty.buffer.ByteBuf, java.nio.charset.Charset);
    descriptor: (Lio/netty/buffer/ByteBuf;Ljava/nio/charset/Charset;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // io.netty.buffer.ByteBuf src
        start local 1 // java.nio.charset.Charset charset
         0: .line 35
            aload 0 /* src */
            iconst_0
            invokevirtual io.netty.buffer.ByteBuf.bytesBefore:(B)I
            istore 2 /* len */
        start local 2 // int len
         1: .line 36
            aload 0 /* src */
            iload 2 /* len */
            aload 1 /* charset */
            invokevirtual io.netty.buffer.ByteBuf.readCharSequence:(ILjava/nio/charset/Charset;)Ljava/lang/CharSequence;
            invokeinterface java.lang.CharSequence.toString:()Ljava/lang/String;
            astore 3 /* s */
        start local 3 // java.lang.String s
         2: .line 37
            aload 0 /* src */
            invokevirtual io.netty.buffer.ByteBuf.readByte:()B
            pop
         3: .line 38
            aload 3 /* s */
            areturn
        end local 3 // java.lang.String s
        end local 2 // int len
        end local 1 // java.nio.charset.Charset charset
        end local 0 // io.netty.buffer.ByteBuf src
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0      src  Lio/netty/buffer/ByteBuf;
            0    4     1  charset  Ljava/nio/charset/Charset;
            1    4     2      len  I
            2    4     3        s  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      src      
      charset  

  public static java.lang.String readCStringUTF8(io.netty.buffer.ByteBuf);
    descriptor: (Lio/netty/buffer/ByteBuf;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // io.netty.buffer.ByteBuf src
         0: .line 42
            aload 0 /* src */
            iconst_0
            invokevirtual io.netty.buffer.ByteBuf.bytesBefore:(B)I
            istore 1 /* len */
        start local 1 // int len
         1: .line 43
            aload 0 /* src */
            iload 1 /* len */
            getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
            invokevirtual io.netty.buffer.ByteBuf.readCharSequence:(ILjava/nio/charset/Charset;)Ljava/lang/CharSequence;
            invokeinterface java.lang.CharSequence.toString:()Ljava/lang/String;
            astore 2 /* s */
        start local 2 // java.lang.String s
         2: .line 44
            aload 0 /* src */
            invokevirtual io.netty.buffer.ByteBuf.readByte:()B
            pop
         3: .line 45
            aload 2 /* s */
            areturn
        end local 2 // java.lang.String s
        end local 1 // int len
        end local 0 // io.netty.buffer.ByteBuf src
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0   src  Lio/netty/buffer/ByteBuf;
            1    4     1   len  I
            2    4     2     s  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      src   

  public static void writeCString(io.netty.buffer.ByteBuf, java.lang.String, java.nio.charset.Charset);
    descriptor: (Lio/netty/buffer/ByteBuf;Ljava/lang/String;Ljava/nio/charset/Charset;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // io.netty.buffer.ByteBuf dst
        start local 1 // java.lang.String s
        start local 2 // java.nio.charset.Charset charset
         0: .line 49
            aload 0 /* dst */
            aload 1 /* s */
            aload 2 /* charset */
            invokevirtual io.netty.buffer.ByteBuf.writeCharSequence:(Ljava/lang/CharSequence;Ljava/nio/charset/Charset;)I
            pop
         1: .line 50
            aload 0 /* dst */
            iconst_0
            invokevirtual io.netty.buffer.ByteBuf.writeByte:(I)Lio/netty/buffer/ByteBuf;
            pop
         2: .line 51
            return
        end local 2 // java.nio.charset.Charset charset
        end local 1 // java.lang.String s
        end local 0 // io.netty.buffer.ByteBuf dst
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0      dst  Lio/netty/buffer/ByteBuf;
            0    3     1        s  Ljava/lang/String;
            0    3     2  charset  Ljava/nio/charset/Charset;
    MethodParameters:
         Name  Flags
      dst      
      s        
      charset  

  public static void writeCString(io.netty.buffer.ByteBuf, io.netty.buffer.ByteBuf);
    descriptor: (Lio/netty/buffer/ByteBuf;Lio/netty/buffer/ByteBuf;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // io.netty.buffer.ByteBuf dst
        start local 1 // io.netty.buffer.ByteBuf buf
         0: .line 55
            aload 0 /* dst */
            aload 1 /* buf */
            aload 1 /* buf */
            invokevirtual io.netty.buffer.ByteBuf.readerIndex:()I
            aload 1 /* buf */
            invokevirtual io.netty.buffer.ByteBuf.readableBytes:()I
            invokevirtual io.netty.buffer.ByteBuf.writeBytes:(Lio/netty/buffer/ByteBuf;II)Lio/netty/buffer/ByteBuf;
            pop
         1: .line 56
            aload 0 /* dst */
            iconst_0
            invokevirtual io.netty.buffer.ByteBuf.writeByte:(I)Lio/netty/buffer/ByteBuf;
            pop
         2: .line 57
            return
        end local 1 // io.netty.buffer.ByteBuf buf
        end local 0 // io.netty.buffer.ByteBuf dst
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0   dst  Lio/netty/buffer/ByteBuf;
            0    3     1   buf  Lio/netty/buffer/ByteBuf;
    MethodParameters:
      Name  Flags
      dst   
      buf   

  public static void writeCStringUTF8(io.netty.buffer.ByteBuf, java.lang.String);
    descriptor: (Lio/netty/buffer/ByteBuf;Ljava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.netty.buffer.ByteBuf dst
        start local 1 // java.lang.String s
         0: .line 60
            aload 0 /* dst */
            aload 1 /* s */
            getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
            invokevirtual io.netty.buffer.ByteBuf.writeCharSequence:(Ljava/lang/CharSequence;Ljava/nio/charset/Charset;)I
            pop
         1: .line 61
            aload 0 /* dst */
            iconst_0
            invokevirtual io.netty.buffer.ByteBuf.writeByte:(I)Lio/netty/buffer/ByteBuf;
            pop
         2: .line 62
            return
        end local 1 // java.lang.String s
        end local 0 // io.netty.buffer.ByteBuf dst
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0   dst  Lio/netty/buffer/ByteBuf;
            0    3     1     s  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      dst   
      s     

  public static void writeCString(io.netty.buffer.ByteBuf, byte[]);
    descriptor: (Lio/netty/buffer/ByteBuf;[B)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // io.netty.buffer.ByteBuf dst
        start local 1 // byte[] bytes
         0: .line 65
            aload 0 /* dst */
            aload 1 /* bytes */
            iconst_0
            aload 1 /* bytes */
            arraylength
            invokevirtual io.netty.buffer.ByteBuf.writeBytes:([BII)Lio/netty/buffer/ByteBuf;
            pop
         1: .line 66
            aload 0 /* dst */
            iconst_0
            invokevirtual io.netty.buffer.ByteBuf.writeByte:(I)Lio/netty/buffer/ByteBuf;
            pop
         2: .line 67
            return
        end local 1 // byte[] bytes
        end local 0 // io.netty.buffer.ByteBuf dst
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0    dst  Lio/netty/buffer/ByteBuf;
            0    3     1  bytes  [B
    MethodParameters:
       Name  Flags
      dst    
      bytes  

  public static java.lang.String buildInvalidArgsError(java.util.stream.Stream<java.lang.Object>, java.util.stream.Stream<java.lang.Class>);
    descriptor: (Ljava/util/stream/Stream;Ljava/util/stream/Stream;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.util.stream.Stream values
        start local 1 // java.util.stream.Stream types
         0: .line 70
            new java.lang.StringBuilder
            dup
            ldc "Values ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* values */
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/lang/String.valueOf(Ljava/lang/Object;)Ljava/lang/String; (6)
                  (Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            ldc ", "
            invokestatic java.util.stream.Collectors.joining:(Ljava/lang/CharSequence;)Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         1: .line 71
            ldc "] cannot be coerced to ["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* types */
         2: .line 72
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/lang/Class.getSimpleName()Ljava/lang/String; (5)
                  (Ljava/lang/Class;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         3: .line 73
            ldc ", "
            invokestatic java.util.stream.Collectors.joining:(Ljava/lang/CharSequence;)Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         4: .line 70
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.util.stream.Stream types
        end local 0 // java.util.stream.Stream values
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0  values  Ljava/util/stream/Stream<Ljava/lang/Object;>;
            0    5     1   types  Ljava/util/stream/Stream<Ljava/lang/Class;>;
    Signature: (Ljava/util/stream/Stream<Ljava/lang/Object;>;Ljava/util/stream/Stream<Ljava/lang/Class;>;)Ljava/lang/String;
    MethodParameters:
        Name  Flags
      values  
      types   

  public static int writeHexString(io.vertx.core.buffer.Buffer, io.netty.buffer.ByteBuf);
    descriptor: (Lio/vertx/core/buffer/Buffer;Lio/netty/buffer/ByteBuf;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=9, args_size=2
        start local 0 // io.vertx.core.buffer.Buffer buffer
        start local 1 // io.netty.buffer.ByteBuf to
         0: .line 79
            aload 0 /* buffer */
            invokeinterface io.vertx.core.buffer.Buffer.length:()I
            istore 2 /* len */
        start local 2 // int len
         1: .line 80
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         2: goto 11
         3: .line 81
      StackMap locals: int int
      StackMap stack:
            aload 0 /* buffer */
            iload 3 /* i */
            invokeinterface io.vertx.core.buffer.Buffer.getByte:(I)B
            invokestatic java.lang.Byte.toUnsignedInt:(B)I
            istore 4 /* b */
        start local 4 // int b
         4: .line 82
            iload 4 /* b */
            iconst_4
            ishr
            istore 5 /* firstDigit */
        start local 5 // int firstDigit
         5: .line 83
            iload 5 /* firstDigit */
            invokestatic io.reactiverse.pgclient.impl.codec.util.Util.bin2hex:(I)I
            i2b
            istore 6 /* firstHexDigit */
        start local 6 // byte firstHexDigit
         6: .line 84
            iload 4 /* b */
            bipush 15
            iand
            istore 7 /* secondDigit */
        start local 7 // int secondDigit
         7: .line 85
            iload 7 /* secondDigit */
            invokestatic io.reactiverse.pgclient.impl.codec.util.Util.bin2hex:(I)I
            i2b
            istore 8 /* secondHexDigit */
        start local 8 // byte secondHexDigit
         8: .line 86
            aload 1 /* to */
            iload 6 /* firstHexDigit */
            invokevirtual io.netty.buffer.ByteBuf.writeByte:(I)Lio/netty/buffer/ByteBuf;
            pop
         9: .line 87
            aload 1 /* to */
            iload 8 /* secondHexDigit */
            invokevirtual io.netty.buffer.ByteBuf.writeByte:(I)Lio/netty/buffer/ByteBuf;
            pop
        end local 8 // byte secondHexDigit
        end local 7 // int secondDigit
        end local 6 // byte firstHexDigit
        end local 5 // int firstDigit
        end local 4 // int b
        10: .line 80
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 3 /* i */
            iload 2 /* len */
            if_icmplt 3
        end local 3 // int i
        12: .line 89
            iload 2 /* len */
            ireturn
        end local 2 // int len
        end local 1 // io.netty.buffer.ByteBuf to
        end local 0 // io.vertx.core.buffer.Buffer buffer
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   13     0          buffer  Lio/vertx/core/buffer/Buffer;
            0   13     1              to  Lio/netty/buffer/ByteBuf;
            1   13     2             len  I
            2   12     3               i  I
            4   10     4               b  I
            5   10     5      firstDigit  I
            6   10     6   firstHexDigit  B
            7   10     7     secondDigit  I
            8   10     8  secondHexDigit  B
    MethodParameters:
        Name  Flags
      buffer  
      to      

  private static int bin2hex(int);
    descriptor: (I)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // int digit
         0: .line 93
            iload 0 /* digit */
            bipush 10
            isub
            bipush 31
            ishr
            istore 1 /* isLessOrEqual9 */
        start local 1 // int isLessOrEqual9
         1: .line 96
            bipush 48
            iload 1 /* isLessOrEqual9 */
            iconst_m1
            ixor
            bipush 39
            iand
            iadd
            istore 2 /* bin2hexAsciiDistance */
        start local 2 // int bin2hexAsciiDistance
         2: .line 97
            iload 0 /* digit */
            iload 2 /* bin2hexAsciiDistance */
            iadd
            ireturn
        end local 2 // int bin2hexAsciiDistance
        end local 1 // int isLessOrEqual9
        end local 0 // int digit
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    3     0                 digit  I
            1    3     1        isLessOrEqual9  I
            2    3     2  bin2hexAsciiDistance  I
    MethodParameters:
       Name  Flags
      digit  
}
SourceFile: "Util.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles