public abstract class com.google.protobuf.CodedInputStream
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: com.google.protobuf.CodedInputStream
  super_class: java.lang.Object
{
  private static final int DEFAULT_BUFFER_SIZE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 4096

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

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

  int recursionDepth;
    descriptor: I
    flags: (0x0000) 

  int recursionLimit;
    descriptor: I
    flags: (0x0000) 

  int sizeLimit;
    descriptor: I
    flags: (0x0000) 

  com.google.protobuf.CodedInputStreamReader wrapper;
    descriptor: Lcom/google/protobuf/CodedInputStreamReader;
    flags: (0x0000) 

  private boolean shouldDiscardUnknownFields;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  public static com.google.protobuf.CodedInputStream newInstance(java.io.InputStream);
    descriptor: (Ljava/io/InputStream;)Lcom/google/protobuf/CodedInputStream;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.io.InputStream input
         0: .line 80
            aload 0 /* input */
            sipush 4096
            invokestatic com.google.protobuf.CodedInputStream.newInstance:(Ljava/io/InputStream;I)Lcom/google/protobuf/CodedInputStream;
            areturn
        end local 0 // java.io.InputStream input
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  input  Ljava/io/InputStream;
    MethodParameters:
       Name  Flags
      input  final

  public static com.google.protobuf.CodedInputStream newInstance(java.io.InputStream, int);
    descriptor: (Ljava/io/InputStream;I)Lcom/google/protobuf/CodedInputStream;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.io.InputStream input
        start local 1 // int bufferSize
         0: .line 85
            iload 1 /* bufferSize */
            ifgt 2
         1: .line 86
            new java.lang.IllegalArgumentException
            dup
            ldc "bufferSize must be > 0"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 88
      StackMap locals:
      StackMap stack:
            aload 0 /* input */
            ifnonnull 4
         3: .line 90
            getstatic com.google.protobuf.Internal.EMPTY_BYTE_ARRAY:[B
            invokestatic com.google.protobuf.CodedInputStream.newInstance:([B)Lcom/google/protobuf/CodedInputStream;
            areturn
         4: .line 92
      StackMap locals:
      StackMap stack:
            new com.google.protobuf.CodedInputStream$StreamDecoder
            dup
            aload 0 /* input */
            iload 1 /* bufferSize */
            invokespecial com.google.protobuf.CodedInputStream$StreamDecoder.<init>:(Ljava/io/InputStream;I)V
            areturn
        end local 1 // int bufferSize
        end local 0 // java.io.InputStream input
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0       input  Ljava/io/InputStream;
            0    5     1  bufferSize  I
    MethodParameters:
            Name  Flags
      input       final
      bufferSize  

  public static com.google.protobuf.CodedInputStream newInstance(java.lang.Iterable<java.nio.ByteBuffer>);
    descriptor: (Ljava/lang/Iterable;)Lcom/google/protobuf/CodedInputStream;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.Iterable input
         0: .line 97
            invokestatic com.google.protobuf.CodedInputStream$UnsafeDirectNioDecoder.isSupported:()Z
            ifne 2
         1: .line 98
            new com.google.protobuf.IterableByteBufferInputStream
            dup
            aload 0 /* input */
            invokespecial com.google.protobuf.IterableByteBufferInputStream.<init>:(Ljava/lang/Iterable;)V
            invokestatic com.google.protobuf.CodedInputStream.newInstance:(Ljava/io/InputStream;)Lcom/google/protobuf/CodedInputStream;
            areturn
         2: .line 100
      StackMap locals:
      StackMap stack:
            aload 0 /* input */
            iconst_0
            invokestatic com.google.protobuf.CodedInputStream.newInstance:(Ljava/lang/Iterable;Z)Lcom/google/protobuf/CodedInputStream;
            areturn
        end local 0 // java.lang.Iterable input
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0  input  Ljava/lang/Iterable<Ljava/nio/ByteBuffer;>;
    Signature: (Ljava/lang/Iterable<Ljava/nio/ByteBuffer;>;)Lcom/google/protobuf/CodedInputStream;
    MethodParameters:
       Name  Flags
      input  final

  static com.google.protobuf.CodedInputStream newInstance(java.lang.Iterable<java.nio.ByteBuffer>, boolean);
    descriptor: (Ljava/lang/Iterable;Z)Lcom/google/protobuf/CodedInputStream;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // java.lang.Iterable bufs
        start local 1 // boolean bufferIsImmutable
         0: .line 111
            iconst_0
            istore 2 /* flag */
        start local 2 // int flag
         1: .line 113
            iconst_0
            istore 3 /* totalSize */
        start local 3 // int totalSize
         2: .line 114
            aload 0 /* bufs */
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 5
            goto 12
      StackMap locals: java.lang.Iterable int int int top java.util.Iterator
      StackMap stack:
         3: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.nio.ByteBuffer
            astore 4 /* buf */
        start local 4 // java.nio.ByteBuffer buf
         4: .line 115
            iload 3 /* totalSize */
            aload 4 /* buf */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            iadd
            istore 3 /* totalSize */
         5: .line 116
            aload 4 /* buf */
            invokevirtual java.nio.ByteBuffer.hasArray:()Z
            ifeq 8
         6: .line 117
            iload 2 /* flag */
            iconst_1
            ior
            istore 2 /* flag */
         7: .line 118
            goto 12
      StackMap locals: java.lang.Iterable int int int java.nio.ByteBuffer java.util.Iterator
      StackMap stack:
         8: aload 4 /* buf */
            invokevirtual java.nio.ByteBuffer.isDirect:()Z
            ifeq 11
         9: .line 119
            iload 2 /* flag */
            iconst_2
            ior
            istore 2 /* flag */
        10: .line 120
            goto 12
        11: .line 121
      StackMap locals:
      StackMap stack:
            iload 2 /* flag */
            iconst_4
            ior
            istore 2 /* flag */
        end local 4 // java.nio.ByteBuffer buf
        12: .line 114
      StackMap locals: java.lang.Iterable int int int top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        13: .line 124
            iload 2 /* flag */
            iconst_2
            if_icmpne 15
        14: .line 125
            new com.google.protobuf.CodedInputStream$IterableDirectByteBufferDecoder
            dup
            aload 0 /* bufs */
            iload 3 /* totalSize */
            iload 1 /* bufferIsImmutable */
            invokespecial com.google.protobuf.CodedInputStream$IterableDirectByteBufferDecoder.<init>:(Ljava/lang/Iterable;IZ)V
            areturn
        15: .line 128
      StackMap locals: java.lang.Iterable int int int
      StackMap stack:
            new com.google.protobuf.IterableByteBufferInputStream
            dup
            aload 0 /* bufs */
            invokespecial com.google.protobuf.IterableByteBufferInputStream.<init>:(Ljava/lang/Iterable;)V
            invokestatic com.google.protobuf.CodedInputStream.newInstance:(Ljava/io/InputStream;)Lcom/google/protobuf/CodedInputStream;
            areturn
        end local 3 // int totalSize
        end local 2 // int flag
        end local 1 // boolean bufferIsImmutable
        end local 0 // java.lang.Iterable bufs
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   16     0               bufs  Ljava/lang/Iterable<Ljava/nio/ByteBuffer;>;
            0   16     1  bufferIsImmutable  Z
            1   16     2               flag  I
            2   16     3          totalSize  I
            4   12     4                buf  Ljava/nio/ByteBuffer;
    Signature: (Ljava/lang/Iterable<Ljava/nio/ByteBuffer;>;Z)Lcom/google/protobuf/CodedInputStream;
    MethodParameters:
                   Name  Flags
      bufs               final
      bufferIsImmutable  final

  public static com.google.protobuf.CodedInputStream newInstance(byte[]);
    descriptor: ([B)Lcom/google/protobuf/CodedInputStream;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // byte[] buf
         0: .line 134
            aload 0 /* buf */
            iconst_0
            aload 0 /* buf */
            arraylength
            invokestatic com.google.protobuf.CodedInputStream.newInstance:([BII)Lcom/google/protobuf/CodedInputStream;
            areturn
        end local 0 // byte[] buf
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   buf  [B
    MethodParameters:
      Name  Flags
      buf   final

  public static com.google.protobuf.CodedInputStream newInstance(byte[], int, int);
    descriptor: ([BII)Lcom/google/protobuf/CodedInputStream;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // byte[] buf
        start local 1 // int off
        start local 2 // int len
         0: .line 139
            aload 0 /* buf */
            iload 1 /* off */
            iload 2 /* len */
            iconst_0
            invokestatic com.google.protobuf.CodedInputStream.newInstance:([BIIZ)Lcom/google/protobuf/CodedInputStream;
            areturn
        end local 2 // int len
        end local 1 // int off
        end local 0 // byte[] buf
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   buf  [B
            0    1     1   off  I
            0    1     2   len  I
    MethodParameters:
      Name  Flags
      buf   final
      off   final
      len   final

  static com.google.protobuf.CodedInputStream newInstance(byte[], int, int, boolean);
    descriptor: ([BIIZ)Lcom/google/protobuf/CodedInputStream;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=6, args_size=4
        start local 0 // byte[] buf
        start local 1 // int off
        start local 2 // int len
        start local 3 // boolean bufferIsImmutable
         0: .line 145
            new com.google.protobuf.CodedInputStream$ArrayDecoder
            dup
            aload 0 /* buf */
            iload 1 /* off */
            iload 2 /* len */
            iload 3 /* bufferIsImmutable */
            invokespecial com.google.protobuf.CodedInputStream$ArrayDecoder.<init>:([BIIZ)V
            astore 4 /* result */
        start local 4 // com.google.protobuf.CodedInputStream$ArrayDecoder result
         1: .line 152
            aload 4 /* result */
            iload 2 /* len */
            invokevirtual com.google.protobuf.CodedInputStream$ArrayDecoder.pushLimit:(I)I
            pop
         2: .line 153
            goto 5
      StackMap locals: byte[] int int int com.google.protobuf.CodedInputStream$ArrayDecoder
      StackMap stack: com.google.protobuf.InvalidProtocolBufferException
         3: astore 5 /* ex */
        start local 5 // com.google.protobuf.InvalidProtocolBufferException ex
         4: .line 161
            new java.lang.IllegalArgumentException
            dup
            aload 5 /* ex */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 5 // com.google.protobuf.InvalidProtocolBufferException ex
         5: .line 163
      StackMap locals:
      StackMap stack:
            aload 4 /* result */
            areturn
        end local 4 // com.google.protobuf.CodedInputStream$ArrayDecoder result
        end local 3 // boolean bufferIsImmutable
        end local 2 // int len
        end local 1 // int off
        end local 0 // byte[] buf
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    6     0                buf  [B
            0    6     1                off  I
            0    6     2                len  I
            0    6     3  bufferIsImmutable  Z
            1    6     4             result  Lcom/google/protobuf/CodedInputStream$ArrayDecoder;
            4    5     5                 ex  Lcom/google/protobuf/InvalidProtocolBufferException;
      Exception table:
        from    to  target  type
           1     2       3  Class com.google.protobuf.InvalidProtocolBufferException
    MethodParameters:
                   Name  Flags
      buf                final
      off                final
      len                final
      bufferIsImmutable  final

  public static com.google.protobuf.CodedInputStream newInstance(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)Lcom/google/protobuf/CodedInputStream;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.nio.ByteBuffer buf
         0: .line 175
            aload 0 /* buf */
            iconst_0
            invokestatic com.google.protobuf.CodedInputStream.newInstance:(Ljava/nio/ByteBuffer;Z)Lcom/google/protobuf/CodedInputStream;
            areturn
        end local 0 // java.nio.ByteBuffer buf
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   buf  Ljava/nio/ByteBuffer;
    MethodParameters:
      Name  Flags
      buf   

  static com.google.protobuf.CodedInputStream newInstance(java.nio.ByteBuffer, boolean);
    descriptor: (Ljava/nio/ByteBuffer;Z)Lcom/google/protobuf/CodedInputStream;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // java.nio.ByteBuffer buf
        start local 1 // boolean bufferIsImmutable
         0: .line 180
            aload 0 /* buf */
            invokevirtual java.nio.ByteBuffer.hasArray:()Z
            ifeq 3
         1: .line 182
            aload 0 /* buf */
            invokevirtual java.nio.ByteBuffer.array:()[B
            aload 0 /* buf */
            invokevirtual java.nio.ByteBuffer.arrayOffset:()I
            aload 0 /* buf */
            invokevirtual java.nio.ByteBuffer.position:()I
            iadd
            aload 0 /* buf */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            iload 1 /* bufferIsImmutable */
         2: .line 181
            invokestatic com.google.protobuf.CodedInputStream.newInstance:([BIIZ)Lcom/google/protobuf/CodedInputStream;
            areturn
         3: .line 185
      StackMap locals:
      StackMap stack:
            aload 0 /* buf */
            invokevirtual java.nio.ByteBuffer.isDirect:()Z
            ifeq 5
            invokestatic com.google.protobuf.CodedInputStream$UnsafeDirectNioDecoder.isSupported:()Z
            ifeq 5
         4: .line 186
            new com.google.protobuf.CodedInputStream$UnsafeDirectNioDecoder
            dup
            aload 0 /* buf */
            iload 1 /* bufferIsImmutable */
            invokespecial com.google.protobuf.CodedInputStream$UnsafeDirectNioDecoder.<init>:(Ljava/nio/ByteBuffer;Z)V
            areturn
         5: .line 192
      StackMap locals:
      StackMap stack:
            aload 0 /* buf */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            newarray 8
            astore 2 /* buffer */
        start local 2 // byte[] buffer
         6: .line 193
            aload 0 /* buf */
            invokevirtual java.nio.ByteBuffer.duplicate:()Ljava/nio/ByteBuffer;
            aload 2 /* buffer */
            invokevirtual java.nio.ByteBuffer.get:([B)Ljava/nio/ByteBuffer;
            pop
         7: .line 194
            aload 2 /* buffer */
            iconst_0
            aload 2 /* buffer */
            arraylength
            iconst_1
            invokestatic com.google.protobuf.CodedInputStream.newInstance:([BIIZ)Lcom/google/protobuf/CodedInputStream;
            areturn
        end local 2 // byte[] buffer
        end local 1 // boolean bufferIsImmutable
        end local 0 // java.nio.ByteBuffer buf
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    8     0                buf  Ljava/nio/ByteBuffer;
            0    8     1  bufferIsImmutable  Z
            6    8     2             buffer  [B
    MethodParameters:
                   Name  Flags
      buf                
      bufferIsImmutable  

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.google.protobuf.CodedInputStream this
         0: .line 198
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 70
            aload 0 /* this */
            bipush 100
            putfield com.google.protobuf.CodedInputStream.recursionLimit:I
         2: .line 73
            aload 0 /* this */
            ldc 2147483647
            putfield com.google.protobuf.CodedInputStream.sizeLimit:I
         3: .line 419
            aload 0 /* this */
            iconst_0
            putfield com.google.protobuf.CodedInputStream.shouldDiscardUnknownFields:Z
         4: .line 198
            return
        end local 0 // com.google.protobuf.CodedInputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/google/protobuf/CodedInputStream;

  public abstract int readTag();
    descriptor: ()I
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException

  public abstract void checkLastTagWas(int);
    descriptor: (I)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws com.google.protobuf.InvalidProtocolBufferException
    MethodParameters:
       Name  Flags
      value  final

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

  public abstract boolean skipField(int);
    descriptor: (I)Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      tag   final

  public abstract boolean skipField(int, com.google.protobuf.CodedOutputStream);
    descriptor: (ILcom/google/protobuf/CodedOutputStream;)Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
        Name  Flags
      tag     final
      output  final

  public abstract void skipMessage();
    descriptor: ()V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException

  public abstract void skipMessage(com.google.protobuf.CodedOutputStream);
    descriptor: (Lcom/google/protobuf/CodedOutputStream;)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      output  

  public abstract double readDouble();
    descriptor: ()D
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException

  public abstract float readFloat();
    descriptor: ()F
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException

  public abstract long readUInt64();
    descriptor: ()J
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException

  public abstract long readInt64();
    descriptor: ()J
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException

  public abstract int readInt32();
    descriptor: ()I
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException

  public abstract long readFixed64();
    descriptor: ()J
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException

  public abstract int readFixed32();
    descriptor: ()I
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException

  public abstract boolean readBool();
    descriptor: ()Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException

  public abstract java.lang.String readString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException

  public abstract java.lang.String readStringRequireUtf8();
    descriptor: ()Ljava/lang/String;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException

  public abstract void readGroup(int, com.google.protobuf.MessageLite$Builder, com.google.protobuf.ExtensionRegistryLite);
    descriptor: (ILcom/google/protobuf/MessageLite$Builder;Lcom/google/protobuf/ExtensionRegistryLite;)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                   Name  Flags
      fieldNumber        final
      builder            final
      extensionRegistry  final

  public abstract <T extends com.google.protobuf.MessageLite> T readGroup(int, com.google.protobuf.Parser<T>, com.google.protobuf.ExtensionRegistryLite);
    descriptor: (ILcom/google/protobuf/Parser;Lcom/google/protobuf/ExtensionRegistryLite;)Lcom/google/protobuf/MessageLite;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException
    Signature: <T::Lcom/google/protobuf/MessageLite;>(ILcom/google/protobuf/Parser<TT;>;Lcom/google/protobuf/ExtensionRegistryLite;)TT;
    MethodParameters:
                   Name  Flags
      fieldNumber        final
      parser             final
      extensionRegistry  final

  public abstract void readUnknownGroup(int, com.google.protobuf.MessageLite$Builder);
    descriptor: (ILcom/google/protobuf/MessageLite$Builder;)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
             Name  Flags
      fieldNumber  final
      builder      final

  public abstract void readMessage(com.google.protobuf.MessageLite$Builder, com.google.protobuf.ExtensionRegistryLite);
    descriptor: (Lcom/google/protobuf/MessageLite$Builder;Lcom/google/protobuf/ExtensionRegistryLite;)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                   Name  Flags
      builder            final
      extensionRegistry  final

  public abstract <T extends com.google.protobuf.MessageLite> T readMessage(com.google.protobuf.Parser<T>, com.google.protobuf.ExtensionRegistryLite);
    descriptor: (Lcom/google/protobuf/Parser;Lcom/google/protobuf/ExtensionRegistryLite;)Lcom/google/protobuf/MessageLite;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException
    Signature: <T::Lcom/google/protobuf/MessageLite;>(Lcom/google/protobuf/Parser<TT;>;Lcom/google/protobuf/ExtensionRegistryLite;)TT;
    MethodParameters:
                   Name  Flags
      parser             final
      extensionRegistry  final

  public abstract com.google.protobuf.ByteString readBytes();
    descriptor: ()Lcom/google/protobuf/ByteString;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException

  public abstract byte[] readByteArray();
    descriptor: ()[B
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException

  public abstract java.nio.ByteBuffer readByteBuffer();
    descriptor: ()Ljava/nio/ByteBuffer;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException

  public abstract int readUInt32();
    descriptor: ()I
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException

  public abstract int readEnum();
    descriptor: ()I
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException

  public abstract int readSFixed32();
    descriptor: ()I
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException

  public abstract long readSFixed64();
    descriptor: ()J
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException

  public abstract int readSInt32();
    descriptor: ()I
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException

  public abstract long readSInt64();
    descriptor: ()J
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException

  public abstract int readRawVarint32();
    descriptor: ()I
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException

  public abstract long readRawVarint64();
    descriptor: ()J
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException

  abstract long readRawVarint64SlowPath();
    descriptor: ()J
    flags: (0x0400) ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException

  public abstract int readRawLittleEndian32();
    descriptor: ()I
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException

  public abstract long readRawLittleEndian64();
    descriptor: ()J
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException

  public abstract void enableAliasing(boolean);
    descriptor: (Z)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
         Name  Flags
      enabled  

  public final int setRecursionLimit(int);
    descriptor: (I)I
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // com.google.protobuf.CodedInputStream this
        start local 1 // int limit
         0: .line 388
            iload 1 /* limit */
            ifge 2
         1: .line 389
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Recursion limit cannot be negative: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* limit */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 391
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.google.protobuf.CodedInputStream.recursionLimit:I
            istore 2 /* oldLimit */
        start local 2 // int oldLimit
         3: .line 392
            aload 0 /* this */
            iload 1 /* limit */
            putfield com.google.protobuf.CodedInputStream.recursionLimit:I
         4: .line 393
            iload 2 /* oldLimit */
            ireturn
        end local 2 // int oldLimit
        end local 1 // int limit
        end local 0 // com.google.protobuf.CodedInputStream this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lcom/google/protobuf/CodedInputStream;
            0    5     1     limit  I
            3    5     2  oldLimit  I
    MethodParameters:
       Name  Flags
      limit  final

  public final int setSizeLimit(int);
    descriptor: (I)I
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // com.google.protobuf.CodedInputStream this
        start local 1 // int limit
         0: .line 411
            iload 1 /* limit */
            ifge 2
         1: .line 412
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Size limit cannot be negative: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* limit */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 414
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.google.protobuf.CodedInputStream.sizeLimit:I
            istore 2 /* oldLimit */
        start local 2 // int oldLimit
         3: .line 415
            aload 0 /* this */
            iload 1 /* limit */
            putfield com.google.protobuf.CodedInputStream.sizeLimit:I
         4: .line 416
            iload 2 /* oldLimit */
            ireturn
        end local 2 // int oldLimit
        end local 1 // int limit
        end local 0 // com.google.protobuf.CodedInputStream this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lcom/google/protobuf/CodedInputStream;
            0    5     1     limit  I
            3    5     2  oldLimit  I
    MethodParameters:
       Name  Flags
      limit  final

  final void discardUnknownFields();
    descriptor: ()V
    flags: (0x0010) ACC_FINAL
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.google.protobuf.CodedInputStream this
         0: .line 430
            aload 0 /* this */
            iconst_1
            putfield com.google.protobuf.CodedInputStream.shouldDiscardUnknownFields:Z
         1: .line 431
            return
        end local 0 // com.google.protobuf.CodedInputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/google/protobuf/CodedInputStream;

  final void unsetDiscardUnknownFields();
    descriptor: ()V
    flags: (0x0010) ACC_FINAL
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.google.protobuf.CodedInputStream this
         0: .line 438
            aload 0 /* this */
            iconst_0
            putfield com.google.protobuf.CodedInputStream.shouldDiscardUnknownFields:Z
         1: .line 439
            return
        end local 0 // com.google.protobuf.CodedInputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/google/protobuf/CodedInputStream;

  final boolean shouldDiscardUnknownFields();
    descriptor: ()Z
    flags: (0x0010) ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.google.protobuf.CodedInputStream this
         0: .line 446
            aload 0 /* this */
            getfield com.google.protobuf.CodedInputStream.shouldDiscardUnknownFields:Z
            ireturn
        end local 0 // com.google.protobuf.CodedInputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/protobuf/CodedInputStream;

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

  public abstract int pushLimit(int);
    descriptor: (I)I
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws com.google.protobuf.InvalidProtocolBufferException
    MethodParameters:
           Name  Flags
      byteLimit  

  public abstract void popLimit(int);
    descriptor: (I)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
          Name  Flags
      oldLimit  final

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

  public abstract boolean isAtEnd();
    descriptor: ()Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException

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

  public abstract byte readRawByte();
    descriptor: ()B
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException

  public abstract byte[] readRawBytes(int);
    descriptor: (I)[B
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      size  final

  public abstract void skipRawBytes(int);
    descriptor: (I)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      size  final

  public static int decodeZigZag32(int);
    descriptor: (I)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // int n
         0: .line 529
            iload 0 /* n */
            iconst_1
            iushr
            iload 0 /* n */
            iconst_1
            iand
            ineg
            ixor
            ireturn
        end local 0 // int n
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     n  I
    MethodParameters:
      Name  Flags
      n     final

  public static long decodeZigZag64(long);
    descriptor: (J)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // long n
         0: .line 542
            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

  public static int readRawVarint32(int, java.io.InputStream);
    descriptor: (ILjava/io/InputStream;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // int firstByte
        start local 1 // java.io.InputStream input
         0: .line 551
            iload 0 /* firstByte */
            sipush 128
            iand
            ifne 2
         1: .line 552
            iload 0 /* firstByte */
            ireturn
         2: .line 555
      StackMap locals:
      StackMap stack:
            iload 0 /* firstByte */
            bipush 127
            iand
            istore 2 /* result */
        start local 2 // int result
         3: .line 556
            bipush 7
            istore 3 /* offset */
        start local 3 // int offset
         4: .line 557
            goto 12
         5: .line 558
      StackMap locals: int int
      StackMap stack:
            aload 1 /* input */
            invokevirtual java.io.InputStream.read:()I
            istore 4 /* b */
        start local 4 // int b
         6: .line 559
            iload 4 /* b */
            iconst_m1
            if_icmpne 8
         7: .line 560
            invokestatic com.google.protobuf.InvalidProtocolBufferException.truncatedMessage:()Lcom/google/protobuf/InvalidProtocolBufferException;
            athrow
         8: .line 562
      StackMap locals: int
      StackMap stack:
            iload 2 /* result */
            iload 4 /* b */
            bipush 127
            iand
            iload 3 /* offset */
            ishl
            ior
            istore 2 /* result */
         9: .line 563
            iload 4 /* b */
            sipush 128
            iand
            ifne 11
        10: .line 564
            iload 2 /* result */
            ireturn
        end local 4 // int b
        11: .line 557
      StackMap locals:
      StackMap stack:
            iinc 3 /* offset */ 7
      StackMap locals:
      StackMap stack:
        12: iload 3 /* offset */
            bipush 32
            if_icmplt 5
        13: .line 568
            goto 20
        14: .line 569
      StackMap locals:
      StackMap stack:
            aload 1 /* input */
            invokevirtual java.io.InputStream.read:()I
            istore 4 /* b */
        start local 4 // int b
        15: .line 570
            iload 4 /* b */
            iconst_m1
            if_icmpne 17
        16: .line 571
            invokestatic com.google.protobuf.InvalidProtocolBufferException.truncatedMessage:()Lcom/google/protobuf/InvalidProtocolBufferException;
            athrow
        17: .line 573
      StackMap locals: int
      StackMap stack:
            iload 4 /* b */
            sipush 128
            iand
            ifne 19
        18: .line 574
            iload 2 /* result */
            ireturn
        end local 4 // int b
        19: .line 568
      StackMap locals:
      StackMap stack:
            iinc 3 /* offset */ 7
      StackMap locals:
      StackMap stack:
        20: iload 3 /* offset */
            bipush 64
            if_icmplt 14
        21: .line 577
            invokestatic com.google.protobuf.InvalidProtocolBufferException.malformedVarint:()Lcom/google/protobuf/InvalidProtocolBufferException;
            athrow
        end local 3 // int offset
        end local 2 // int result
        end local 1 // java.io.InputStream input
        end local 0 // int firstByte
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   22     0  firstByte  I
            0   22     1      input  Ljava/io/InputStream;
            3   22     2     result  I
            4   22     3     offset  I
            6   11     4          b  I
           15   19     4          b  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      firstByte  final
      input      final

  static int readRawVarint32(java.io.InputStream);
    descriptor: (Ljava/io/InputStream;)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.io.InputStream input
         0: .line 587
            aload 0 /* input */
            invokevirtual java.io.InputStream.read:()I
            istore 1 /* firstByte */
        start local 1 // int firstByte
         1: .line 588
            iload 1 /* firstByte */
            iconst_m1
            if_icmpne 3
         2: .line 589
            invokestatic com.google.protobuf.InvalidProtocolBufferException.truncatedMessage:()Lcom/google/protobuf/InvalidProtocolBufferException;
            athrow
         3: .line 591
      StackMap locals: int
      StackMap stack:
            iload 1 /* firstByte */
            aload 0 /* input */
            invokestatic com.google.protobuf.CodedInputStream.readRawVarint32:(ILjava/io/InputStream;)I
            ireturn
        end local 1 // int firstByte
        end local 0 // java.io.InputStream input
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0      input  Ljava/io/InputStream;
            1    4     1  firstByte  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      input  final
}
SourceFile: "CodedInputStream.java"
NestMembers:
  com.google.protobuf.CodedInputStream$ArrayDecoder  com.google.protobuf.CodedInputStream$IterableDirectByteBufferDecoder  com.google.protobuf.CodedInputStream$StreamDecoder  com.google.protobuf.CodedInputStream$StreamDecoder$RefillCallback  com.google.protobuf.CodedInputStream$StreamDecoder$SkippedDataSink  com.google.protobuf.CodedInputStream$UnsafeDirectNioDecoder
InnerClasses:
  private final ArrayDecoder = com.google.protobuf.CodedInputStream$ArrayDecoder of com.google.protobuf.CodedInputStream
  private final IterableDirectByteBufferDecoder = com.google.protobuf.CodedInputStream$IterableDirectByteBufferDecoder of com.google.protobuf.CodedInputStream
  private final StreamDecoder = com.google.protobuf.CodedInputStream$StreamDecoder of com.google.protobuf.CodedInputStream
  private final UnsafeDirectNioDecoder = com.google.protobuf.CodedInputStream$UnsafeDirectNioDecoder of com.google.protobuf.CodedInputStream
  public abstract Builder = com.google.protobuf.MessageLite$Builder of com.google.protobuf.MessageLite