public final class com.mongodb.internal.connection.tlschannel.ClientTlsChannel$Builder extends com.mongodb.internal.connection.tlschannel.TlsChannelBuilder<com.mongodb.internal.connection.tlschannel.ClientTlsChannel$Builder>
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.mongodb.internal.connection.tlschannel.ClientTlsChannel$Builder
  super_class: com.mongodb.internal.connection.tlschannel.TlsChannelBuilder
{
  private java.util.function.Supplier<javax.net.ssl.SSLEngine> sslEngineFactory;
    descriptor: Ljava/util/function/Supplier;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/function/Supplier<Ljavax/net/ssl/SSLEngine;>;

  private void <init>(java.nio.channels.ByteChannel, javax.net.ssl.SSLEngine);
    descriptor: (Ljava/nio/channels/ByteChannel;Ljavax/net/ssl/SSLEngine;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.mongodb.internal.connection.tlschannel.ClientTlsChannel$Builder this
        start local 1 // java.nio.channels.ByteChannel underlying
        start local 2 // javax.net.ssl.SSLEngine sslEngine
         0: .line 50
            aload 0 /* this */
            aload 1 /* underlying */
            invokespecial com.mongodb.internal.connection.tlschannel.TlsChannelBuilder.<init>:(Ljava/nio/channels/ByteChannel;)V
         1: .line 51
            aload 0 /* this */
            new com.mongodb.internal.connection.tlschannel.ClientTlsChannel$Builder$1
            dup
            aload 0 /* this */
            aload 2 /* sslEngine */
            invokespecial com.mongodb.internal.connection.tlschannel.ClientTlsChannel$Builder$1.<init>:(Lcom/mongodb/internal/connection/tlschannel/ClientTlsChannel$Builder;Ljavax/net/ssl/SSLEngine;)V
            putfield com.mongodb.internal.connection.tlschannel.ClientTlsChannel$Builder.sslEngineFactory:Ljava/util/function/Supplier;
         2: .line 57
            return
        end local 2 // javax.net.ssl.SSLEngine sslEngine
        end local 1 // java.nio.channels.ByteChannel underlying
        end local 0 // com.mongodb.internal.connection.tlschannel.ClientTlsChannel$Builder this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lcom/mongodb/internal/connection/tlschannel/ClientTlsChannel$Builder;
            0    3     1  underlying  Ljava/nio/channels/ByteChannel;
            0    3     2   sslEngine  Ljavax/net/ssl/SSLEngine;
    MethodParameters:
            Name  Flags
      underlying  final
      sslEngine   final

  private void <init>(java.nio.channels.ByteChannel, javax.net.ssl.SSLContext);
    descriptor: (Ljava/nio/channels/ByteChannel;Ljavax/net/ssl/SSLContext;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.mongodb.internal.connection.tlschannel.ClientTlsChannel$Builder this
        start local 1 // java.nio.channels.ByteChannel underlying
        start local 2 // javax.net.ssl.SSLContext sslContext
         0: .line 60
            aload 0 /* this */
            aload 1 /* underlying */
            invokespecial com.mongodb.internal.connection.tlschannel.TlsChannelBuilder.<init>:(Ljava/nio/channels/ByteChannel;)V
         1: .line 61
            aload 0 /* this */
            new com.mongodb.internal.connection.tlschannel.ClientTlsChannel$Builder$2
            dup
            aload 0 /* this */
            aload 2 /* sslContext */
            invokespecial com.mongodb.internal.connection.tlschannel.ClientTlsChannel$Builder$2.<init>:(Lcom/mongodb/internal/connection/tlschannel/ClientTlsChannel$Builder;Ljavax/net/ssl/SSLContext;)V
            putfield com.mongodb.internal.connection.tlschannel.ClientTlsChannel$Builder.sslEngineFactory:Ljava/util/function/Supplier;
         2: .line 67
            return
        end local 2 // javax.net.ssl.SSLContext sslContext
        end local 1 // java.nio.channels.ByteChannel underlying
        end local 0 // com.mongodb.internal.connection.tlschannel.ClientTlsChannel$Builder this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lcom/mongodb/internal/connection/tlschannel/ClientTlsChannel$Builder;
            0    3     1  underlying  Ljava/nio/channels/ByteChannel;
            0    3     2  sslContext  Ljavax/net/ssl/SSLContext;
    MethodParameters:
            Name  Flags
      underlying  final
      sslContext  final

  com.mongodb.internal.connection.tlschannel.ClientTlsChannel$Builder getThis();
    descriptor: ()Lcom/mongodb/internal/connection/tlschannel/ClientTlsChannel$Builder;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.internal.connection.tlschannel.ClientTlsChannel$Builder this
         0: .line 71
            aload 0 /* this */
            areturn
        end local 0 // com.mongodb.internal.connection.tlschannel.ClientTlsChannel$Builder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/internal/connection/tlschannel/ClientTlsChannel$Builder;

  public com.mongodb.internal.connection.tlschannel.ClientTlsChannel build();
    descriptor: ()Lcom/mongodb/internal/connection/tlschannel/ClientTlsChannel;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=10, locals=1, args_size=1
        start local 0 // com.mongodb.internal.connection.tlschannel.ClientTlsChannel$Builder this
         0: .line 75
            new com.mongodb.internal.connection.tlschannel.ClientTlsChannel
            dup
            aload 0 /* this */
            getfield com.mongodb.internal.connection.tlschannel.ClientTlsChannel$Builder.underlying:Ljava/nio/channels/ByteChannel;
            aload 0 /* this */
            getfield com.mongodb.internal.connection.tlschannel.ClientTlsChannel$Builder.sslEngineFactory:Ljava/util/function/Supplier;
            invokeinterface java.util.function.Supplier.get:()Ljava/lang/Object;
            checkcast javax.net.ssl.SSLEngine
            aload 0 /* this */
            getfield com.mongodb.internal.connection.tlschannel.ClientTlsChannel$Builder.sessionInitCallback:Ljava/util/function/Consumer;
            aload 0 /* this */
            getfield com.mongodb.internal.connection.tlschannel.ClientTlsChannel$Builder.runTasks:Z
         1: .line 76
            aload 0 /* this */
            getfield com.mongodb.internal.connection.tlschannel.ClientTlsChannel$Builder.plainBufferAllocator:Lcom/mongodb/internal/connection/tlschannel/BufferAllocator;
            aload 0 /* this */
            getfield com.mongodb.internal.connection.tlschannel.ClientTlsChannel$Builder.encryptedBufferAllocator:Lcom/mongodb/internal/connection/tlschannel/BufferAllocator;
            aload 0 /* this */
            getfield com.mongodb.internal.connection.tlschannel.ClientTlsChannel$Builder.releaseBuffers:Z
            aload 0 /* this */
            getfield com.mongodb.internal.connection.tlschannel.ClientTlsChannel$Builder.waitForCloseConfirmation:Z
         2: .line 75
            invokespecial com.mongodb.internal.connection.tlschannel.ClientTlsChannel.<init>:(Ljava/nio/channels/ByteChannel;Ljavax/net/ssl/SSLEngine;Ljava/util/function/Consumer;ZLcom/mongodb/internal/connection/tlschannel/BufferAllocator;Lcom/mongodb/internal/connection/tlschannel/BufferAllocator;ZZ)V
            areturn
        end local 0 // com.mongodb.internal.connection.tlschannel.ClientTlsChannel$Builder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/mongodb/internal/connection/tlschannel/ClientTlsChannel$Builder;

  com.mongodb.internal.connection.tlschannel.TlsChannelBuilder getThis();
    descriptor: ()Lcom/mongodb/internal/connection/tlschannel/TlsChannelBuilder;
    flags: (0x1040) ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual com.mongodb.internal.connection.tlschannel.ClientTlsChannel$Builder.getThis:()Lcom/mongodb/internal/connection/tlschannel/ClientTlsChannel$Builder;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: Lcom/mongodb/internal/connection/tlschannel/TlsChannelBuilder<Lcom/mongodb/internal/connection/tlschannel/ClientTlsChannel$Builder;>;
SourceFile: "ClientTlsChannel.java"
NestHost: com.mongodb.internal.connection.tlschannel.ClientTlsChannel
InnerClasses:
  public final Builder = com.mongodb.internal.connection.tlschannel.ClientTlsChannel$Builder of com.mongodb.internal.connection.tlschannel.ClientTlsChannel
  com.mongodb.internal.connection.tlschannel.ClientTlsChannel$Builder$1
  com.mongodb.internal.connection.tlschannel.ClientTlsChannel$Builder$2