class com.mongodb.internal.connection.ByteBufBsonDocument extends com.mongodb.internal.connection.AbstractByteBufBsonDocument
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.mongodb.internal.connection.ByteBufBsonDocument
  super_class: com.mongodb.internal.connection.AbstractByteBufBsonDocument
{
  private static final long serialVersionUID;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  private final transient org.bson.ByteBuf byteBuf;
    descriptor: Lorg/bson/ByteBuf;
    flags: (0x0092) ACC_PRIVATE, ACC_FINAL, ACC_TRANSIENT

  static java.util.List<com.mongodb.internal.connection.ByteBufBsonDocument> createList(com.mongodb.internal.connection.ResponseBuffers);
    descriptor: (Lcom/mongodb/internal/connection/ResponseBuffers;)Ljava/util/List;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=6, args_size=1
        start local 0 // com.mongodb.internal.connection.ResponseBuffers responseBuffers
         0: .line 46
            aload 0 /* responseBuffers */
            invokevirtual com.mongodb.internal.connection.ResponseBuffers.getReplyHeader:()Lcom/mongodb/internal/connection/ReplyHeader;
            invokevirtual com.mongodb.internal.connection.ReplyHeader.getNumberReturned:()I
            istore 1 /* numDocuments */
        start local 1 // int numDocuments
         1: .line 47
            aload 0 /* responseBuffers */
            invokevirtual com.mongodb.internal.connection.ResponseBuffers.getBodyByteBuffer:()Lorg/bson/ByteBuf;
            astore 2 /* documentsBuffer */
        start local 2 // org.bson.ByteBuf documentsBuffer
         2: .line 48
            aload 2 /* documentsBuffer */
            getstatic java.nio.ByteOrder.LITTLE_ENDIAN:Ljava/nio/ByteOrder;
            invokeinterface org.bson.ByteBuf.order:(Ljava/nio/ByteOrder;)Lorg/bson/ByteBuf;
            pop
         3: .line 49
            new java.util.ArrayList
            dup
            iload 1 /* numDocuments */
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 3 /* documents */
        start local 3 // java.util.List documents
         4: .line 50
            goto 12
         5: .line 51
      StackMap locals: int org.bson.ByteBuf java.util.List
      StackMap stack:
            aload 2 /* documentsBuffer */
            invokeinterface org.bson.ByteBuf.getInt:()I
            istore 4 /* documentSizeInBytes */
        start local 4 // int documentSizeInBytes
         6: .line 52
            aload 2 /* documentsBuffer */
            aload 2 /* documentsBuffer */
            invokeinterface org.bson.ByteBuf.position:()I
            iconst_4
            isub
            invokeinterface org.bson.ByteBuf.position:(I)Lorg/bson/ByteBuf;
            pop
         7: .line 53
            aload 2 /* documentsBuffer */
            invokeinterface org.bson.ByteBuf.duplicate:()Lorg/bson/ByteBuf;
            astore 5 /* documentBuffer */
        start local 5 // org.bson.ByteBuf documentBuffer
         8: .line 54
            aload 5 /* documentBuffer */
            aload 5 /* documentBuffer */
            invokeinterface org.bson.ByteBuf.position:()I
            iload 4 /* documentSizeInBytes */
            iadd
            invokeinterface org.bson.ByteBuf.limit:(I)Lorg/bson/ByteBuf;
            pop
         9: .line 55
            aload 3 /* documents */
            new com.mongodb.internal.connection.ByteBufBsonDocument
            dup
            new org.bson.ByteBufNIO
            dup
            aload 5 /* documentBuffer */
            invokeinterface org.bson.ByteBuf.asNIO:()Ljava/nio/ByteBuffer;
            invokespecial org.bson.ByteBufNIO.<init>:(Ljava/nio/ByteBuffer;)V
            invokespecial com.mongodb.internal.connection.ByteBufBsonDocument.<init>:(Lorg/bson/ByteBuf;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        10: .line 56
            aload 5 /* documentBuffer */
            invokeinterface org.bson.ByteBuf.release:()V
        11: .line 57
            aload 2 /* documentsBuffer */
            aload 2 /* documentsBuffer */
            invokeinterface org.bson.ByteBuf.position:()I
            iload 4 /* documentSizeInBytes */
            iadd
            invokeinterface org.bson.ByteBuf.position:(I)Lorg/bson/ByteBuf;
            pop
        end local 5 // org.bson.ByteBuf documentBuffer
        end local 4 // int documentSizeInBytes
        12: .line 50
      StackMap locals:
      StackMap stack:
            aload 3 /* documents */
            invokeinterface java.util.List.size:()I
            iload 1 /* numDocuments */
            if_icmplt 5
        13: .line 59
            aload 3 /* documents */
            areturn
        end local 3 // java.util.List documents
        end local 2 // org.bson.ByteBuf documentsBuffer
        end local 1 // int numDocuments
        end local 0 // com.mongodb.internal.connection.ResponseBuffers responseBuffers
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   14     0      responseBuffers  Lcom/mongodb/internal/connection/ResponseBuffers;
            1   14     1         numDocuments  I
            2   14     2      documentsBuffer  Lorg/bson/ByteBuf;
            4   14     3            documents  Ljava/util/List<Lcom/mongodb/internal/connection/ByteBufBsonDocument;>;
            6   12     4  documentSizeInBytes  I
            8   12     5       documentBuffer  Lorg/bson/ByteBuf;
    Signature: (Lcom/mongodb/internal/connection/ResponseBuffers;)Ljava/util/List<Lcom/mongodb/internal/connection/ByteBufBsonDocument;>;
    MethodParameters:
                 Name  Flags
      responseBuffers  final

  static java.util.List<com.mongodb.internal.connection.ByteBufBsonDocument> createList(com.mongodb.connection.ByteBufferBsonOutput, int);
    descriptor: (Lcom/mongodb/connection/ByteBufferBsonOutput;I)Ljava/util/List;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=8, args_size=2
        start local 0 // com.mongodb.connection.ByteBufferBsonOutput bsonOutput
        start local 1 // int startPosition
         0: .line 63
            aload 0 /* bsonOutput */
            invokevirtual com.mongodb.connection.ByteBufferBsonOutput.getByteBuffers:()Ljava/util/List;
            astore 2 /* duplicateByteBuffers */
        start local 2 // java.util.List duplicateByteBuffers
         1: .line 64
            new com.mongodb.internal.connection.CompositeByteBuf
            dup
            aload 2 /* duplicateByteBuffers */
            invokespecial com.mongodb.internal.connection.CompositeByteBuf.<init>:(Ljava/util/List;)V
            astore 3 /* outputByteBuf */
        start local 3 // com.mongodb.internal.connection.CompositeByteBuf outputByteBuf
         2: .line 65
            aload 3 /* outputByteBuf */
            iload 1 /* startPosition */
            invokevirtual com.mongodb.internal.connection.CompositeByteBuf.position:(I)Lorg/bson/ByteBuf;
            pop
         3: .line 66
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 4 /* documents */
        start local 4 // java.util.List documents
         4: .line 67
            iload 1 /* startPosition */
            istore 5 /* curDocumentStartPosition */
        start local 5 // int curDocumentStartPosition
         5: .line 68
            goto 13
         6: .line 69
      StackMap locals: com.mongodb.connection.ByteBufferBsonOutput int java.util.List com.mongodb.internal.connection.CompositeByteBuf java.util.List int
      StackMap stack:
            aload 3 /* outputByteBuf */
            invokevirtual com.mongodb.internal.connection.CompositeByteBuf.getInt:()I
            istore 6 /* documentSizeInBytes */
        start local 6 // int documentSizeInBytes
         7: .line 70
            aload 3 /* outputByteBuf */
            invokevirtual com.mongodb.internal.connection.CompositeByteBuf.duplicate:()Lorg/bson/ByteBuf;
            astore 7 /* slice */
        start local 7 // org.bson.ByteBuf slice
         8: .line 71
            aload 7 /* slice */
            iload 5 /* curDocumentStartPosition */
            invokeinterface org.bson.ByteBuf.position:(I)Lorg/bson/ByteBuf;
            pop
         9: .line 72
            aload 7 /* slice */
            iload 5 /* curDocumentStartPosition */
            iload 6 /* documentSizeInBytes */
            iadd
            invokeinterface org.bson.ByteBuf.limit:(I)Lorg/bson/ByteBuf;
            pop
        10: .line 73
            aload 4 /* documents */
            new com.mongodb.internal.connection.ByteBufBsonDocument
            dup
            aload 7 /* slice */
            invokespecial com.mongodb.internal.connection.ByteBufBsonDocument.<init>:(Lorg/bson/ByteBuf;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        11: .line 74
            iload 5 /* curDocumentStartPosition */
            iload 6 /* documentSizeInBytes */
            iadd
            istore 5 /* curDocumentStartPosition */
        12: .line 75
            aload 3 /* outputByteBuf */
            aload 3 /* outputByteBuf */
            invokevirtual com.mongodb.internal.connection.CompositeByteBuf.position:()I
            iload 6 /* documentSizeInBytes */
            iadd
            iconst_4
            isub
            invokevirtual com.mongodb.internal.connection.CompositeByteBuf.position:(I)Lorg/bson/ByteBuf;
            pop
        end local 7 // org.bson.ByteBuf slice
        end local 6 // int documentSizeInBytes
        13: .line 68
      StackMap locals:
      StackMap stack:
            aload 3 /* outputByteBuf */
            invokevirtual com.mongodb.internal.connection.CompositeByteBuf.hasRemaining:()Z
            ifne 6
        14: .line 77
            aload 2 /* duplicateByteBuffers */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 7
            goto 17
      StackMap locals: com.mongodb.connection.ByteBufferBsonOutput int java.util.List com.mongodb.internal.connection.CompositeByteBuf java.util.List int top java.util.Iterator
      StackMap stack:
        15: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.bson.ByteBuf
            astore 6 /* byteBuffer */
        start local 6 // org.bson.ByteBuf byteBuffer
        16: .line 78
            aload 6 /* byteBuffer */
            invokeinterface org.bson.ByteBuf.release:()V
        end local 6 // org.bson.ByteBuf byteBuffer
        17: .line 77
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 15
        18: .line 80
            aload 4 /* documents */
            areturn
        end local 5 // int curDocumentStartPosition
        end local 4 // java.util.List documents
        end local 3 // com.mongodb.internal.connection.CompositeByteBuf outputByteBuf
        end local 2 // java.util.List duplicateByteBuffers
        end local 1 // int startPosition
        end local 0 // com.mongodb.connection.ByteBufferBsonOutput bsonOutput
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   19     0                bsonOutput  Lcom/mongodb/connection/ByteBufferBsonOutput;
            0   19     1             startPosition  I
            1   19     2      duplicateByteBuffers  Ljava/util/List<Lorg/bson/ByteBuf;>;
            2   19     3             outputByteBuf  Lcom/mongodb/internal/connection/CompositeByteBuf;
            4   19     4                 documents  Ljava/util/List<Lcom/mongodb/internal/connection/ByteBufBsonDocument;>;
            5   19     5  curDocumentStartPosition  I
            7   13     6       documentSizeInBytes  I
            8   13     7                     slice  Lorg/bson/ByteBuf;
           16   17     6                byteBuffer  Lorg/bson/ByteBuf;
    Signature: (Lcom/mongodb/connection/ByteBufferBsonOutput;I)Ljava/util/List<Lcom/mongodb/internal/connection/ByteBufBsonDocument;>;
    MethodParameters:
               Name  Flags
      bsonOutput     final
      startPosition  final

  static com.mongodb.internal.connection.ByteBufBsonDocument createOne(com.mongodb.connection.ByteBufferBsonOutput, int);
    descriptor: (Lcom/mongodb/connection/ByteBufferBsonOutput;I)Lcom/mongodb/internal/connection/ByteBufBsonDocument;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=8, args_size=2
        start local 0 // com.mongodb.connection.ByteBufferBsonOutput bsonOutput
        start local 1 // int startPosition
         0: .line 84
            aload 0 /* bsonOutput */
            invokevirtual com.mongodb.connection.ByteBufferBsonOutput.getByteBuffers:()Ljava/util/List;
            astore 2 /* duplicateByteBuffers */
        start local 2 // java.util.List duplicateByteBuffers
         1: .line 85
            new com.mongodb.internal.connection.CompositeByteBuf
            dup
            aload 2 /* duplicateByteBuffers */
            invokespecial com.mongodb.internal.connection.CompositeByteBuf.<init>:(Ljava/util/List;)V
            astore 3 /* outputByteBuf */
        start local 3 // com.mongodb.internal.connection.CompositeByteBuf outputByteBuf
         2: .line 86
            aload 3 /* outputByteBuf */
            iload 1 /* startPosition */
            invokevirtual com.mongodb.internal.connection.CompositeByteBuf.position:(I)Lorg/bson/ByteBuf;
            pop
         3: .line 87
            aload 3 /* outputByteBuf */
            invokevirtual com.mongodb.internal.connection.CompositeByteBuf.getInt:()I
            istore 4 /* documentSizeInBytes */
        start local 4 // int documentSizeInBytes
         4: .line 88
            aload 3 /* outputByteBuf */
            invokevirtual com.mongodb.internal.connection.CompositeByteBuf.duplicate:()Lorg/bson/ByteBuf;
            astore 5 /* slice */
        start local 5 // org.bson.ByteBuf slice
         5: .line 89
            aload 5 /* slice */
            iload 1 /* startPosition */
            invokeinterface org.bson.ByteBuf.position:(I)Lorg/bson/ByteBuf;
            pop
         6: .line 90
            aload 5 /* slice */
            iload 1 /* startPosition */
            iload 4 /* documentSizeInBytes */
            iadd
            invokeinterface org.bson.ByteBuf.limit:(I)Lorg/bson/ByteBuf;
            pop
         7: .line 91
            aload 2 /* duplicateByteBuffers */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 7
            goto 10
      StackMap locals: com.mongodb.connection.ByteBufferBsonOutput int java.util.List com.mongodb.internal.connection.CompositeByteBuf int org.bson.ByteBuf top java.util.Iterator
      StackMap stack:
         8: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.bson.ByteBuf
            astore 6 /* byteBuffer */
        start local 6 // org.bson.ByteBuf byteBuffer
         9: .line 92
            aload 6 /* byteBuffer */
            invokeinterface org.bson.ByteBuf.release:()V
        end local 6 // org.bson.ByteBuf byteBuffer
        10: .line 91
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        11: .line 94
            new com.mongodb.internal.connection.ByteBufBsonDocument
            dup
            aload 5 /* slice */
            invokespecial com.mongodb.internal.connection.ByteBufBsonDocument.<init>:(Lorg/bson/ByteBuf;)V
            areturn
        end local 5 // org.bson.ByteBuf slice
        end local 4 // int documentSizeInBytes
        end local 3 // com.mongodb.internal.connection.CompositeByteBuf outputByteBuf
        end local 2 // java.util.List duplicateByteBuffers
        end local 1 // int startPosition
        end local 0 // com.mongodb.connection.ByteBufferBsonOutput bsonOutput
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   12     0            bsonOutput  Lcom/mongodb/connection/ByteBufferBsonOutput;
            0   12     1         startPosition  I
            1   12     2  duplicateByteBuffers  Ljava/util/List<Lorg/bson/ByteBuf;>;
            2   12     3         outputByteBuf  Lcom/mongodb/internal/connection/CompositeByteBuf;
            4   12     4   documentSizeInBytes  I
            5   12     5                 slice  Lorg/bson/ByteBuf;
            9   10     6            byteBuffer  Lorg/bson/ByteBuf;
    MethodParameters:
               Name  Flags
      bsonOutput     final
      startPosition  final

  public java.lang.String toJson();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.mongodb.internal.connection.ByteBufBsonDocument this
         0: .line 100
            aload 0 /* this */
            new org.bson.json.JsonWriterSettings
            dup
            invokespecial org.bson.json.JsonWriterSettings.<init>:()V
            invokevirtual com.mongodb.internal.connection.ByteBufBsonDocument.toJson:(Lorg/bson/json/JsonWriterSettings;)Ljava/lang/String;
            areturn
        end local 0 // com.mongodb.internal.connection.ByteBufBsonDocument this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/internal/connection/ByteBufBsonDocument;

  public java.lang.String toJson(org.bson.json.JsonWriterSettings);
    descriptor: (Lorg/bson/json/JsonWriterSettings;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=2
        start local 0 // com.mongodb.internal.connection.ByteBufBsonDocument this
        start local 1 // org.bson.json.JsonWriterSettings settings
         0: .line 105
            new java.io.StringWriter
            dup
            invokespecial java.io.StringWriter.<init>:()V
            astore 2 /* stringWriter */
        start local 2 // java.io.StringWriter stringWriter
         1: .line 106
            new org.bson.json.JsonWriter
            dup
            aload 2 /* stringWriter */
            aload 1 /* settings */
            invokespecial org.bson.json.JsonWriter.<init>:(Ljava/io/Writer;Lorg/bson/json/JsonWriterSettings;)V
            astore 3 /* jsonWriter */
        start local 3 // org.bson.json.JsonWriter jsonWriter
         2: .line 107
            aload 0 /* this */
            getfield com.mongodb.internal.connection.ByteBufBsonDocument.byteBuf:Lorg/bson/ByteBuf;
            invokeinterface org.bson.ByteBuf.duplicate:()Lorg/bson/ByteBuf;
            astore 4 /* duplicate */
        start local 4 // org.bson.ByteBuf duplicate
         3: .line 108
            new org.bson.BsonBinaryReader
            dup
            new org.bson.io.ByteBufferBsonInput
            dup
            aload 4 /* duplicate */
            invokespecial org.bson.io.ByteBufferBsonInput.<init>:(Lorg/bson/ByteBuf;)V
            invokespecial org.bson.BsonBinaryReader.<init>:(Lorg/bson/io/BsonInput;)V
            astore 5 /* reader */
        start local 5 // org.bson.BsonBinaryReader reader
         4: .line 110
            aload 3 /* jsonWriter */
            aload 5 /* reader */
            invokevirtual org.bson.json.JsonWriter.pipe:(Lorg/bson/BsonReader;)V
         5: .line 111
            aload 2 /* stringWriter */
            invokevirtual java.io.StringWriter.toString:()Ljava/lang/String;
            astore 7
         6: .line 113
            aload 4 /* duplicate */
            invokeinterface org.bson.ByteBuf.release:()V
         7: .line 114
            aload 5 /* reader */
            invokevirtual org.bson.BsonBinaryReader.close:()V
         8: .line 111
            aload 7
            areturn
         9: .line 112
      StackMap locals: com.mongodb.internal.connection.ByteBufBsonDocument org.bson.json.JsonWriterSettings java.io.StringWriter org.bson.json.JsonWriter org.bson.ByteBuf org.bson.BsonBinaryReader
      StackMap stack: java.lang.Throwable
            astore 6
        10: .line 113
            aload 4 /* duplicate */
            invokeinterface org.bson.ByteBuf.release:()V
        11: .line 114
            aload 5 /* reader */
            invokevirtual org.bson.BsonBinaryReader.close:()V
        12: .line 115
            aload 6
            athrow
        end local 5 // org.bson.BsonBinaryReader reader
        end local 4 // org.bson.ByteBuf duplicate
        end local 3 // org.bson.json.JsonWriter jsonWriter
        end local 2 // java.io.StringWriter stringWriter
        end local 1 // org.bson.json.JsonWriterSettings settings
        end local 0 // com.mongodb.internal.connection.ByteBufBsonDocument this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   13     0          this  Lcom/mongodb/internal/connection/ByteBufBsonDocument;
            0   13     1      settings  Lorg/bson/json/JsonWriterSettings;
            1   13     2  stringWriter  Ljava/io/StringWriter;
            2   13     3    jsonWriter  Lorg/bson/json/JsonWriter;
            3   13     4     duplicate  Lorg/bson/ByteBuf;
            4   13     5        reader  Lorg/bson/BsonBinaryReader;
      Exception table:
        from    to  target  type
           4     6       9  any
    MethodParameters:
          Name  Flags
      settings  final

  public org.bson.BsonReader asBsonReader();
    descriptor: ()Lorg/bson/BsonReader;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // com.mongodb.internal.connection.ByteBufBsonDocument this
         0: .line 120
            new org.bson.BsonBinaryReader
            dup
            new org.bson.io.ByteBufferBsonInput
            dup
            aload 0 /* this */
            getfield com.mongodb.internal.connection.ByteBufBsonDocument.byteBuf:Lorg/bson/ByteBuf;
            invokeinterface org.bson.ByteBuf.duplicate:()Lorg/bson/ByteBuf;
            invokespecial org.bson.io.ByteBufferBsonInput.<init>:(Lorg/bson/ByteBuf;)V
            invokespecial org.bson.BsonBinaryReader.<init>:(Lorg/bson/io/BsonInput;)V
            areturn
        end local 0 // com.mongodb.internal.connection.ByteBufBsonDocument this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/internal/connection/ByteBufBsonDocument;

  <T> T findInDocument(com.mongodb.internal.connection.AbstractByteBufBsonDocument$Finder<T>);
    descriptor: (Lcom/mongodb/internal/connection/AbstractByteBufBsonDocument$Finder;)Ljava/lang/Object;
    flags: (0x0000) 
    Code:
      stack=5, locals=7, args_size=2
        start local 0 // com.mongodb.internal.connection.ByteBufBsonDocument this
        start local 1 // com.mongodb.internal.connection.AbstractByteBufBsonDocument$Finder finder
         0: .line 124
            aload 0 /* this */
            getfield com.mongodb.internal.connection.ByteBufBsonDocument.byteBuf:Lorg/bson/ByteBuf;
            invokeinterface org.bson.ByteBuf.duplicate:()Lorg/bson/ByteBuf;
            astore 2 /* duplicateByteBuf */
        start local 2 // org.bson.ByteBuf duplicateByteBuf
         1: .line 125
            new org.bson.BsonBinaryReader
            dup
            new org.bson.io.ByteBufferBsonInput
            dup
            aload 0 /* this */
            getfield com.mongodb.internal.connection.ByteBufBsonDocument.byteBuf:Lorg/bson/ByteBuf;
            invokeinterface org.bson.ByteBuf.duplicate:()Lorg/bson/ByteBuf;
            invokespecial org.bson.io.ByteBufferBsonInput.<init>:(Lorg/bson/ByteBuf;)V
            invokespecial org.bson.BsonBinaryReader.<init>:(Lorg/bson/io/BsonInput;)V
            astore 3 /* bsonReader */
        start local 3 // org.bson.BsonBinaryReader bsonReader
         2: .line 127
            aload 3 /* bsonReader */
            invokevirtual org.bson.BsonBinaryReader.readStartDocument:()V
         3: .line 128
            goto 10
         4: .line 129
      StackMap locals: org.bson.ByteBuf org.bson.BsonBinaryReader
      StackMap stack:
            aload 1 /* finder */
            aload 3 /* bsonReader */
            invokeinterface com.mongodb.internal.connection.AbstractByteBufBsonDocument$Finder.find:(Lorg/bson/BsonReader;)Ljava/lang/Object;
            astore 4 /* found */
        start local 4 // java.lang.Object found
         5: .line 130
            aload 4 /* found */
            ifnull 10
         6: .line 131
            aload 4 /* found */
            astore 6
         7: .line 136
            aload 2 /* duplicateByteBuf */
            invokeinterface org.bson.ByteBuf.release:()V
         8: .line 137
            aload 3 /* bsonReader */
            invokevirtual org.bson.BsonBinaryReader.close:()V
         9: .line 131
            aload 6
            areturn
        end local 4 // java.lang.Object found
        10: .line 128
      StackMap locals:
      StackMap stack:
            aload 3 /* bsonReader */
            invokevirtual org.bson.BsonBinaryReader.readBsonType:()Lorg/bson/BsonType;
            getstatic org.bson.BsonType.END_OF_DOCUMENT:Lorg/bson/BsonType;
            if_acmpne 4
        11: .line 134
            aload 3 /* bsonReader */
            invokevirtual org.bson.BsonBinaryReader.readEndDocument:()V
        12: .line 135
            goto 17
      StackMap locals:
      StackMap stack: java.lang.Throwable
        13: astore 5
        14: .line 136
            aload 2 /* duplicateByteBuf */
            invokeinterface org.bson.ByteBuf.release:()V
        15: .line 137
            aload 3 /* bsonReader */
            invokevirtual org.bson.BsonBinaryReader.close:()V
        16: .line 138
            aload 5
            athrow
        17: .line 136
      StackMap locals:
      StackMap stack:
            aload 2 /* duplicateByteBuf */
            invokeinterface org.bson.ByteBuf.release:()V
        18: .line 137
            aload 3 /* bsonReader */
            invokevirtual org.bson.BsonBinaryReader.close:()V
        19: .line 140
            aload 1 /* finder */
            invokeinterface com.mongodb.internal.connection.AbstractByteBufBsonDocument$Finder.notFound:()Ljava/lang/Object;
            areturn
        end local 3 // org.bson.BsonBinaryReader bsonReader
        end local 2 // org.bson.ByteBuf duplicateByteBuf
        end local 1 // com.mongodb.internal.connection.AbstractByteBufBsonDocument$Finder finder
        end local 0 // com.mongodb.internal.connection.ByteBufBsonDocument this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   20     0              this  Lcom/mongodb/internal/connection/ByteBufBsonDocument;
            0   20     1            finder  Lcom/mongodb/internal/connection/AbstractByteBufBsonDocument$Finder<TT;>;
            1   20     2  duplicateByteBuf  Lorg/bson/ByteBuf;
            2   20     3        bsonReader  Lorg/bson/BsonBinaryReader;
            5   10     4             found  TT;
      Exception table:
        from    to  target  type
           2     7      13  any
          10    13      13  any
    Signature: <T:Ljava/lang/Object;>(Lcom/mongodb/internal/connection/AbstractByteBufBsonDocument$Finder<TT;>;)TT;
    MethodParameters:
        Name  Flags
      finder  final

  public org.bson.BsonDocument clone();
    descriptor: ()Lorg/bson/BsonDocument;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.mongodb.internal.connection.ByteBufBsonDocument this
         0: .line 145
            aload 0 /* this */
            getfield com.mongodb.internal.connection.ByteBufBsonDocument.byteBuf:Lorg/bson/ByteBuf;
            invokeinterface org.bson.ByteBuf.remaining:()I
            newarray 8
            astore 1 /* clonedBytes */
        start local 1 // byte[] clonedBytes
         1: .line 146
            aload 0 /* this */
            getfield com.mongodb.internal.connection.ByteBufBsonDocument.byteBuf:Lorg/bson/ByteBuf;
            aload 0 /* this */
            getfield com.mongodb.internal.connection.ByteBufBsonDocument.byteBuf:Lorg/bson/ByteBuf;
            invokeinterface org.bson.ByteBuf.position:()I
            aload 1 /* clonedBytes */
            invokeinterface org.bson.ByteBuf.get:(I[B)Lorg/bson/ByteBuf;
            pop
         2: .line 147
            new org.bson.RawBsonDocument
            dup
            aload 1 /* clonedBytes */
            invokespecial org.bson.RawBsonDocument.<init>:([B)V
            areturn
        end local 1 // byte[] clonedBytes
        end local 0 // com.mongodb.internal.connection.ByteBufBsonDocument this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Lcom/mongodb/internal/connection/ByteBufBsonDocument;
            1    3     1  clonedBytes  [B

  int getSizeInBytes();
    descriptor: ()I
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.mongodb.internal.connection.ByteBufBsonDocument this
         0: .line 151
            aload 0 /* this */
            getfield com.mongodb.internal.connection.ByteBufBsonDocument.byteBuf:Lorg/bson/ByteBuf;
            aload 0 /* this */
            getfield com.mongodb.internal.connection.ByteBufBsonDocument.byteBuf:Lorg/bson/ByteBuf;
            invokeinterface org.bson.ByteBuf.position:()I
            invokeinterface org.bson.ByteBuf.getInt:(I)I
            ireturn
        end local 0 // com.mongodb.internal.connection.ByteBufBsonDocument this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/internal/connection/ByteBufBsonDocument;

  org.bson.BsonDocument toBsonDocument();
    descriptor: ()Lorg/bson/BsonDocument;
    flags: (0x0000) 
    Code:
      stack=5, locals=5, args_size=1
        start local 0 // com.mongodb.internal.connection.ByteBufBsonDocument this
         0: .line 155
            aload 0 /* this */
            getfield com.mongodb.internal.connection.ByteBufBsonDocument.byteBuf:Lorg/bson/ByteBuf;
            invokeinterface org.bson.ByteBuf.duplicate:()Lorg/bson/ByteBuf;
            astore 1 /* duplicateByteBuf */
        start local 1 // org.bson.ByteBuf duplicateByteBuf
         1: .line 156
            new org.bson.BsonBinaryReader
            dup
            new org.bson.io.ByteBufferBsonInput
            dup
            aload 1 /* duplicateByteBuf */
            invokespecial org.bson.io.ByteBufferBsonInput.<init>:(Lorg/bson/ByteBuf;)V
            invokespecial org.bson.BsonBinaryReader.<init>:(Lorg/bson/io/BsonInput;)V
            astore 2 /* bsonReader */
        start local 2 // org.bson.BsonBinaryReader bsonReader
         2: .line 158
            new org.bson.codecs.BsonDocumentCodec
            dup
            invokespecial org.bson.codecs.BsonDocumentCodec.<init>:()V
            aload 2 /* bsonReader */
            invokestatic org.bson.codecs.DecoderContext.builder:()Lorg/bson/codecs/DecoderContext$Builder;
            invokevirtual org.bson.codecs.DecoderContext$Builder.build:()Lorg/bson/codecs/DecoderContext;
            invokevirtual org.bson.codecs.BsonDocumentCodec.decode:(Lorg/bson/BsonReader;Lorg/bson/codecs/DecoderContext;)Lorg/bson/BsonDocument;
            astore 4
         3: .line 160
            aload 1 /* duplicateByteBuf */
            invokeinterface org.bson.ByteBuf.release:()V
         4: .line 161
            aload 2 /* bsonReader */
            invokevirtual org.bson.BsonBinaryReader.close:()V
         5: .line 158
            aload 4
            areturn
         6: .line 159
      StackMap locals: com.mongodb.internal.connection.ByteBufBsonDocument org.bson.ByteBuf org.bson.BsonBinaryReader
      StackMap stack: java.lang.Throwable
            astore 3
         7: .line 160
            aload 1 /* duplicateByteBuf */
            invokeinterface org.bson.ByteBuf.release:()V
         8: .line 161
            aload 2 /* bsonReader */
            invokevirtual org.bson.BsonBinaryReader.close:()V
         9: .line 162
            aload 3
            athrow
        end local 2 // org.bson.BsonBinaryReader bsonReader
        end local 1 // org.bson.ByteBuf duplicateByteBuf
        end local 0 // com.mongodb.internal.connection.ByteBufBsonDocument this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   10     0              this  Lcom/mongodb/internal/connection/ByteBufBsonDocument;
            1   10     1  duplicateByteBuf  Lorg/bson/ByteBuf;
            2   10     2        bsonReader  Lorg/bson/BsonBinaryReader;
      Exception table:
        from    to  target  type
           2     3       6  any

  void <init>(org.bson.ByteBuf);
    descriptor: (Lorg/bson/ByteBuf;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.mongodb.internal.connection.ByteBufBsonDocument this
        start local 1 // org.bson.ByteBuf byteBuf
         0: .line 165
            aload 0 /* this */
            invokespecial com.mongodb.internal.connection.AbstractByteBufBsonDocument.<init>:()V
         1: .line 166
            aload 0 /* this */
            aload 1 /* byteBuf */
            putfield com.mongodb.internal.connection.ByteBufBsonDocument.byteBuf:Lorg/bson/ByteBuf;
         2: .line 167
            return
        end local 1 // org.bson.ByteBuf byteBuf
        end local 0 // com.mongodb.internal.connection.ByteBufBsonDocument this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lcom/mongodb/internal/connection/ByteBufBsonDocument;
            0    3     1  byteBuf  Lorg/bson/ByteBuf;
    MethodParameters:
         Name  Flags
      byteBuf  final

  private void readObject(java.io.ObjectInputStream);
    descriptor: (Ljava/io/ObjectInputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.internal.connection.ByteBufBsonDocument this
        start local 1 // java.io.ObjectInputStream stream
         0: .line 171
            new java.io.InvalidObjectException
            dup
            ldc "Proxy required"
            invokespecial java.io.InvalidObjectException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.io.ObjectInputStream stream
        end local 0 // com.mongodb.internal.connection.ByteBufBsonDocument this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/mongodb/internal/connection/ByteBufBsonDocument;
            0    1     1  stream  Ljava/io/ObjectInputStream;
    Exceptions:
      throws java.io.InvalidObjectException
    MethodParameters:
        Name  Flags
      stream  final

  public java.lang.Object clone();
    descriptor: ()Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual com.mongodb.internal.connection.ByteBufBsonDocument.clone:()Lorg/bson/BsonDocument;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.lang.CloneNotSupportedException
}
SourceFile: "ByteBufBsonDocument.java"
InnerClasses:
  abstract Finder = com.mongodb.internal.connection.AbstractByteBufBsonDocument$Finder of com.mongodb.internal.connection.AbstractByteBufBsonDocument
  public final Builder = org.bson.codecs.DecoderContext$Builder of org.bson.codecs.DecoderContext