class com.mongodb.internal.connection.GetMoreProtocol<T> implements com.mongodb.internal.connection.LegacyProtocol<com.mongodb.connection.QueryResult<T>>
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.mongodb.internal.connection.GetMoreProtocol
  super_class: java.lang.Object
{
  public static final com.mongodb.diagnostics.logging.Logger LOGGER;
    descriptor: Lcom/mongodb/diagnostics/logging/Logger;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  private static final java.lang.String COMMAND_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "getMore"

  private final org.bson.codecs.Decoder<T> resultDecoder;
    descriptor: Lorg/bson/codecs/Decoder;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lorg/bson/codecs/Decoder<TT;>;

  private final com.mongodb.MongoNamespace namespace;
    descriptor: Lcom/mongodb/MongoNamespace;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final long cursorId;
    descriptor: J
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int numberToReturn;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private com.mongodb.event.CommandListener commandListener;
    descriptor: Lcom/mongodb/event/CommandListener;
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 54
            ldc "protocol.getmore"
            invokestatic com.mongodb.diagnostics.logging.Loggers.getLogger:(Ljava/lang/String;)Lcom/mongodb/diagnostics/logging/Logger;
            putstatic com.mongodb.internal.connection.GetMoreProtocol.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
         1: .line 55
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(com.mongodb.MongoNamespace, long, int, org.bson.codecs.Decoder<T>);
    descriptor: (Lcom/mongodb/MongoNamespace;JILorg/bson/codecs/Decoder;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=6, args_size=5
        start local 0 // com.mongodb.internal.connection.GetMoreProtocol this
        start local 1 // com.mongodb.MongoNamespace namespace
        start local 2 // long cursorId
        start local 4 // int numberToReturn
        start local 5 // org.bson.codecs.Decoder resultDecoder
         0: .line 63
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 64
            aload 0 /* this */
            aload 1 /* namespace */
            putfield com.mongodb.internal.connection.GetMoreProtocol.namespace:Lcom/mongodb/MongoNamespace;
         2: .line 65
            aload 0 /* this */
            lload 2 /* cursorId */
            putfield com.mongodb.internal.connection.GetMoreProtocol.cursorId:J
         3: .line 66
            aload 0 /* this */
            iload 4 /* numberToReturn */
            putfield com.mongodb.internal.connection.GetMoreProtocol.numberToReturn:I
         4: .line 67
            aload 0 /* this */
            aload 5 /* resultDecoder */
            putfield com.mongodb.internal.connection.GetMoreProtocol.resultDecoder:Lorg/bson/codecs/Decoder;
         5: .line 68
            return
        end local 5 // org.bson.codecs.Decoder resultDecoder
        end local 4 // int numberToReturn
        end local 2 // long cursorId
        end local 1 // com.mongodb.MongoNamespace namespace
        end local 0 // com.mongodb.internal.connection.GetMoreProtocol this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    6     0            this  Lcom/mongodb/internal/connection/GetMoreProtocol<TT;>;
            0    6     1       namespace  Lcom/mongodb/MongoNamespace;
            0    6     2        cursorId  J
            0    6     4  numberToReturn  I
            0    6     5   resultDecoder  Lorg/bson/codecs/Decoder<TT;>;
    Signature: (Lcom/mongodb/MongoNamespace;JILorg/bson/codecs/Decoder<TT;>;)V
    MethodParameters:
                Name  Flags
      namespace       final
      cursorId        final
      numberToReturn  final
      resultDecoder   final

  public com.mongodb.connection.QueryResult<T> execute(com.mongodb.internal.connection.InternalConnection);
    descriptor: (Lcom/mongodb/internal/connection/InternalConnection;)Lcom/mongodb/connection/QueryResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=9, args_size=2
        start local 0 // com.mongodb.internal.connection.GetMoreProtocol this
        start local 1 // com.mongodb.internal.connection.InternalConnection connection
         0: .line 72
            getstatic com.mongodb.internal.connection.GetMoreProtocol.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
            invokeinterface com.mongodb.diagnostics.logging.Logger.isDebugEnabled:()Z
            ifeq 5
         1: .line 73
            getstatic com.mongodb.internal.connection.GetMoreProtocol.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
            ldc "Getting more documents from namespace %s with cursor %d on connection [%s] to server %s"
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
         2: .line 74
            aload 0 /* this */
            getfield com.mongodb.internal.connection.GetMoreProtocol.namespace:Lcom/mongodb/MongoNamespace;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield com.mongodb.internal.connection.GetMoreProtocol.cursorId:J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_2
            aload 1 /* connection */
            invokeinterface com.mongodb.internal.connection.InternalConnection.getDescription:()Lcom/mongodb/connection/ConnectionDescription;
            invokevirtual com.mongodb.connection.ConnectionDescription.getConnectionId:()Lcom/mongodb/connection/ConnectionId;
            aastore
            dup
            iconst_3
         3: .line 75
            aload 1 /* connection */
            invokeinterface com.mongodb.internal.connection.InternalConnection.getDescription:()Lcom/mongodb/connection/ConnectionDescription;
            invokevirtual com.mongodb.connection.ConnectionDescription.getServerAddress:()Lcom/mongodb/ServerAddress;
            aastore
         4: .line 73
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface com.mongodb.diagnostics.logging.Logger.debug:(Ljava/lang/String;)V
         5: .line 77
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.System.nanoTime:()J
            lstore 2 /* startTimeNanos */
        start local 2 // long startTimeNanos
         6: .line 78
            new com.mongodb.internal.connection.GetMoreMessage
            dup
            aload 0 /* this */
            getfield com.mongodb.internal.connection.GetMoreProtocol.namespace:Lcom/mongodb/MongoNamespace;
            invokevirtual com.mongodb.MongoNamespace.getFullName:()Ljava/lang/String;
            aload 0 /* this */
            getfield com.mongodb.internal.connection.GetMoreProtocol.cursorId:J
            aload 0 /* this */
            getfield com.mongodb.internal.connection.GetMoreProtocol.numberToReturn:I
            invokespecial com.mongodb.internal.connection.GetMoreMessage.<init>:(Ljava/lang/String;JI)V
            astore 4 /* message */
        start local 4 // com.mongodb.internal.connection.GetMoreMessage message
         7: .line 79
            aconst_null
            astore 5 /* result */
        start local 5 // com.mongodb.connection.QueryResult result
         8: .line 81
            aload 0 /* this */
            aload 4 /* message */
            aload 1 /* connection */
            invokevirtual com.mongodb.internal.connection.GetMoreProtocol.sendMessage:(Lcom/mongodb/internal/connection/GetMoreMessage;Lcom/mongodb/internal/connection/InternalConnection;)V
         9: .line 82
            aload 1 /* connection */
            aload 4 /* message */
            invokevirtual com.mongodb.internal.connection.GetMoreMessage.getId:()I
            invokeinterface com.mongodb.internal.connection.InternalConnection.receiveMessage:(I)Lcom/mongodb/internal/connection/ResponseBuffers;
            astore 6 /* responseBuffers */
        start local 6 // com.mongodb.internal.connection.ResponseBuffers responseBuffers
        10: .line 84
            aload 6 /* responseBuffers */
            invokevirtual com.mongodb.internal.connection.ResponseBuffers.getReplyHeader:()Lcom/mongodb/internal/connection/ReplyHeader;
            invokevirtual com.mongodb.internal.connection.ReplyHeader.isCursorNotFound:()Z
            ifeq 12
        11: .line 85
            new com.mongodb.MongoCursorNotFoundException
            dup
            aload 4 /* message */
            invokevirtual com.mongodb.internal.connection.GetMoreMessage.getCursorId:()J
            aload 1 /* connection */
            invokeinterface com.mongodb.internal.connection.InternalConnection.getDescription:()Lcom/mongodb/connection/ConnectionDescription;
            invokevirtual com.mongodb.connection.ConnectionDescription.getServerAddress:()Lcom/mongodb/ServerAddress;
            invokespecial com.mongodb.MongoCursorNotFoundException.<init>:(JLcom/mongodb/ServerAddress;)V
            athrow
        12: .line 88
      StackMap locals: com.mongodb.internal.connection.GetMoreProtocol com.mongodb.internal.connection.InternalConnection long com.mongodb.internal.connection.GetMoreMessage com.mongodb.connection.QueryResult com.mongodb.internal.connection.ResponseBuffers
      StackMap stack:
            aload 6 /* responseBuffers */
            invokevirtual com.mongodb.internal.connection.ResponseBuffers.getReplyHeader:()Lcom/mongodb/internal/connection/ReplyHeader;
            invokevirtual com.mongodb.internal.connection.ReplyHeader.isQueryFailure:()Z
            ifeq 19
        13: .line 89
            new com.mongodb.internal.connection.ReplyMessage
            dup
            aload 6 /* responseBuffers */
            new org.bson.codecs.BsonDocumentCodec
            dup
            invokespecial org.bson.codecs.BsonDocumentCodec.<init>:()V
        14: .line 90
            aload 4 /* message */
            invokevirtual com.mongodb.internal.connection.GetMoreMessage.getId:()I
            i2l
        15: .line 89
            invokespecial com.mongodb.internal.connection.ReplyMessage.<init>:(Lcom/mongodb/internal/connection/ResponseBuffers;Lorg/bson/codecs/Decoder;J)V
        16: .line 90
            invokevirtual com.mongodb.internal.connection.ReplyMessage.getDocuments:()Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.bson.BsonDocument
        17: .line 89
            astore 7 /* errorDocument */
        start local 7 // org.bson.BsonDocument errorDocument
        18: .line 91
            aload 7 /* errorDocument */
            aload 1 /* connection */
            invokeinterface com.mongodb.internal.connection.InternalConnection.getDescription:()Lcom/mongodb/connection/ConnectionDescription;
            invokevirtual com.mongodb.connection.ConnectionDescription.getServerAddress:()Lcom/mongodb/ServerAddress;
            invokestatic com.mongodb.internal.connection.ProtocolHelper.getQueryFailureException:(Lorg/bson/BsonDocument;Lcom/mongodb/ServerAddress;)Lcom/mongodb/MongoException;
            athrow
        end local 7 // org.bson.BsonDocument errorDocument
        19: .line 95
      StackMap locals:
      StackMap stack:
            new com.mongodb.internal.connection.ReplyMessage
            dup
            aload 6 /* responseBuffers */
            aload 0 /* this */
            getfield com.mongodb.internal.connection.GetMoreProtocol.resultDecoder:Lorg/bson/codecs/Decoder;
            aload 4 /* message */
            invokevirtual com.mongodb.internal.connection.GetMoreMessage.getId:()I
            i2l
            invokespecial com.mongodb.internal.connection.ReplyMessage.<init>:(Lcom/mongodb/internal/connection/ResponseBuffers;Lorg/bson/codecs/Decoder;J)V
            astore 7 /* replyMessage */
        start local 7 // com.mongodb.internal.connection.ReplyMessage replyMessage
        20: .line 96
            new com.mongodb.connection.QueryResult
            dup
            aload 0 /* this */
            getfield com.mongodb.internal.connection.GetMoreProtocol.namespace:Lcom/mongodb/MongoNamespace;
            aload 7 /* replyMessage */
            invokevirtual com.mongodb.internal.connection.ReplyMessage.getDocuments:()Ljava/util/List;
        21: .line 97
            aload 7 /* replyMessage */
            invokevirtual com.mongodb.internal.connection.ReplyMessage.getReplyHeader:()Lcom/mongodb/internal/connection/ReplyHeader;
            invokevirtual com.mongodb.internal.connection.ReplyHeader.getCursorId:()J
            aload 1 /* connection */
            invokeinterface com.mongodb.internal.connection.InternalConnection.getDescription:()Lcom/mongodb/connection/ConnectionDescription;
            invokevirtual com.mongodb.connection.ConnectionDescription.getServerAddress:()Lcom/mongodb/ServerAddress;
        22: .line 96
            invokespecial com.mongodb.connection.QueryResult.<init>:(Lcom/mongodb/MongoNamespace;Ljava/util/List;JLcom/mongodb/ServerAddress;)V
            astore 5 /* result */
        23: .line 99
            aload 0 /* this */
            getfield com.mongodb.internal.connection.GetMoreProtocol.commandListener:Lcom/mongodb/event/CommandListener;
            ifnull 32
        24: .line 100
            aload 4 /* message */
            ldc "getMore"
        25: .line 101
            aload 0 /* this */
            aload 5 /* result */
            aload 6 /* responseBuffers */
            invokevirtual com.mongodb.internal.connection.GetMoreProtocol.asGetMoreCommandResponseDocument:(Lcom/mongodb/connection/QueryResult;Lcom/mongodb/internal/connection/ResponseBuffers;)Lorg/bson/BsonDocument;
            aload 1 /* connection */
            invokeinterface com.mongodb.internal.connection.InternalConnection.getDescription:()Lcom/mongodb/connection/ConnectionDescription;
        26: .line 102
            invokestatic java.lang.System.nanoTime:()J
            lload 2 /* startTimeNanos */
            lsub
            aload 0 /* this */
            getfield com.mongodb.internal.connection.GetMoreProtocol.commandListener:Lcom/mongodb/event/CommandListener;
        27: .line 100
            invokestatic com.mongodb.internal.connection.ProtocolHelper.sendCommandSucceededEvent:(Lcom/mongodb/internal/connection/RequestMessage;Ljava/lang/String;Lorg/bson/BsonDocument;Lcom/mongodb/connection/ConnectionDescription;JLcom/mongodb/event/CommandListener;)V
        end local 7 // com.mongodb.internal.connection.ReplyMessage replyMessage
        28: .line 104
            goto 32
      StackMap locals:
      StackMap stack: java.lang.Throwable
        29: astore 8
        30: .line 105
            aload 6 /* responseBuffers */
            invokevirtual com.mongodb.internal.connection.ResponseBuffers.close:()V
        31: .line 106
            aload 8
            athrow
        32: .line 105
      StackMap locals:
      StackMap stack:
            aload 6 /* responseBuffers */
            invokevirtual com.mongodb.internal.connection.ResponseBuffers.close:()V
        33: .line 107
            getstatic com.mongodb.internal.connection.GetMoreProtocol.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
            ldc "Get-more completed"
            invokeinterface com.mongodb.diagnostics.logging.Logger.debug:(Ljava/lang/String;)V
        34: .line 108
            aload 5 /* result */
        35: areturn
        end local 6 // com.mongodb.internal.connection.ResponseBuffers responseBuffers
        36: .line 109
      StackMap locals: com.mongodb.internal.connection.GetMoreProtocol com.mongodb.internal.connection.InternalConnection long com.mongodb.internal.connection.GetMoreMessage com.mongodb.connection.QueryResult
      StackMap stack: java.lang.RuntimeException
            astore 6 /* e */
        start local 6 // java.lang.RuntimeException e
        37: .line 110
            aload 0 /* this */
            getfield com.mongodb.internal.connection.GetMoreProtocol.commandListener:Lcom/mongodb/event/CommandListener;
            ifnull 41
        38: .line 111
            aload 4 /* message */
            ldc "getMore"
            aload 1 /* connection */
            invokeinterface com.mongodb.internal.connection.InternalConnection.getDescription:()Lcom/mongodb/connection/ConnectionDescription;
            invokestatic java.lang.System.nanoTime:()J
            lload 2 /* startTimeNanos */
            lsub
            aload 6 /* e */
        39: .line 112
            aload 0 /* this */
            getfield com.mongodb.internal.connection.GetMoreProtocol.commandListener:Lcom/mongodb/event/CommandListener;
        40: .line 111
            invokestatic com.mongodb.internal.connection.ProtocolHelper.sendCommandFailedEvent:(Lcom/mongodb/internal/connection/RequestMessage;Ljava/lang/String;Lcom/mongodb/connection/ConnectionDescription;JLjava/lang/Throwable;Lcom/mongodb/event/CommandListener;)V
        41: .line 114
      StackMap locals: java.lang.RuntimeException
      StackMap stack:
            aload 6 /* e */
            athrow
        end local 6 // java.lang.RuntimeException e
        end local 5 // com.mongodb.connection.QueryResult result
        end local 4 // com.mongodb.internal.connection.GetMoreMessage message
        end local 2 // long startTimeNanos
        end local 1 // com.mongodb.internal.connection.InternalConnection connection
        end local 0 // com.mongodb.internal.connection.GetMoreProtocol this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   42     0             this  Lcom/mongodb/internal/connection/GetMoreProtocol<TT;>;
            0   42     1       connection  Lcom/mongodb/internal/connection/InternalConnection;
            6   42     2   startTimeNanos  J
            7   42     4          message  Lcom/mongodb/internal/connection/GetMoreMessage;
            8   42     5           result  Lcom/mongodb/connection/QueryResult<TT;>;
           10   36     6  responseBuffers  Lcom/mongodb/internal/connection/ResponseBuffers;
           18   19     7    errorDocument  Lorg/bson/BsonDocument;
           20   28     7     replyMessage  Lcom/mongodb/internal/connection/ReplyMessage<TT;>;
           37   42     6                e  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
          10    29      29  any
           8    35      36  Class java.lang.RuntimeException
    Signature: (Lcom/mongodb/internal/connection/InternalConnection;)Lcom/mongodb/connection/QueryResult<TT;>;
    MethodParameters:
            Name  Flags
      connection  final

  public void executeAsync(com.mongodb.internal.connection.InternalConnection, com.mongodb.async.SingleResultCallback<com.mongodb.connection.QueryResult<T>>);
    descriptor: (Lcom/mongodb/internal/connection/InternalConnection;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=14, locals=9, args_size=3
        start local 0 // com.mongodb.internal.connection.GetMoreProtocol this
        start local 1 // com.mongodb.internal.connection.InternalConnection connection
        start local 2 // com.mongodb.async.SingleResultCallback callback
         0: .line 120
            invokestatic java.lang.System.nanoTime:()J
            lstore 3 /* startTimeNanos */
        start local 3 // long startTimeNanos
         1: .line 121
            new com.mongodb.internal.connection.GetMoreMessage
            dup
            aload 0 /* this */
            getfield com.mongodb.internal.connection.GetMoreProtocol.namespace:Lcom/mongodb/MongoNamespace;
            invokevirtual com.mongodb.MongoNamespace.getFullName:()Ljava/lang/String;
            aload 0 /* this */
            getfield com.mongodb.internal.connection.GetMoreProtocol.cursorId:J
            aload 0 /* this */
            getfield com.mongodb.internal.connection.GetMoreProtocol.numberToReturn:I
            invokespecial com.mongodb.internal.connection.GetMoreMessage.<init>:(Ljava/lang/String;JI)V
            astore 5 /* message */
        start local 5 // com.mongodb.internal.connection.GetMoreMessage message
         2: .line 122
            iconst_0
            istore 6 /* sentStartedEvent */
        start local 6 // boolean sentStartedEvent
         3: .line 124
            getstatic com.mongodb.internal.connection.GetMoreProtocol.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
            invokeinterface com.mongodb.diagnostics.logging.Logger.isDebugEnabled:()Z
            ifeq 8
         4: .line 125
            getstatic com.mongodb.internal.connection.GetMoreProtocol.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
            ldc "Asynchronously getting more documents from namespace %s with cursor %d on connection [%s] to server %s"
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
         5: .line 126
            aload 0 /* this */
            getfield com.mongodb.internal.connection.GetMoreProtocol.namespace:Lcom/mongodb/MongoNamespace;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield com.mongodb.internal.connection.GetMoreProtocol.cursorId:J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_2
            aload 1 /* connection */
            invokeinterface com.mongodb.internal.connection.InternalConnection.getDescription:()Lcom/mongodb/connection/ConnectionDescription;
            invokevirtual com.mongodb.connection.ConnectionDescription.getConnectionId:()Lcom/mongodb/connection/ConnectionId;
            aastore
            dup
            iconst_3
         6: .line 127
            aload 1 /* connection */
            invokeinterface com.mongodb.internal.connection.InternalConnection.getDescription:()Lcom/mongodb/connection/ConnectionDescription;
            invokevirtual com.mongodb.connection.ConnectionDescription.getServerAddress:()Lcom/mongodb/ServerAddress;
            aastore
         7: .line 125
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface com.mongodb.diagnostics.logging.Logger.debug:(Ljava/lang/String;)V
         8: .line 130
      StackMap locals: long com.mongodb.internal.connection.GetMoreMessage int
      StackMap stack:
            new com.mongodb.connection.ByteBufferBsonOutput
            dup
            aload 1 /* connection */
            invokespecial com.mongodb.connection.ByteBufferBsonOutput.<init>:(Lcom/mongodb/connection/BufferProvider;)V
            astore 7 /* bsonOutput */
        start local 7 // com.mongodb.connection.ByteBufferBsonOutput bsonOutput
         9: .line 132
            aload 0 /* this */
            getfield com.mongodb.internal.connection.GetMoreProtocol.commandListener:Lcom/mongodb/event/CommandListener;
            ifnull 14
        10: .line 133
            aload 5 /* message */
            aload 0 /* this */
            getfield com.mongodb.internal.connection.GetMoreProtocol.namespace:Lcom/mongodb/MongoNamespace;
            invokevirtual com.mongodb.MongoNamespace.getDatabaseName:()Ljava/lang/String;
            ldc "getMore"
            aload 0 /* this */
            invokevirtual com.mongodb.internal.connection.GetMoreProtocol.asGetMoreCommandDocument:()Lorg/bson/BsonDocument;
        11: .line 134
            aload 1 /* connection */
            invokeinterface com.mongodb.internal.connection.InternalConnection.getDescription:()Lcom/mongodb/connection/ConnectionDescription;
            aload 0 /* this */
            getfield com.mongodb.internal.connection.GetMoreProtocol.commandListener:Lcom/mongodb/event/CommandListener;
        12: .line 133
            invokestatic com.mongodb.internal.connection.ProtocolHelper.sendCommandStartedEvent:(Lcom/mongodb/internal/connection/RequestMessage;Ljava/lang/String;Ljava/lang/String;Lorg/bson/BsonDocument;Lcom/mongodb/connection/ConnectionDescription;Lcom/mongodb/event/CommandListener;)V
        13: .line 135
            iconst_1
            istore 6 /* sentStartedEvent */
        14: .line 138
      StackMap locals: com.mongodb.connection.ByteBufferBsonOutput
      StackMap stack:
            aload 5 /* message */
            aload 7 /* bsonOutput */
            invokestatic com.mongodb.internal.connection.ProtocolHelper.encodeMessage:(Lcom/mongodb/internal/connection/RequestMessage;Lorg/bson/io/BsonOutput;)V
        15: .line 139
            new com.mongodb.internal.connection.GetMoreProtocol$GetMoreResultCallback
            dup
            aload 0 /* this */
            aload 2 /* callback */
        16: .line 140
            aload 0 /* this */
            getfield com.mongodb.internal.connection.GetMoreProtocol.cursorId:J
        17: .line 141
            aload 5 /* message */
        18: .line 142
            aload 1 /* connection */
            invokeinterface com.mongodb.internal.connection.InternalConnection.getDescription:()Lcom/mongodb/connection/ConnectionDescription;
        19: .line 143
            aload 0 /* this */
            getfield com.mongodb.internal.connection.GetMoreProtocol.commandListener:Lcom/mongodb/event/CommandListener;
            lload 3 /* startTimeNanos */
        20: .line 139
            invokespecial com.mongodb.internal.connection.GetMoreProtocol$GetMoreResultCallback.<init>:(Lcom/mongodb/internal/connection/GetMoreProtocol;Lcom/mongodb/async/SingleResultCallback;JLcom/mongodb/internal/connection/GetMoreMessage;Lcom/mongodb/connection/ConnectionDescription;Lcom/mongodb/event/CommandListener;J)V
            astore 8 /* receiveCallback */
        start local 8 // com.mongodb.async.SingleResultCallback receiveCallback
        21: .line 144
            aload 1 /* connection */
            aload 7 /* bsonOutput */
            invokevirtual com.mongodb.connection.ByteBufferBsonOutput.getByteBuffers:()Ljava/util/List;
            aload 5 /* message */
            invokevirtual com.mongodb.internal.connection.GetMoreMessage.getId:()I
        22: .line 145
            new com.mongodb.internal.connection.SendMessageCallback
            dup
            aload 1 /* connection */
            aload 7 /* bsonOutput */
            aload 5 /* message */
            ldc "getMore"
        23: .line 146
            lload 3 /* startTimeNanos */
            aload 0 /* this */
            getfield com.mongodb.internal.connection.GetMoreProtocol.commandListener:Lcom/mongodb/event/CommandListener;
            aload 2 /* callback */
            aload 8 /* receiveCallback */
        24: .line 145
            invokespecial com.mongodb.internal.connection.SendMessageCallback.<init>:(Lcom/mongodb/internal/connection/InternalConnection;Lorg/bson/io/OutputBuffer;Lcom/mongodb/internal/connection/RequestMessage;Ljava/lang/String;JLcom/mongodb/event/CommandListener;Lcom/mongodb/async/SingleResultCallback;Lcom/mongodb/async/SingleResultCallback;)V
        25: .line 144
            invokeinterface com.mongodb.internal.connection.InternalConnection.sendMessageAsync:(Ljava/util/List;ILcom/mongodb/async/SingleResultCallback;)V
        end local 8 // com.mongodb.async.SingleResultCallback receiveCallback
        end local 7 // com.mongodb.connection.ByteBufferBsonOutput bsonOutput
        26: .line 147
            goto 33
      StackMap locals: com.mongodb.internal.connection.GetMoreProtocol com.mongodb.internal.connection.InternalConnection com.mongodb.async.SingleResultCallback long com.mongodb.internal.connection.GetMoreMessage int
      StackMap stack: java.lang.Throwable
        27: astore 7 /* t */
        start local 7 // java.lang.Throwable t
        28: .line 148
            iload 6 /* sentStartedEvent */
            ifeq 32
        29: .line 149
            aload 5 /* message */
            ldc "getMore"
            aload 1 /* connection */
            invokeinterface com.mongodb.internal.connection.InternalConnection.getDescription:()Lcom/mongodb/connection/ConnectionDescription;
            invokestatic java.lang.System.nanoTime:()J
            lload 3 /* startTimeNanos */
            lsub
            aload 7 /* t */
        30: .line 150
            aload 0 /* this */
            getfield com.mongodb.internal.connection.GetMoreProtocol.commandListener:Lcom/mongodb/event/CommandListener;
        31: .line 149
            invokestatic com.mongodb.internal.connection.ProtocolHelper.sendCommandFailedEvent:(Lcom/mongodb/internal/connection/RequestMessage;Ljava/lang/String;Lcom/mongodb/connection/ConnectionDescription;JLjava/lang/Throwable;Lcom/mongodb/event/CommandListener;)V
        32: .line 152
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 2 /* callback */
            aconst_null
            aload 7 /* t */
            invokeinterface com.mongodb.async.SingleResultCallback.onResult:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 7 // java.lang.Throwable t
        33: .line 154
      StackMap locals:
      StackMap stack:
            return
        end local 6 // boolean sentStartedEvent
        end local 5 // com.mongodb.internal.connection.GetMoreMessage message
        end local 3 // long startTimeNanos
        end local 2 // com.mongodb.async.SingleResultCallback callback
        end local 1 // com.mongodb.internal.connection.InternalConnection connection
        end local 0 // com.mongodb.internal.connection.GetMoreProtocol this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   34     0              this  Lcom/mongodb/internal/connection/GetMoreProtocol<TT;>;
            0   34     1        connection  Lcom/mongodb/internal/connection/InternalConnection;
            0   34     2          callback  Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/connection/QueryResult<TT;>;>;
            1   34     3    startTimeNanos  J
            2   34     5           message  Lcom/mongodb/internal/connection/GetMoreMessage;
            3   34     6  sentStartedEvent  Z
            9   26     7        bsonOutput  Lcom/mongodb/connection/ByteBufferBsonOutput;
           21   26     8   receiveCallback  Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/internal/connection/ResponseBuffers;>;
           28   33     7                 t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           3    26      27  Class java.lang.Throwable
    Signature: (Lcom/mongodb/internal/connection/InternalConnection;Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/connection/QueryResult<TT;>;>;)V
    MethodParameters:
            Name  Flags
      connection  final
      callback    final

  public void setCommandListener(com.mongodb.event.CommandListener);
    descriptor: (Lcom/mongodb/event/CommandListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.mongodb.internal.connection.GetMoreProtocol this
        start local 1 // com.mongodb.event.CommandListener commandListener
         0: .line 158
            aload 0 /* this */
            aload 1 /* commandListener */
            putfield com.mongodb.internal.connection.GetMoreProtocol.commandListener:Lcom/mongodb/event/CommandListener;
         1: .line 159
            return
        end local 1 // com.mongodb.event.CommandListener commandListener
        end local 0 // com.mongodb.internal.connection.GetMoreProtocol this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lcom/mongodb/internal/connection/GetMoreProtocol<TT;>;
            0    2     1  commandListener  Lcom/mongodb/event/CommandListener;
    MethodParameters:
                 Name  Flags
      commandListener  final

  private void sendMessage(com.mongodb.internal.connection.GetMoreMessage, com.mongodb.internal.connection.InternalConnection);
    descriptor: (Lcom/mongodb/internal/connection/GetMoreMessage;Lcom/mongodb/internal/connection/InternalConnection;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=5, args_size=3
        start local 0 // com.mongodb.internal.connection.GetMoreProtocol this
        start local 1 // com.mongodb.internal.connection.GetMoreMessage message
        start local 2 // com.mongodb.internal.connection.InternalConnection connection
         0: .line 162
            new com.mongodb.connection.ByteBufferBsonOutput
            dup
            aload 2 /* connection */
            invokespecial com.mongodb.connection.ByteBufferBsonOutput.<init>:(Lcom/mongodb/connection/BufferProvider;)V
            astore 3 /* bsonOutput */
        start local 3 // com.mongodb.connection.ByteBufferBsonOutput bsonOutput
         1: .line 164
            aload 0 /* this */
            getfield com.mongodb.internal.connection.GetMoreProtocol.commandListener:Lcom/mongodb/event/CommandListener;
            ifnull 5
         2: .line 165
            aload 1 /* message */
            aload 0 /* this */
            getfield com.mongodb.internal.connection.GetMoreProtocol.namespace:Lcom/mongodb/MongoNamespace;
            invokevirtual com.mongodb.MongoNamespace.getDatabaseName:()Ljava/lang/String;
            ldc "getMore"
            aload 0 /* this */
            invokevirtual com.mongodb.internal.connection.GetMoreProtocol.asGetMoreCommandDocument:()Lorg/bson/BsonDocument;
         3: .line 166
            aload 2 /* connection */
            invokeinterface com.mongodb.internal.connection.InternalConnection.getDescription:()Lcom/mongodb/connection/ConnectionDescription;
            aload 0 /* this */
            getfield com.mongodb.internal.connection.GetMoreProtocol.commandListener:Lcom/mongodb/event/CommandListener;
         4: .line 165
            invokestatic com.mongodb.internal.connection.ProtocolHelper.sendCommandStartedEvent:(Lcom/mongodb/internal/connection/RequestMessage;Ljava/lang/String;Ljava/lang/String;Lorg/bson/BsonDocument;Lcom/mongodb/connection/ConnectionDescription;Lcom/mongodb/event/CommandListener;)V
         5: .line 168
      StackMap locals: com.mongodb.connection.ByteBufferBsonOutput
      StackMap stack:
            aload 1 /* message */
            aload 3 /* bsonOutput */
            getstatic com.mongodb.internal.connection.NoOpSessionContext.INSTANCE:Lcom/mongodb/internal/connection/NoOpSessionContext;
            invokevirtual com.mongodb.internal.connection.GetMoreMessage.encode:(Lorg/bson/io/BsonOutput;Lcom/mongodb/session/SessionContext;)V
         6: .line 169
            aload 2 /* connection */
            aload 3 /* bsonOutput */
            invokevirtual com.mongodb.connection.ByteBufferBsonOutput.getByteBuffers:()Ljava/util/List;
            aload 1 /* message */
            invokevirtual com.mongodb.internal.connection.GetMoreMessage.getId:()I
            invokeinterface com.mongodb.internal.connection.InternalConnection.sendMessage:(Ljava/util/List;I)V
         7: .line 170
            goto 11
      StackMap locals:
      StackMap stack: java.lang.Throwable
         8: astore 4
         9: .line 171
            aload 3 /* bsonOutput */
            invokevirtual com.mongodb.connection.ByteBufferBsonOutput.close:()V
        10: .line 172
            aload 4
            athrow
        11: .line 171
      StackMap locals:
      StackMap stack:
            aload 3 /* bsonOutput */
            invokevirtual com.mongodb.connection.ByteBufferBsonOutput.close:()V
        12: .line 173
            return
        end local 3 // com.mongodb.connection.ByteBufferBsonOutput bsonOutput
        end local 2 // com.mongodb.internal.connection.InternalConnection connection
        end local 1 // com.mongodb.internal.connection.GetMoreMessage message
        end local 0 // com.mongodb.internal.connection.GetMoreProtocol this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   13     0        this  Lcom/mongodb/internal/connection/GetMoreProtocol<TT;>;
            0   13     1     message  Lcom/mongodb/internal/connection/GetMoreMessage;
            0   13     2  connection  Lcom/mongodb/internal/connection/InternalConnection;
            1   13     3  bsonOutput  Lcom/mongodb/connection/ByteBufferBsonOutput;
      Exception table:
        from    to  target  type
           1     8       8  any
    MethodParameters:
            Name  Flags
      message     final
      connection  final

  private org.bson.BsonDocument asGetMoreCommandDocument();
    descriptor: ()Lorg/bson/BsonDocument;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=1, args_size=1
        start local 0 // com.mongodb.internal.connection.GetMoreProtocol this
         0: .line 176
            new org.bson.BsonDocument
            dup
            ldc "getMore"
            new org.bson.BsonInt64
            dup
            aload 0 /* this */
            getfield com.mongodb.internal.connection.GetMoreProtocol.cursorId:J
            invokespecial org.bson.BsonInt64.<init>:(J)V
            invokespecial org.bson.BsonDocument.<init>:(Ljava/lang/String;Lorg/bson/BsonValue;)V
         1: .line 177
            ldc "collection"
            new org.bson.BsonString
            dup
            aload 0 /* this */
            getfield com.mongodb.internal.connection.GetMoreProtocol.namespace:Lcom/mongodb/MongoNamespace;
            invokevirtual com.mongodb.MongoNamespace.getCollectionName:()Ljava/lang/String;
            invokespecial org.bson.BsonString.<init>:(Ljava/lang/String;)V
            invokevirtual org.bson.BsonDocument.append:(Ljava/lang/String;Lorg/bson/BsonValue;)Lorg/bson/BsonDocument;
         2: .line 178
            ldc "batchSize"
            new org.bson.BsonInt32
            dup
            aload 0 /* this */
            getfield com.mongodb.internal.connection.GetMoreProtocol.numberToReturn:I
            invokespecial org.bson.BsonInt32.<init>:(I)V
            invokevirtual org.bson.BsonDocument.append:(Ljava/lang/String;Lorg/bson/BsonValue;)Lorg/bson/BsonDocument;
         3: .line 176
            areturn
        end local 0 // com.mongodb.internal.connection.GetMoreProtocol this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/mongodb/internal/connection/GetMoreProtocol<TT;>;

  private org.bson.BsonDocument asGetMoreCommandResponseDocument(com.mongodb.connection.QueryResult<T>, com.mongodb.internal.connection.ResponseBuffers);
    descriptor: (Lcom/mongodb/connection/QueryResult;Lcom/mongodb/internal/connection/ResponseBuffers;)Lorg/bson/BsonDocument;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=5, args_size=3
        start local 0 // com.mongodb.internal.connection.GetMoreProtocol this
        start local 1 // com.mongodb.connection.QueryResult queryResult
        start local 2 // com.mongodb.internal.connection.ResponseBuffers responseBuffers
         0: .line 183
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            astore 3 /* rawResultDocuments */
        start local 3 // java.util.List rawResultDocuments
         1: .line 184
            aload 2 /* responseBuffers */
            invokevirtual com.mongodb.internal.connection.ResponseBuffers.getReplyHeader:()Lcom/mongodb/internal/connection/ReplyHeader;
            invokevirtual com.mongodb.internal.connection.ReplyHeader.getNumberReturned:()I
            ifeq 4
         2: .line 185
            aload 2 /* responseBuffers */
            invokevirtual com.mongodb.internal.connection.ResponseBuffers.reset:()V
         3: .line 186
            aload 2 /* responseBuffers */
            invokestatic com.mongodb.internal.connection.ByteBufBsonDocument.createList:(Lcom/mongodb/internal/connection/ResponseBuffers;)Ljava/util/List;
            astore 3 /* rawResultDocuments */
         4: .line 189
      StackMap locals: java.util.List
      StackMap stack:
            new org.bson.BsonDocument
            dup
            ldc "id"
         5: .line 190
            aload 1 /* queryResult */
            invokevirtual com.mongodb.connection.QueryResult.getCursor:()Lcom/mongodb/ServerCursor;
            ifnonnull 7
         6: .line 191
            new org.bson.BsonInt64
            dup
            lconst_0
            invokespecial org.bson.BsonInt64.<init>:(J)V
            goto 8
      StackMap locals: com.mongodb.internal.connection.GetMoreProtocol com.mongodb.connection.QueryResult com.mongodb.internal.connection.ResponseBuffers java.util.List
      StackMap stack: new 4 new 4 java.lang.String
         7: new org.bson.BsonInt64
            dup
            aload 1 /* queryResult */
            invokevirtual com.mongodb.connection.QueryResult.getCursor:()Lcom/mongodb/ServerCursor;
            invokevirtual com.mongodb.ServerCursor.getId:()J
            invokespecial org.bson.BsonInt64.<init>:(J)V
         8: .line 189
      StackMap locals: com.mongodb.internal.connection.GetMoreProtocol com.mongodb.connection.QueryResult com.mongodb.internal.connection.ResponseBuffers java.util.List
      StackMap stack: new 4 new 4 java.lang.String org.bson.BsonInt64
            invokespecial org.bson.BsonDocument.<init>:(Ljava/lang/String;Lorg/bson/BsonValue;)V
         9: .line 192
            ldc "ns"
            new org.bson.BsonString
            dup
            aload 0 /* this */
            getfield com.mongodb.internal.connection.GetMoreProtocol.namespace:Lcom/mongodb/MongoNamespace;
            invokevirtual com.mongodb.MongoNamespace.getFullName:()Ljava/lang/String;
            invokespecial org.bson.BsonString.<init>:(Ljava/lang/String;)V
            invokevirtual org.bson.BsonDocument.append:(Ljava/lang/String;Lorg/bson/BsonValue;)Lorg/bson/BsonDocument;
        10: .line 193
            ldc "nextBatch"
            new org.bson.BsonArray
            dup
            aload 3 /* rawResultDocuments */
            invokespecial org.bson.BsonArray.<init>:(Ljava/util/List;)V
            invokevirtual org.bson.BsonDocument.append:(Ljava/lang/String;Lorg/bson/BsonValue;)Lorg/bson/BsonDocument;
        11: .line 189
            astore 4 /* cursorDocument */
        start local 4 // org.bson.BsonDocument cursorDocument
        12: .line 195
            new org.bson.BsonDocument
            dup
            ldc "cursor"
            aload 4 /* cursorDocument */
            invokespecial org.bson.BsonDocument.<init>:(Ljava/lang/String;Lorg/bson/BsonValue;)V
        13: .line 196
            ldc "ok"
            new org.bson.BsonDouble
            dup
            dconst_1
            invokespecial org.bson.BsonDouble.<init>:(D)V
            invokevirtual org.bson.BsonDocument.append:(Ljava/lang/String;Lorg/bson/BsonValue;)Lorg/bson/BsonDocument;
        14: .line 195
            areturn
        end local 4 // org.bson.BsonDocument cursorDocument
        end local 3 // java.util.List rawResultDocuments
        end local 2 // com.mongodb.internal.connection.ResponseBuffers responseBuffers
        end local 1 // com.mongodb.connection.QueryResult queryResult
        end local 0 // com.mongodb.internal.connection.GetMoreProtocol this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   15     0                this  Lcom/mongodb/internal/connection/GetMoreProtocol<TT;>;
            0   15     1         queryResult  Lcom/mongodb/connection/QueryResult<TT;>;
            0   15     2     responseBuffers  Lcom/mongodb/internal/connection/ResponseBuffers;
            1   15     3  rawResultDocuments  Ljava/util/List<Lcom/mongodb/internal/connection/ByteBufBsonDocument;>;
           12   15     4      cursorDocument  Lorg/bson/BsonDocument;
    Signature: (Lcom/mongodb/connection/QueryResult<TT;>;Lcom/mongodb/internal/connection/ResponseBuffers;)Lorg/bson/BsonDocument;
    MethodParameters:
                 Name  Flags
      queryResult      final
      responseBuffers  final

  public java.lang.Object execute(com.mongodb.internal.connection.InternalConnection);
    descriptor: (Lcom/mongodb/internal/connection/InternalConnection;)Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual com.mongodb.internal.connection.GetMoreProtocol.execute:(Lcom/mongodb/internal/connection/InternalConnection;)Lcom/mongodb/connection/QueryResult;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: <T:Ljava/lang/Object;>Ljava/lang/Object;Lcom/mongodb/internal/connection/LegacyProtocol<Lcom/mongodb/connection/QueryResult<TT;>;>;
SourceFile: "GetMoreProtocol.java"
NestMembers:
  com.mongodb.internal.connection.GetMoreProtocol$GetMoreResultCallback
InnerClasses:
  GetMoreResultCallback = com.mongodb.internal.connection.GetMoreProtocol$GetMoreResultCallback of com.mongodb.internal.connection.GetMoreProtocol