final class com.microsoft.sqlserver.jdbc.TDSChannel implements java.io.Serializable
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.microsoft.sqlserver.jdbc.TDSChannel
  super_class: java.lang.Object
{
  private static final long serialVersionUID;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: -866497813437384090

  private static final java.util.logging.Logger logger;
    descriptor: Ljava/util/logging/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final java.lang.String traceID;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.microsoft.sqlserver.jdbc.SQLServerConnection con;
    descriptor: Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.microsoft.sqlserver.jdbc.TDSWriter tdsWriter;
    descriptor: Lcom/microsoft/sqlserver/jdbc/TDSWriter;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private java.net.Socket tcpSocket;
    descriptor: Ljava/net/Socket;
    flags: (0x0002) ACC_PRIVATE

  private javax.net.ssl.SSLSocket sslSocket;
    descriptor: Ljavax/net/ssl/SSLSocket;
    flags: (0x0002) ACC_PRIVATE

  private java.net.Socket channelSocket;
    descriptor: Ljava/net/Socket;
    flags: (0x0002) ACC_PRIVATE

  com.microsoft.sqlserver.jdbc.TDSChannel$ProxySocket proxySocket;
    descriptor: Lcom/microsoft/sqlserver/jdbc/TDSChannel$ProxySocket;
    flags: (0x0000) 

  private java.io.InputStream tcpInputStream;
    descriptor: Ljava/io/InputStream;
    flags: (0x0002) ACC_PRIVATE

  private java.io.OutputStream tcpOutputStream;
    descriptor: Ljava/io/OutputStream;
    flags: (0x0002) ACC_PRIVATE

  private java.io.InputStream inputStream;
    descriptor: Ljava/io/InputStream;
    flags: (0x0002) ACC_PRIVATE

  private java.io.OutputStream outputStream;
    descriptor: Ljava/io/OutputStream;
    flags: (0x0002) ACC_PRIVATE

  private static java.util.logging.Logger packetLogger;
    descriptor: Ljava/util/logging/Logger;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private final boolean isLoggingPackets;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

  private int spid;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

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

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

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

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

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

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 561
            ldc Lcom/microsoft/sqlserver/jdbc/TDSChannel;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic com.microsoft.sqlserver.jdbc.TDSChannel.$assertionsDisabled:Z
         3: .line 567
            ldc "com.microsoft.sqlserver.jdbc.internals.TDS.Channel"
            invokestatic java.util.logging.Logger.getLogger:(Ljava/lang/String;)Ljava/util/logging/Logger;
            putstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
         4: .line 621
            ldc "com.microsoft.sqlserver.jdbc.internals.TDS.DATA"
            invokestatic java.util.logging.Logger.getLogger:(Ljava/lang/String;)Ljava/util/logging/Logger;
            putstatic com.microsoft.sqlserver.jdbc.TDSChannel.packetLogger:Ljava/util/logging/Logger;
         5: .line 1965
            ldc "file.separator"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            putstatic com.microsoft.sqlserver.jdbc.TDSChannel.SEPARATOR:Ljava/lang/String;
         6: .line 1966
            ldc "java.home"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            putstatic com.microsoft.sqlserver.jdbc.TDSChannel.JAVA_HOME:Ljava/lang/String;
         7: .line 1967
            new java.lang.StringBuilder
            dup
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.JAVA_HOME:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.SEPARATOR:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "lib"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.SEPARATOR:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "security"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            putstatic com.microsoft.sqlserver.jdbc.TDSChannel.JAVA_SECURITY:Ljava/lang/String;
         8: .line 1968
            new java.lang.StringBuilder
            dup
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.JAVA_SECURITY:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.SEPARATOR:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "jssecacerts"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            putstatic com.microsoft.sqlserver.jdbc.TDSChannel.JSSECACERTS:Ljava/lang/String;
         9: .line 1969
            new java.lang.StringBuilder
            dup
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.JAVA_SECURITY:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.SEPARATOR:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "cacerts"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            putstatic com.microsoft.sqlserver.jdbc.TDSChannel.CACERTS:Ljava/lang/String;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  final java.util.logging.Logger getLogger();
    descriptor: ()Ljava/util/logging/Logger;
    flags: (0x0010) ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.TDSChannel this
         0: .line 570
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            areturn
        end local 0 // com.microsoft.sqlserver.jdbc.TDSChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/microsoft/sqlserver/jdbc/TDSChannel;

  public final java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.TDSChannel this
         0: .line 576
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.traceID:Ljava/lang/String;
            areturn
        end local 0 // com.microsoft.sqlserver.jdbc.TDSChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/microsoft/sqlserver/jdbc/TDSChannel;

  final com.microsoft.sqlserver.jdbc.TDSWriter getWriter();
    descriptor: ()Lcom/microsoft/sqlserver/jdbc/TDSWriter;
    flags: (0x0010) ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.TDSChannel this
         0: .line 584
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.tdsWriter:Lcom/microsoft/sqlserver/jdbc/TDSWriter;
            areturn
        end local 0 // com.microsoft.sqlserver.jdbc.TDSChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/microsoft/sqlserver/jdbc/TDSChannel;

  final com.microsoft.sqlserver.jdbc.TDSReader getReader(com.microsoft.sqlserver.jdbc.TDSCommand);
    descriptor: (Lcom/microsoft/sqlserver/jdbc/TDSCommand;)Lcom/microsoft/sqlserver/jdbc/TDSReader;
    flags: (0x0010) ACC_FINAL
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.TDSChannel this
        start local 1 // com.microsoft.sqlserver.jdbc.TDSCommand command
         0: .line 588
            new com.microsoft.sqlserver.jdbc.TDSReader
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.con:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            aload 1 /* command */
            invokespecial com.microsoft.sqlserver.jdbc.TDSReader.<init>:(Lcom/microsoft/sqlserver/jdbc/TDSChannel;Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;Lcom/microsoft/sqlserver/jdbc/TDSCommand;)V
            areturn
        end local 1 // com.microsoft.sqlserver.jdbc.TDSCommand command
        end local 0 // com.microsoft.sqlserver.jdbc.TDSChannel this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/microsoft/sqlserver/jdbc/TDSChannel;
            0    1     1  command  Lcom/microsoft/sqlserver/jdbc/TDSCommand;
    MethodParameters:
         Name  Flags
      command  

  final boolean isLoggingPackets();
    descriptor: ()Z
    flags: (0x0010) ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.TDSChannel this
         0: .line 625
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.isLoggingPackets:Z
            ireturn
        end local 0 // com.microsoft.sqlserver.jdbc.TDSChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/microsoft/sqlserver/jdbc/TDSChannel;

  void setSPID(int);
    descriptor: (I)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.TDSChannel this
        start local 1 // int spid
         0: .line 637
            aload 0 /* this */
            iload 1 /* spid */
            putfield com.microsoft.sqlserver.jdbc.TDSChannel.spid:I
         1: .line 638
            return
        end local 1 // int spid
        end local 0 // com.microsoft.sqlserver.jdbc.TDSChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/microsoft/sqlserver/jdbc/TDSChannel;
            0    2     1  spid  I
    MethodParameters:
      Name  Flags
      spid  

  int getSPID();
    descriptor: ()I
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.TDSChannel this
         0: .line 641
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.spid:I
            ireturn
        end local 0 // com.microsoft.sqlserver.jdbc.TDSChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/microsoft/sqlserver/jdbc/TDSChannel;

  void resetPooledConnection();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.TDSChannel this
         0: .line 645
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.tdsWriter:Lcom/microsoft/sqlserver/jdbc/TDSWriter;
            invokevirtual com.microsoft.sqlserver.jdbc.TDSWriter.resetPooledConnection:()V
         1: .line 646
            return
        end local 0 // com.microsoft.sqlserver.jdbc.TDSChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/microsoft/sqlserver/jdbc/TDSChannel;

  void <init>(com.microsoft.sqlserver.jdbc.SQLServerConnection);
    descriptor: (Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.TDSChannel this
        start local 1 // com.microsoft.sqlserver.jdbc.SQLServerConnection con
         0: .line 648
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 607
            aload 0 /* this */
            aconst_null
            putfield com.microsoft.sqlserver.jdbc.TDSChannel.proxySocket:Lcom/microsoft/sqlserver/jdbc/TDSChannel$ProxySocket;
         2: .line 622
            aload 0 /* this */
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.packetLogger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINEST:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            putfield com.microsoft.sqlserver.jdbc.TDSChannel.isLoggingPackets:Z
         3: .line 629
            aload 0 /* this */
            iconst_0
            putfield com.microsoft.sqlserver.jdbc.TDSChannel.numMsgsSent:I
         4: .line 630
            aload 0 /* this */
            iconst_0
            putfield com.microsoft.sqlserver.jdbc.TDSChannel.numMsgsRcvd:I
         5: .line 634
            aload 0 /* this */
            iconst_0
            putfield com.microsoft.sqlserver.jdbc.TDSChannel.spid:I
         6: .line 649
            aload 0 /* this */
            aload 1 /* con */
            putfield com.microsoft.sqlserver.jdbc.TDSChannel.con:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
         7: .line 650
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "TDSChannel ("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* con */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            putfield com.microsoft.sqlserver.jdbc.TDSChannel.traceID:Ljava/lang/String;
         8: .line 651
            aload 0 /* this */
            aconst_null
            putfield com.microsoft.sqlserver.jdbc.TDSChannel.tcpSocket:Ljava/net/Socket;
         9: .line 652
            aload 0 /* this */
            aconst_null
            putfield com.microsoft.sqlserver.jdbc.TDSChannel.sslSocket:Ljavax/net/ssl/SSLSocket;
        10: .line 653
            aload 0 /* this */
            aconst_null
            putfield com.microsoft.sqlserver.jdbc.TDSChannel.channelSocket:Ljava/net/Socket;
        11: .line 654
            aload 0 /* this */
            aconst_null
            putfield com.microsoft.sqlserver.jdbc.TDSChannel.tcpInputStream:Ljava/io/InputStream;
        12: .line 655
            aload 0 /* this */
            aconst_null
            putfield com.microsoft.sqlserver.jdbc.TDSChannel.tcpOutputStream:Ljava/io/OutputStream;
        13: .line 656
            aload 0 /* this */
            aconst_null
            putfield com.microsoft.sqlserver.jdbc.TDSChannel.inputStream:Ljava/io/InputStream;
        14: .line 657
            aload 0 /* this */
            aconst_null
            putfield com.microsoft.sqlserver.jdbc.TDSChannel.outputStream:Ljava/io/OutputStream;
        15: .line 658
            aload 0 /* this */
            new com.microsoft.sqlserver.jdbc.TDSWriter
            dup
            aload 0 /* this */
            aload 1 /* con */
            invokespecial com.microsoft.sqlserver.jdbc.TDSWriter.<init>:(Lcom/microsoft/sqlserver/jdbc/TDSChannel;Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;)V
            putfield com.microsoft.sqlserver.jdbc.TDSChannel.tdsWriter:Lcom/microsoft/sqlserver/jdbc/TDSWriter;
        16: .line 659
            return
        end local 1 // com.microsoft.sqlserver.jdbc.SQLServerConnection con
        end local 0 // com.microsoft.sqlserver.jdbc.TDSChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   17     0  this  Lcom/microsoft/sqlserver/jdbc/TDSChannel;
            0   17     1   con  Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
    MethodParameters:
      Name  Flags
      con   

  final java.net.InetSocketAddress open(java.lang.String, int, int, boolean, boolean, boolean, int);
    descriptor: (Ljava/lang/String;IIZZZI)Ljava/net/InetSocketAddress;
    flags: (0x0010) ACC_FINAL
    Code:
      stack=10, locals=10, args_size=8
        start local 0 // com.microsoft.sqlserver.jdbc.TDSChannel this
        start local 1 // java.lang.String host
        start local 2 // int port
        start local 3 // int timeoutMillis
        start local 4 // boolean useParallel
        start local 5 // boolean useTnir
        start local 6 // boolean isTnirFirstAttempt
        start local 7 // int timeoutMillisForFullTimeout
         0: .line 668
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 2
         1: .line 669
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.TDSChannel.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ": Opening TCP socket..."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.finer:(Ljava/lang/String;)V
         2: .line 671
      StackMap locals:
      StackMap stack:
            new com.microsoft.sqlserver.jdbc.SocketFinder
            dup
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.traceID:Ljava/lang/String;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.con:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            invokespecial com.microsoft.sqlserver.jdbc.SocketFinder.<init>:(Ljava/lang/String;Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;)V
            astore 8 /* socketFinder */
        start local 8 // com.microsoft.sqlserver.jdbc.SocketFinder socketFinder
         3: .line 672
            aload 0 /* this */
            aload 0 /* this */
            aload 8 /* socketFinder */
            aload 1 /* host */
            iload 2 /* port */
            iload 3 /* timeoutMillis */
            iload 4 /* useParallel */
            iload 5 /* useTnir */
         4: .line 673
            iload 6 /* isTnirFirstAttempt */
            iload 7 /* timeoutMillisForFullTimeout */
         5: .line 672
            invokevirtual com.microsoft.sqlserver.jdbc.SocketFinder.findSocket:(Ljava/lang/String;IIZZZI)Ljava/net/Socket;
            dup_x1
            putfield com.microsoft.sqlserver.jdbc.TDSChannel.tcpSocket:Ljava/net/Socket;
            putfield com.microsoft.sqlserver.jdbc.TDSChannel.channelSocket:Ljava/net/Socket;
         6: .line 677
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.tcpSocket:Ljava/net/Socket;
            iconst_1
            invokevirtual java.net.Socket.setTcpNoDelay:(Z)V
         7: .line 678
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.tcpSocket:Ljava/net/Socket;
            iconst_1
            invokevirtual java.net.Socket.setKeepAlive:(Z)V
         8: .line 681
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.con:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.getSocketTimeoutMilliseconds:()I
            istore 9 /* socketTimeout */
        start local 9 // int socketTimeout
         9: .line 682
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.tcpSocket:Ljava/net/Socket;
            iload 9 /* socketTimeout */
            invokevirtual java.net.Socket.setSoTimeout:(I)V
        10: .line 684
            aload 0 /* this */
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.tcpSocket:Ljava/net/Socket;
            invokevirtual java.net.Socket.getInputStream:()Ljava/io/InputStream;
            dup_x1
            putfield com.microsoft.sqlserver.jdbc.TDSChannel.tcpInputStream:Ljava/io/InputStream;
            putfield com.microsoft.sqlserver.jdbc.TDSChannel.inputStream:Ljava/io/InputStream;
        11: .line 685
            aload 0 /* this */
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.tcpSocket:Ljava/net/Socket;
            invokevirtual java.net.Socket.getOutputStream:()Ljava/io/OutputStream;
            dup_x1
            putfield com.microsoft.sqlserver.jdbc.TDSChannel.tcpOutputStream:Ljava/io/OutputStream;
            putfield com.microsoft.sqlserver.jdbc.TDSChannel.outputStream:Ljava/io/OutputStream;
        end local 9 // int socketTimeout
        12: .line 686
            goto 15
      StackMap locals: com.microsoft.sqlserver.jdbc.TDSChannel java.lang.String int int int int int int com.microsoft.sqlserver.jdbc.SocketFinder
      StackMap stack: java.io.IOException
        13: astore 9 /* ex */
        start local 9 // java.io.IOException ex
        14: .line 687
            aload 1 /* host */
            iload 2 /* port */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.con:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            aload 9 /* ex */
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.ConvertConnectExceptionToSQLServerException:(Ljava/lang/String;ILcom/microsoft/sqlserver/jdbc/SQLServerConnection;Ljava/lang/Exception;)V
        end local 9 // java.io.IOException ex
        15: .line 689
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.channelSocket:Ljava/net/Socket;
            invokevirtual java.net.Socket.getRemoteSocketAddress:()Ljava/net/SocketAddress;
            checkcast java.net.InetSocketAddress
            areturn
        end local 8 // com.microsoft.sqlserver.jdbc.SocketFinder socketFinder
        end local 7 // int timeoutMillisForFullTimeout
        end local 6 // boolean isTnirFirstAttempt
        end local 5 // boolean useTnir
        end local 4 // boolean useParallel
        end local 3 // int timeoutMillis
        end local 2 // int port
        end local 1 // java.lang.String host
        end local 0 // com.microsoft.sqlserver.jdbc.TDSChannel this
      LocalVariableTable:
        Start  End  Slot                         Name  Signature
            0   16     0                         this  Lcom/microsoft/sqlserver/jdbc/TDSChannel;
            0   16     1                         host  Ljava/lang/String;
            0   16     2                         port  I
            0   16     3                timeoutMillis  I
            0   16     4                  useParallel  Z
            0   16     5                      useTnir  Z
            0   16     6           isTnirFirstAttempt  Z
            0   16     7  timeoutMillisForFullTimeout  I
            3   16     8                 socketFinder  Lcom/microsoft/sqlserver/jdbc/SocketFinder;
            9   12     9                socketTimeout  I
           14   15     9                           ex  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           6    12      13  Class java.io.IOException
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException
    MethodParameters:
                             Name  Flags
      host                         
      port                         
      timeoutMillis                
      useParallel                  
      useTnir                      
      isTnirFirstAttempt           
      timeoutMillisForFullTimeout  

  void disableSSL();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.TDSChannel this
         0: .line 696
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 2
         1: .line 697
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.TDSChannel.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " Disabling SSL..."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.finer:(Ljava/lang/String;)V
         2: .line 709
      StackMap locals:
      StackMap stack:
            new java.io.ByteArrayInputStream
            dup
            iconst_0
            newarray 8
            invokespecial java.io.ByteArrayInputStream.<init>:([B)V
            astore 1 /* is */
        start local 1 // java.io.InputStream is
         3: .line 711
            aload 1 /* is */
            invokevirtual java.io.InputStream.close:()V
         4: .line 712
            goto 7
      StackMap locals: com.microsoft.sqlserver.jdbc.TDSChannel java.io.InputStream
      StackMap stack: java.io.IOException
         5: astore 2 /* e */
        start local 2 // java.io.IOException e
         6: .line 715
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            ldc "Ignored error closing InputStream: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.fine:(Ljava/lang/String;)V
        end local 2 // java.io.IOException e
         7: .line 718
      StackMap locals:
      StackMap stack:
            new java.io.ByteArrayOutputStream
            dup
            invokespecial java.io.ByteArrayOutputStream.<init>:()V
            astore 2 /* os */
        start local 2 // java.io.OutputStream os
         8: .line 720
            aload 2 /* os */
            invokevirtual java.io.OutputStream.close:()V
         9: .line 721
            goto 12
      StackMap locals: com.microsoft.sqlserver.jdbc.TDSChannel java.io.InputStream java.io.OutputStream
      StackMap stack: java.io.IOException
        10: astore 3 /* e */
        start local 3 // java.io.IOException e
        11: .line 724
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            ldc "Ignored error closing OutputStream: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.fine:(Ljava/lang/String;)V
        end local 3 // java.io.IOException e
        12: .line 728
      StackMap locals:
      StackMap stack:
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINEST:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 14
        13: .line 729
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.TDSChannel.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " Rewiring proxy streams for SSL socket close"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.finest:(Ljava/lang/String;)V
        14: .line 730
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.proxySocket:Lcom/microsoft/sqlserver/jdbc/TDSChannel$ProxySocket;
            aload 1 /* is */
            aload 2 /* os */
            invokevirtual com.microsoft.sqlserver.jdbc.TDSChannel$ProxySocket.setStreams:(Ljava/io/InputStream;Ljava/io/OutputStream;)V
        15: .line 735
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 17
        16: .line 736
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.TDSChannel.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " Closing SSL socket"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.finer:(Ljava/lang/String;)V
        17: .line 738
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.sslSocket:Ljavax/net/ssl/SSLSocket;
            invokevirtual javax.net.ssl.SSLSocket.close:()V
        18: .line 739
            goto 21
      StackMap locals:
      StackMap stack: java.io.IOException
        19: astore 3 /* e */
        start local 3 // java.io.IOException e
        20: .line 741
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            ldc "Ignored error closing SSLSocket: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.fine:(Ljava/lang/String;)V
        end local 3 // java.io.IOException e
        21: .line 747
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield com.microsoft.sqlserver.jdbc.TDSChannel.proxySocket:Lcom/microsoft/sqlserver/jdbc/TDSChannel$ProxySocket;
        22: .line 751
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.tcpInputStream:Ljava/io/InputStream;
            putfield com.microsoft.sqlserver.jdbc.TDSChannel.inputStream:Ljava/io/InputStream;
        23: .line 752
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.tcpOutputStream:Ljava/io/OutputStream;
            putfield com.microsoft.sqlserver.jdbc.TDSChannel.outputStream:Ljava/io/OutputStream;
        24: .line 753
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.tcpSocket:Ljava/net/Socket;
            putfield com.microsoft.sqlserver.jdbc.TDSChannel.channelSocket:Ljava/net/Socket;
        25: .line 754
            aload 0 /* this */
            aconst_null
            putfield com.microsoft.sqlserver.jdbc.TDSChannel.sslSocket:Ljavax/net/ssl/SSLSocket;
        26: .line 756
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 28
        27: .line 757
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.TDSChannel.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " SSL disabled"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.finer:(Ljava/lang/String;)V
        28: .line 758
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.io.OutputStream os
        end local 1 // java.io.InputStream is
        end local 0 // com.microsoft.sqlserver.jdbc.TDSChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   29     0  this  Lcom/microsoft/sqlserver/jdbc/TDSChannel;
            3   29     1    is  Ljava/io/InputStream;
            6    7     2     e  Ljava/io/IOException;
            8   29     2    os  Ljava/io/OutputStream;
           11   12     3     e  Ljava/io/IOException;
           20   21     3     e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           3     4       5  Class java.io.IOException
           8     9      10  Class java.io.IOException
          15    18      19  Class java.io.IOException

  void enableSSL(java.lang.String, int, java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=9, locals=22, args_size=6
        start local 0 // com.microsoft.sqlserver.jdbc.TDSChannel this
        start local 1 // java.lang.String host
        start local 2 // int port
        start local 3 // java.lang.String clientCertificate
        start local 4 // java.lang.String clientKey
        start local 5 // java.lang.String clientKeyPassword
         0: .line 1633
            aconst_null
            astore 6 /* tmfProvider */
        start local 6 // java.security.Provider tmfProvider
         1: .line 1634
            aconst_null
            astore 7 /* sslContextProvider */
        start local 7 // java.security.Provider sslContextProvider
         2: .line 1635
            aconst_null
            astore 8 /* ksProvider */
        start local 8 // java.security.Provider ksProvider
         3: .line 1636
            aconst_null
            astore 9 /* tmfDefaultAlgorithm */
        start local 9 // java.lang.String tmfDefaultAlgorithm
         4: .line 1637
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandhsakeState.SSL_HANDHSAKE_NOT_STARTED:Lcom/microsoft/sqlserver/jdbc/TDSChannel$SSLHandhsakeState;
            astore 10 /* handshakeState */
        start local 10 // com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandhsakeState handshakeState
         5: .line 1639
            iconst_0
            istore 11 /* isFips */
        start local 11 // boolean isFips
         6: .line 1640
            aconst_null
            astore 12 /* trustStoreType */
        start local 12 // java.lang.String trustStoreType
         7: .line 1641
            aconst_null
            astore 13 /* sslProtocol */
        start local 13 // java.lang.String sslProtocol
         8: .line 1645
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 10
         9: .line 1646
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.TDSChannel.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " Enabling SSL..."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.finer:(Ljava/lang/String;)V
        10: .line 1648
      StackMap locals: com.microsoft.sqlserver.jdbc.TDSChannel java.lang.String int java.lang.String java.lang.String java.lang.String java.security.Provider java.security.Provider java.security.Provider java.lang.String com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandhsakeState int java.lang.String java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.con:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            getfield com.microsoft.sqlserver.jdbc.SQLServerConnection.activeConnectionProperties:Ljava/util/Properties;
        11: .line 1649
            getstatic com.microsoft.sqlserver.jdbc.SQLServerDriverStringProperty.TRUST_STORE:Lcom/microsoft/sqlserver/jdbc/SQLServerDriverStringProperty;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerDriverStringProperty.toString:()Ljava/lang/String;
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
        12: .line 1648
            astore 14 /* trustStoreFileName */
        start local 14 // java.lang.String trustStoreFileName
        13: .line 1650
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.con:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            getfield com.microsoft.sqlserver.jdbc.SQLServerConnection.activeConnectionProperties:Ljava/util/Properties;
        14: .line 1651
            getstatic com.microsoft.sqlserver.jdbc.SQLServerDriverStringProperty.TRUST_STORE_PASSWORD:Lcom/microsoft/sqlserver/jdbc/SQLServerDriverStringProperty;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerDriverStringProperty.toString:()Ljava/lang/String;
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
        15: .line 1650
            astore 15 /* trustStorePassword */
        start local 15 // java.lang.String trustStorePassword
        16: .line 1652
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.con:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            getfield com.microsoft.sqlserver.jdbc.SQLServerConnection.activeConnectionProperties:Ljava/util/Properties;
        17: .line 1653
            getstatic com.microsoft.sqlserver.jdbc.SQLServerDriverStringProperty.HOSTNAME_IN_CERTIFICATE:Lcom/microsoft/sqlserver/jdbc/SQLServerDriverStringProperty;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerDriverStringProperty.toString:()Ljava/lang/String;
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
        18: .line 1652
            astore 16 /* hostNameInCertificate */
        start local 16 // java.lang.String hostNameInCertificate
        19: .line 1655
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.con:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            getfield com.microsoft.sqlserver.jdbc.SQLServerConnection.activeConnectionProperties:Ljava/util/Properties;
        20: .line 1656
            getstatic com.microsoft.sqlserver.jdbc.SQLServerDriverStringProperty.TRUST_STORE_TYPE:Lcom/microsoft/sqlserver/jdbc/SQLServerDriverStringProperty;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerDriverStringProperty.toString:()Ljava/lang/String;
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
        21: .line 1655
            astore 12 /* trustStoreType */
        22: .line 1658
            aload 12 /* trustStoreType */
            invokestatic com.microsoft.sqlserver.jdbc.StringUtils.isEmpty:(Ljava/lang/CharSequence;)Z
            ifeq 24
        23: .line 1659
            getstatic com.microsoft.sqlserver.jdbc.SQLServerDriverStringProperty.TRUST_STORE_TYPE:Lcom/microsoft/sqlserver/jdbc/SQLServerDriverStringProperty;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerDriverStringProperty.getDefaultValue:()Ljava/lang/String;
            astore 12 /* trustStoreType */
        24: .line 1663
      StackMap locals: java.lang.String java.lang.String java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.con:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            getfield com.microsoft.sqlserver.jdbc.SQLServerConnection.activeConnectionProperties:Ljava/util/Properties;
            getstatic com.microsoft.sqlserver.jdbc.SQLServerDriverBooleanProperty.FIPS:Lcom/microsoft/sqlserver/jdbc/SQLServerDriverBooleanProperty;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerDriverBooleanProperty.toString:()Ljava/lang/String;
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
        25: .line 1662
            invokestatic java.lang.Boolean.valueOf:(Ljava/lang/String;)Ljava/lang/Boolean;
            invokevirtual java.lang.Boolean.booleanValue:()Z
            istore 11 /* isFips */
        26: .line 1664
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.con:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            getfield com.microsoft.sqlserver.jdbc.SQLServerConnection.activeConnectionProperties:Ljava/util/Properties;
        27: .line 1665
            getstatic com.microsoft.sqlserver.jdbc.SQLServerDriverStringProperty.SSL_PROTOCOL:Lcom/microsoft/sqlserver/jdbc/SQLServerDriverStringProperty;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerDriverStringProperty.toString:()Ljava/lang/String;
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
        28: .line 1664
            astore 13 /* sslProtocol */
        29: .line 1667
            iload 11 /* isFips */
            ifeq 31
        30: .line 1668
            aload 0 /* this */
            aload 12 /* trustStoreType */
            aload 14 /* trustStoreFileName */
            invokevirtual com.microsoft.sqlserver.jdbc.TDSChannel.validateFips:(Ljava/lang/String;Ljava/lang/String;)V
        31: .line 1671
      StackMap locals:
      StackMap stack:
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.$assertionsDisabled:Z
            ifne 33
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.con:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.getRequestedEncryptionLevel:()B
            ifeq 33
        32: .line 1672
            iconst_1
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.con:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.getRequestedEncryptionLevel:()B
            if_icmpeq 33
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        33: .line 1674
      StackMap locals:
      StackMap stack:
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.$assertionsDisabled:Z
            ifne 36
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.con:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.getNegotiatedEncryptionLevel:()B
            ifeq 36
        34: .line 1675
            iconst_1
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.con:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.getNegotiatedEncryptionLevel:()B
            if_icmpeq 36
        35: .line 1676
            iconst_3
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.con:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.getNegotiatedEncryptionLevel:()B
            if_icmpeq 36
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        36: .line 1681
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 17 /* tm */
        start local 17 // javax.net.ssl.TrustManager[] tm
        37: .line 1682
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.con:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.getRequestedEncryptionLevel:()B
            ifeq 39
        38: .line 1683
            iconst_1
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.con:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.getRequestedEncryptionLevel:()B
            if_icmpne 43
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.con:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.trustServerCertificate:()Z
            ifeq 43
        39: .line 1684
      StackMap locals: javax.net.ssl.TrustManager[]
      StackMap stack:
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 41
        40: .line 1685
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.TDSChannel.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " SSL handshake will trust any certificate"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.finer:(Ljava/lang/String;)V
        41: .line 1687
      StackMap locals:
      StackMap stack:
            iconst_1
            anewarray javax.net.ssl.TrustManager
            dup
            iconst_0
            new com.microsoft.sqlserver.jdbc.TDSChannel$PermissiveX509TrustManager
            dup
            aload 0 /* this */
            aload 0 /* this */
            invokespecial com.microsoft.sqlserver.jdbc.TDSChannel$PermissiveX509TrustManager.<init>:(Lcom/microsoft/sqlserver/jdbc/TDSChannel;Lcom/microsoft/sqlserver/jdbc/TDSChannel;)V
            aastore
            astore 17 /* tm */
        42: .line 1688
            goto 104
        43: .line 1691
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.con:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.getTrustManagerClass:()Ljava/lang/String;
            ifnull 49
        44: .line 1692
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "trustManagerClass"
            aastore
            dup
            iconst_1
            ldc "javax.net.ssl.TrustManager"
            aastore
            astore 18 /* msgArgs */
        start local 18 // java.lang.Object[] msgArgs
        45: .line 1693
            iconst_1
            anewarray javax.net.ssl.TrustManager
            dup
            iconst_0
            ldc Ljavax/net/ssl/TrustManager;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.con:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.getTrustManagerClass:()Ljava/lang/String;
        46: .line 1694
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.con:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.getTrustManagerConstructorArg:()Ljava/lang/String;
            aload 18 /* msgArgs */
        47: .line 1693
            invokestatic com.microsoft.sqlserver.jdbc.Util.newInstance:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object;
            checkcast javax.net.ssl.TrustManager
            aastore
            astore 17 /* tm */
        end local 18 // java.lang.Object[] msgArgs
        48: .line 1695
            goto 104
        49: .line 1699
      StackMap locals:
      StackMap stack:
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 51
        50: .line 1700
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.TDSChannel.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " SSL handshake will validate server certificate"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.finer:(Ljava/lang/String;)V
        51: .line 1702
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 18 /* ks */
        start local 18 // java.security.KeyStore ks
        52: .line 1707
            aload 14 /* trustStoreFileName */
            ifnonnull 56
            aload 15 /* trustStorePassword */
            ifnonnull 56
        53: .line 1708
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 85
        54: .line 1709
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.TDSChannel.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " Using system default trust store and password"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.finer:(Ljava/lang/String;)V
        55: .line 1710
            goto 85
        56: .line 1717
      StackMap locals: java.security.KeyStore
      StackMap stack:
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINEST:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 58
        57: .line 1718
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.TDSChannel.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " Finding key store interface"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.finest:(Ljava/lang/String;)V
        58: .line 1720
      StackMap locals:
      StackMap stack:
            aload 12 /* trustStoreType */
            invokestatic java.security.KeyStore.getInstance:(Ljava/lang/String;)Ljava/security/KeyStore;
            astore 18 /* ks */
        59: .line 1721
            aload 18 /* ks */
            invokevirtual java.security.KeyStore.getProvider:()Ljava/security/Provider;
            astore 8 /* ksProvider */
        60: .line 1727
            aload 0 /* this */
            aload 14 /* trustStoreFileName */
            invokevirtual com.microsoft.sqlserver.jdbc.TDSChannel.loadTrustStore:(Ljava/lang/String;)Ljava/io/InputStream;
            astore 19 /* is */
        start local 19 // java.io.InputStream is
        61: .line 1731
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINEST:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 63
        62: .line 1732
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.TDSChannel.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " Loading key store"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.finest:(Ljava/lang/String;)V
        63: .line 1735
      StackMap locals: java.io.InputStream
      StackMap stack:
            aload 18 /* ks */
            aload 19 /* is */
            aload 15 /* trustStorePassword */
            ifnonnull 64
            aconst_null
            goto 65
      StackMap locals: com.microsoft.sqlserver.jdbc.TDSChannel java.lang.String int java.lang.String java.lang.String java.lang.String java.security.Provider java.security.Provider java.security.Provider java.lang.String com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandhsakeState int java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String javax.net.ssl.TrustManager[] java.security.KeyStore java.io.InputStream
      StackMap stack: java.security.KeyStore java.io.InputStream
        64: aload 15 /* trustStorePassword */
            invokevirtual java.lang.String.toCharArray:()[C
      StackMap locals: com.microsoft.sqlserver.jdbc.TDSChannel java.lang.String int java.lang.String java.lang.String java.lang.String java.security.Provider java.security.Provider java.security.Provider java.lang.String com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandhsakeState int java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String javax.net.ssl.TrustManager[] java.security.KeyStore java.io.InputStream
      StackMap stack: java.security.KeyStore java.io.InputStream char[]
        65: invokevirtual java.security.KeyStore.load:(Ljava/io/InputStream;[C)V
        66: .line 1736
            goto 77
      StackMap locals:
      StackMap stack: java.lang.Throwable
        67: astore 20
        68: .line 1738
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.con:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            getfield com.microsoft.sqlserver.jdbc.SQLServerConnection.activeConnectionProperties:Ljava/util/Properties;
        69: .line 1739
            getstatic com.microsoft.sqlserver.jdbc.SQLServerDriverStringProperty.TRUST_STORE_PASSWORD:Lcom/microsoft/sqlserver/jdbc/SQLServerDriverStringProperty;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerDriverStringProperty.toString:()Ljava/lang/String;
            invokevirtual java.util.Properties.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        70: .line 1742
            aload 19 /* is */
            ifnull 76
        71: .line 1744
            aload 19 /* is */
            invokevirtual java.io.InputStream.close:()V
        72: .line 1745
            goto 76
      StackMap locals: com.microsoft.sqlserver.jdbc.TDSChannel java.lang.String int java.lang.String java.lang.String java.lang.String java.security.Provider java.security.Provider java.security.Provider java.lang.String com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandhsakeState int java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String javax.net.ssl.TrustManager[] java.security.KeyStore java.io.InputStream java.lang.Throwable
      StackMap stack: java.io.IOException
        73: pop
        74: .line 1746
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 76
        75: .line 1747
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.TDSChannel.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " Ignoring error closing trust material InputStream..."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.fine:(Ljava/lang/String;)V
        76: .line 1750
      StackMap locals:
      StackMap stack:
            aload 20
            athrow
        77: .line 1738
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.con:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            getfield com.microsoft.sqlserver.jdbc.SQLServerConnection.activeConnectionProperties:Ljava/util/Properties;
        78: .line 1739
            getstatic com.microsoft.sqlserver.jdbc.SQLServerDriverStringProperty.TRUST_STORE_PASSWORD:Lcom/microsoft/sqlserver/jdbc/SQLServerDriverStringProperty;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerDriverStringProperty.toString:()Ljava/lang/String;
            invokevirtual java.util.Properties.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        79: .line 1742
            aload 19 /* is */
            ifnull 85
        80: .line 1744
            aload 19 /* is */
            invokevirtual java.io.InputStream.close:()V
        81: .line 1745
            goto 85
      StackMap locals:
      StackMap stack: java.io.IOException
        82: pop
        83: .line 1746
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 85
        84: .line 1747
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.TDSChannel.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " Ignoring error closing trust material InputStream..."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.fine:(Ljava/lang/String;)V
        end local 19 // java.io.InputStream is
        85: .line 1760
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 19 /* tmf */
        start local 19 // javax.net.ssl.TrustManagerFactory tmf
        86: .line 1762
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINEST:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 88
        87: .line 1763
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.TDSChannel.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " Locating X.509 trust manager factory"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.finest:(Ljava/lang/String;)V
        88: .line 1765
      StackMap locals: javax.net.ssl.TrustManagerFactory
      StackMap stack:
            invokestatic javax.net.ssl.TrustManagerFactory.getDefaultAlgorithm:()Ljava/lang/String;
            astore 9 /* tmfDefaultAlgorithm */
        89: .line 1766
            aload 9 /* tmfDefaultAlgorithm */
            invokestatic javax.net.ssl.TrustManagerFactory.getInstance:(Ljava/lang/String;)Ljavax/net/ssl/TrustManagerFactory;
            astore 19 /* tmf */
        90: .line 1767
            aload 19 /* tmf */
            invokevirtual javax.net.ssl.TrustManagerFactory.getProvider:()Ljava/security/Provider;
            astore 6 /* tmfProvider */
        91: .line 1771
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINEST:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 93
        92: .line 1772
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.TDSChannel.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " Getting trust manager"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.finest:(Ljava/lang/String;)V
        93: .line 1774
      StackMap locals:
      StackMap stack:
            aload 19 /* tmf */
            aload 18 /* ks */
            invokevirtual javax.net.ssl.TrustManagerFactory.init:(Ljava/security/KeyStore;)V
        94: .line 1775
            aload 19 /* tmf */
            invokevirtual javax.net.ssl.TrustManagerFactory.getTrustManagers:()[Ljavax/net/ssl/TrustManager;
            astore 17 /* tm */
        95: .line 1778
            iload 11 /* isFips */
            ifne 104
        96: .line 1779
            aload 16 /* hostNameInCertificate */
            ifnull 101
        97: .line 1780
            iconst_1
            anewarray javax.net.ssl.TrustManager
            dup
            iconst_0
            new com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager
            dup
            aload 0 /* this */
            aload 0 /* this */
            aload 17 /* tm */
            iconst_0
            aaload
            checkcast javax.net.ssl.X509TrustManager
        98: .line 1781
            aload 16 /* hostNameInCertificate */
        99: .line 1780
            invokespecial com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager.<init>:(Lcom/microsoft/sqlserver/jdbc/TDSChannel;Lcom/microsoft/sqlserver/jdbc/TDSChannel;Ljavax/net/ssl/X509TrustManager;Ljava/lang/String;)V
            aastore
            astore 17 /* tm */
       100: .line 1782
            goto 104
       101: .line 1783
      StackMap locals:
      StackMap stack:
            iconst_1
            anewarray javax.net.ssl.TrustManager
            dup
            iconst_0
       102: .line 1784
            new com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager
            dup
            aload 0 /* this */
            aload 0 /* this */
            aload 17 /* tm */
            iconst_0
            aaload
            checkcast javax.net.ssl.X509TrustManager
            aload 1 /* host */
            invokespecial com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager.<init>:(Lcom/microsoft/sqlserver/jdbc/TDSChannel;Lcom/microsoft/sqlserver/jdbc/TDSChannel;Ljavax/net/ssl/X509TrustManager;Ljava/lang/String;)V
            aastore
       103: .line 1783
            astore 17 /* tm */
        end local 19 // javax.net.ssl.TrustManagerFactory tmf
        end local 18 // java.security.KeyStore ks
       104: .line 1791
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 18 /* sslContext */
        start local 18 // javax.net.ssl.SSLContext sslContext
       105: .line 1793
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINEST:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 107
       106: .line 1794
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.TDSChannel.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " Getting TLS or better SSL context"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.finest:(Ljava/lang/String;)V
       107: .line 1796
      StackMap locals: javax.net.ssl.SSLContext
      StackMap stack:
            aload 3 /* clientCertificate */
            ifnull 109
            aload 3 /* clientCertificate */
            invokevirtual java.lang.String.length:()I
            ifle 109
       108: .line 1797
            aload 3 /* clientCertificate */
            aload 4 /* clientKey */
            aload 5 /* clientKeyPassword */
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerCertificateUtils.getKeyManagerFromFile:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)[Ljavax/net/ssl/KeyManager;
            goto 110
      StackMap locals:
      StackMap stack:
       109: aconst_null
       110: .line 1796
      StackMap locals:
      StackMap stack: javax.net.ssl.KeyManager[]
            astore 19 /* km */
        start local 19 // javax.net.ssl.KeyManager[] km
       111: .line 1799
            aload 13 /* sslProtocol */
            invokestatic javax.net.ssl.SSLContext.getInstance:(Ljava/lang/String;)Ljavax/net/ssl/SSLContext;
            astore 18 /* sslContext */
       112: .line 1800
            aload 18 /* sslContext */
            invokevirtual javax.net.ssl.SSLContext.getProvider:()Ljava/security/Provider;
            astore 7 /* sslContextProvider */
       113: .line 1802
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINEST:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 115
       114: .line 1803
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.TDSChannel.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " Initializing SSL context"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.finest:(Ljava/lang/String;)V
       115: .line 1805
      StackMap locals: javax.net.ssl.KeyManager[]
      StackMap stack:
            aload 18 /* sslContext */
            aload 19 /* km */
            aload 17 /* tm */
            aconst_null
            invokevirtual javax.net.ssl.SSLContext.init:([Ljavax/net/ssl/KeyManager;[Ljavax/net/ssl/TrustManager;Ljava/security/SecureRandom;)V
       116: .line 1810
            aload 0 /* this */
            new com.microsoft.sqlserver.jdbc.TDSChannel$ProxySocket
            dup
            aload 0 /* this */
            aload 0 /* this */
            invokespecial com.microsoft.sqlserver.jdbc.TDSChannel$ProxySocket.<init>:(Lcom/microsoft/sqlserver/jdbc/TDSChannel;Lcom/microsoft/sqlserver/jdbc/TDSChannel;)V
            putfield com.microsoft.sqlserver.jdbc.TDSChannel.proxySocket:Lcom/microsoft/sqlserver/jdbc/TDSChannel$ProxySocket;
       117: .line 1812
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINEST:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 119
       118: .line 1813
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.TDSChannel.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " Creating SSL socket"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.finest:(Ljava/lang/String;)V
       119: .line 1816
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 18 /* sslContext */
            invokevirtual javax.net.ssl.SSLContext.getSocketFactory:()Ljavax/net/ssl/SSLSocketFactory;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.proxySocket:Lcom/microsoft/sqlserver/jdbc/TDSChannel$ProxySocket;
            aload 1 /* host */
            iload 2 /* port */
            iconst_0
            invokevirtual javax.net.ssl.SSLSocketFactory.createSocket:(Ljava/net/Socket;Ljava/lang/String;IZ)Ljava/net/Socket;
            checkcast javax.net.ssl.SSLSocket
            putfield com.microsoft.sqlserver.jdbc.TDSChannel.sslSocket:Ljavax/net/ssl/SSLSocket;
       120: .line 1819
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 122
       121: .line 1820
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.TDSChannel.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " Starting SSL handshake"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.finer:(Ljava/lang/String;)V
       122: .line 1823
      StackMap locals:
      StackMap stack:
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandhsakeState.SSL_HANDHSAKE_STARTED:Lcom/microsoft/sqlserver/jdbc/TDSChannel$SSLHandhsakeState;
            astore 10 /* handshakeState */
       123: .line 1824
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.sslSocket:Ljavax/net/ssl/SSLSocket;
            invokevirtual javax.net.ssl.SSLSocket.startHandshake:()V
       124: .line 1825
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandhsakeState.SSL_HANDHSAKE_COMPLETE:Lcom/microsoft/sqlserver/jdbc/TDSChannel$SSLHandhsakeState;
            astore 10 /* handshakeState */
       125: .line 1828
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINEST:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 127
       126: .line 1829
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.TDSChannel.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " Rewiring proxy streams after handshake"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.finest:(Ljava/lang/String;)V
       127: .line 1831
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.proxySocket:Lcom/microsoft/sqlserver/jdbc/TDSChannel$ProxySocket;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.inputStream:Ljava/io/InputStream;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.outputStream:Ljava/io/OutputStream;
            invokevirtual com.microsoft.sqlserver.jdbc.TDSChannel$ProxySocket.setStreams:(Ljava/io/InputStream;Ljava/io/OutputStream;)V
       128: .line 1834
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINEST:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 130
       129: .line 1835
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.TDSChannel.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " Getting SSL InputStream"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.finest:(Ljava/lang/String;)V
       130: .line 1837
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.sslSocket:Ljavax/net/ssl/SSLSocket;
            invokevirtual javax.net.ssl.SSLSocket.getInputStream:()Ljava/io/InputStream;
            putfield com.microsoft.sqlserver.jdbc.TDSChannel.inputStream:Ljava/io/InputStream;
       131: .line 1839
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINEST:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 133
       132: .line 1840
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.TDSChannel.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " Getting SSL OutputStream"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.finest:(Ljava/lang/String;)V
       133: .line 1842
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.sslSocket:Ljavax/net/ssl/SSLSocket;
            invokevirtual javax.net.ssl.SSLSocket.getOutputStream:()Ljava/io/OutputStream;
            putfield com.microsoft.sqlserver.jdbc.TDSChannel.outputStream:Ljava/io/OutputStream;
       134: .line 1845
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.sslSocket:Ljavax/net/ssl/SSLSocket;
            putfield com.microsoft.sqlserver.jdbc.TDSChannel.channelSocket:Ljava/net/Socket;
       135: .line 1848
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.sslSocket:Ljavax/net/ssl/SSLSocket;
            invokevirtual javax.net.ssl.SSLSocket.getSession:()Ljavax/net/ssl/SSLSession;
            invokeinterface javax.net.ssl.SSLSession.getProtocol:()Ljava/lang/String;
            astore 20 /* tlsProtocol */
        start local 20 // java.lang.String tlsProtocol
       136: .line 1849
            getstatic com.microsoft.sqlserver.jdbc.SSLProtocol.TLS_V10:Lcom/microsoft/sqlserver/jdbc/SSLProtocol;
            invokevirtual com.microsoft.sqlserver.jdbc.SSLProtocol.toString:()Ljava/lang/String;
            aload 20 /* tlsProtocol */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifne 138
       137: .line 1850
            getstatic com.microsoft.sqlserver.jdbc.SSLProtocol.TLS_V11:Lcom/microsoft/sqlserver/jdbc/SSLProtocol;
            invokevirtual com.microsoft.sqlserver.jdbc.SSLProtocol.toString:()Ljava/lang/String;
            aload 20 /* tlsProtocol */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 143
       138: .line 1851
      StackMap locals: java.lang.String
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 20 /* tlsProtocol */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
       139: .line 1852
            ldc " was negotiated. Please update server and client to use TLSv1.2 at minimum."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
       140: .line 1851
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 21 /* warningMsg */
        start local 21 // java.lang.String warningMsg
       141: .line 1853
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            aload 21 /* warningMsg */
            invokevirtual java.util.logging.Logger.warning:(Ljava/lang/String;)V
       142: .line 1854
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.con:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            aload 21 /* warningMsg */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.addWarning:(Ljava/lang/String;)V
        end local 21 // java.lang.String warningMsg
       143: .line 1857
      StackMap locals:
      StackMap stack:
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 194
       144: .line 1858
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.TDSChannel.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " SSL enabled"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.finer:(Ljava/lang/String;)V
        end local 20 // java.lang.String tlsProtocol
        end local 19 // javax.net.ssl.KeyManager[] km
        end local 18 // javax.net.ssl.SSLContext sslContext
        end local 17 // javax.net.ssl.TrustManager[] tm
        end local 16 // java.lang.String hostNameInCertificate
        end local 15 // java.lang.String trustStorePassword
        end local 14 // java.lang.String trustStoreFileName
       145: .line 1859
            goto 194
      StackMap locals: com.microsoft.sqlserver.jdbc.TDSChannel java.lang.String int java.lang.String java.lang.String java.lang.String java.security.Provider java.security.Provider java.security.Provider java.lang.String com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandhsakeState int java.lang.String java.lang.String
      StackMap stack: java.lang.Exception
       146: astore 14 /* e */
        start local 14 // java.lang.Exception e
       147: .line 1861
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 149
       148: .line 1862
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
            aload 14 /* e */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            aload 14 /* e */
            invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
       149: .line 1868
      StackMap locals: java.lang.Exception
      StackMap stack:
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 169
       150: .line 1869
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
            new java.lang.StringBuilder
            dup
            ldc "java.security path: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.JAVA_SECURITY:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "Security providers: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
       151: .line 1870
            invokestatic java.security.Security.getProviders:()[Ljava/security/Provider;
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
       152: .line 1871
            aload 7 /* sslContextProvider */
            ifnull 154
            new java.lang.StringBuilder
            dup
            ldc "SSLContext provider info: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* sslContextProvider */
            invokevirtual java.security.Provider.getInfo:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
       153: .line 1872
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "SSLContext provider services:\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 7 /* sslContextProvider */
            invokevirtual java.security.Provider.getServices:()Ljava/util/Set;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            goto 155
       154: .line 1873
      StackMap locals: com.microsoft.sqlserver.jdbc.TDSChannel java.lang.String int java.lang.String java.lang.String java.lang.String java.security.Provider java.security.Provider java.security.Provider java.lang.String com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandhsakeState int java.lang.String java.lang.String java.lang.Exception
      StackMap stack: java.util.logging.Logger java.util.logging.Level java.lang.StringBuilder
            ldc ""
       155: .line 1871
      StackMap locals: com.microsoft.sqlserver.jdbc.TDSChannel java.lang.String int java.lang.String java.lang.String java.lang.String java.security.Provider java.security.Provider java.security.Provider java.lang.String com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandhsakeState int java.lang.String java.lang.String java.lang.Exception
      StackMap stack: java.util.logging.Logger java.util.logging.Level java.lang.StringBuilder java.lang.String
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
       156: .line 1874
            aload 6 /* tmfProvider */
            ifnull 158
            new java.lang.StringBuilder
            dup
            ldc "TrustManagerFactory provider info: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* tmfProvider */
            invokevirtual java.security.Provider.getInfo:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
       157: .line 1875
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            goto 159
      StackMap locals: com.microsoft.sqlserver.jdbc.TDSChannel java.lang.String int java.lang.String java.lang.String java.lang.String java.security.Provider java.security.Provider java.security.Provider java.lang.String com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandhsakeState int java.lang.String java.lang.String java.lang.Exception
      StackMap stack: java.util.logging.Logger java.util.logging.Level java.lang.StringBuilder
       158: ldc ""
       159: .line 1874
      StackMap locals: com.microsoft.sqlserver.jdbc.TDSChannel java.lang.String int java.lang.String java.lang.String java.lang.String java.security.Provider java.security.Provider java.security.Provider java.lang.String com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandhsakeState int java.lang.String java.lang.String java.lang.Exception
      StackMap stack: java.util.logging.Logger java.util.logging.Level java.lang.StringBuilder java.lang.String
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
       160: .line 1876
            aload 9 /* tmfDefaultAlgorithm */
            ifnull 162
            new java.lang.StringBuilder
            dup
            ldc "TrustManagerFactory default algorithm: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
       161: .line 1877
            aload 9 /* tmfDefaultAlgorithm */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            goto 163
      StackMap locals: com.microsoft.sqlserver.jdbc.TDSChannel java.lang.String int java.lang.String java.lang.String java.lang.String java.security.Provider java.security.Provider java.security.Provider java.lang.String com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandhsakeState int java.lang.String java.lang.String java.lang.Exception
      StackMap stack: java.util.logging.Logger java.util.logging.Level java.lang.StringBuilder
       162: ldc ""
       163: .line 1876
      StackMap locals: com.microsoft.sqlserver.jdbc.TDSChannel java.lang.String int java.lang.String java.lang.String java.lang.String java.security.Provider java.security.Provider java.security.Provider java.lang.String com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandhsakeState int java.lang.String java.lang.String java.lang.Exception
      StackMap stack: java.util.logging.Logger java.util.logging.Level java.lang.StringBuilder java.lang.String
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
       164: .line 1878
            aload 8 /* ksProvider */
            ifnull 165
            new java.lang.StringBuilder
            dup
            ldc "KeyStore provider info: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 8 /* ksProvider */
            invokevirtual java.security.Provider.getInfo:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            goto 166
      StackMap locals: com.microsoft.sqlserver.jdbc.TDSChannel java.lang.String int java.lang.String java.lang.String java.lang.String java.security.Provider java.security.Provider java.security.Provider java.lang.String com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandhsakeState int java.lang.String java.lang.String java.lang.Exception
      StackMap stack: java.util.logging.Logger java.util.logging.Level java.lang.StringBuilder
       165: ldc ""
      StackMap locals: com.microsoft.sqlserver.jdbc.TDSChannel java.lang.String int java.lang.String java.lang.String java.lang.String java.security.Provider java.security.Provider java.security.Provider java.lang.String com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandhsakeState int java.lang.String java.lang.String java.lang.Exception
      StackMap stack: java.util.logging.Logger java.util.logging.Level java.lang.StringBuilder java.lang.String
       166: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
       167: .line 1879
            ldc "java.ext.dirs: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "java.ext.dirs"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       168: .line 1869
            invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
       169: .line 1881
      StackMap locals:
      StackMap stack:
            aload 14 /* e */
            invokevirtual java.lang.Exception.getLocalizedMessage:()Ljava/lang/String;
            astore 15 /* localizedMessage */
        start local 15 // java.lang.String localizedMessage
       170: .line 1882
            aload 15 /* localizedMessage */
            ifnull 171
            aload 15 /* localizedMessage */
            goto 172
      StackMap locals: java.lang.String
      StackMap stack:
       171: aload 14 /* e */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
       172: astore 16 /* errMsg */
        start local 16 // java.lang.String errMsg
       173: .line 1887
            aconst_null
            astore 17 /* causeErrMsg */
        start local 17 // java.lang.String causeErrMsg
       174: .line 1888
            aload 14 /* e */
            invokevirtual java.lang.Exception.getCause:()Ljava/lang/Throwable;
            astore 18 /* cause */
        start local 18 // java.lang.Throwable cause
       175: .line 1889
            aload 18 /* cause */
            ifnull 180
       176: .line 1890
            aload 18 /* cause */
            invokevirtual java.lang.Throwable.getLocalizedMessage:()Ljava/lang/String;
            astore 19 /* causeLocalizedMessage */
        start local 19 // java.lang.String causeLocalizedMessage
       177: .line 1891
            aload 19 /* causeLocalizedMessage */
            ifnull 178
            aload 19 /* causeLocalizedMessage */
            goto 179
      StackMap locals: com.microsoft.sqlserver.jdbc.TDSChannel java.lang.String int java.lang.String java.lang.String java.lang.String java.security.Provider java.security.Provider java.security.Provider java.lang.String com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandhsakeState int java.lang.String java.lang.String java.lang.Exception java.lang.String java.lang.String java.lang.String java.lang.Throwable java.lang.String
      StackMap stack:
       178: aload 18 /* cause */
            invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
       179: astore 17 /* causeErrMsg */
        end local 19 // java.lang.String causeLocalizedMessage
       180: .line 1894
      StackMap locals:
      StackMap stack:
            new java.text.MessageFormat
            dup
            ldc "R_sslFailed"
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.text.MessageFormat.<init>:(Ljava/lang/String;)V
            astore 19 /* form */
        start local 19 // java.text.MessageFormat form
       181: .line 1895
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 16 /* errMsg */
            aastore
            astore 20 /* msgArgs */
        start local 20 // java.lang.Object[] msgArgs
       182: .line 1901
            aload 16 /* errMsg */
            ifnull 184
            aload 16 /* errMsg */
            ldc " ClientConnectionId:"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 184
       183: .line 1902
            aload 16 /* errMsg */
            iconst_0
            aload 16 /* errMsg */
            ldc " ClientConnectionId:"
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 16 /* errMsg */
       184: .line 1905
      StackMap locals: java.text.MessageFormat java.lang.Object[]
      StackMap stack:
            aload 17 /* causeErrMsg */
            ifnull 188
            aload 17 /* causeErrMsg */
            ldc " ClientConnectionId:"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 188
       185: .line 1906
            aload 17 /* causeErrMsg */
            iconst_0
       186: .line 1907
            aload 17 /* causeErrMsg */
            ldc " ClientConnectionId:"
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
       187: .line 1906
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 17 /* causeErrMsg */
       188: .line 1911
      StackMap locals:
      StackMap stack:
            aload 14 /* e */
            instanceof java.io.IOException
            ifeq 193
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandhsakeState.SSL_HANDHSAKE_STARTED:Lcom/microsoft/sqlserver/jdbc/TDSChannel$SSLHandhsakeState;
            aload 10 /* handshakeState */
            if_acmpne 193
       189: .line 1912
            ldc "R_truncatedServerResponse"
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
            aload 16 /* errMsg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 191
       190: .line 1913
            ldc "R_truncatedServerResponse"
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
            aload 17 /* causeErrMsg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 193
       191: .line 1914
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.con:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            bipush 7
            aload 19 /* form */
            aload 20 /* msgArgs */
            invokevirtual java.text.MessageFormat.format:(Ljava/lang/Object;)Ljava/lang/String;
            aload 14 /* e */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate:(ILjava/lang/String;Ljava/lang/Throwable;)V
       192: .line 1915
            goto 194
       193: .line 1916
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.con:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            iconst_5
            aload 19 /* form */
            aload 20 /* msgArgs */
            invokevirtual java.text.MessageFormat.format:(Ljava/lang/Object;)Ljava/lang/String;
            aload 14 /* e */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate:(ILjava/lang/String;Ljava/lang/Throwable;)V
        end local 20 // java.lang.Object[] msgArgs
        end local 19 // java.text.MessageFormat form
        end local 18 // java.lang.Throwable cause
        end local 17 // java.lang.String causeErrMsg
        end local 16 // java.lang.String errMsg
        end local 15 // java.lang.String localizedMessage
        end local 14 // java.lang.Exception e
       194: .line 1919
      StackMap locals: com.microsoft.sqlserver.jdbc.TDSChannel java.lang.String int java.lang.String java.lang.String java.lang.String java.security.Provider java.security.Provider java.security.Provider java.lang.String com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandhsakeState int java.lang.String java.lang.String
      StackMap stack:
            return
        end local 13 // java.lang.String sslProtocol
        end local 12 // java.lang.String trustStoreType
        end local 11 // boolean isFips
        end local 10 // com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandhsakeState handshakeState
        end local 9 // java.lang.String tmfDefaultAlgorithm
        end local 8 // java.security.Provider ksProvider
        end local 7 // java.security.Provider sslContextProvider
        end local 6 // java.security.Provider tmfProvider
        end local 5 // java.lang.String clientKeyPassword
        end local 4 // java.lang.String clientKey
        end local 3 // java.lang.String clientCertificate
        end local 2 // int port
        end local 1 // java.lang.String host
        end local 0 // com.microsoft.sqlserver.jdbc.TDSChannel this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0  195     0                   this  Lcom/microsoft/sqlserver/jdbc/TDSChannel;
            0  195     1                   host  Ljava/lang/String;
            0  195     2                   port  I
            0  195     3      clientCertificate  Ljava/lang/String;
            0  195     4              clientKey  Ljava/lang/String;
            0  195     5      clientKeyPassword  Ljava/lang/String;
            1  195     6            tmfProvider  Ljava/security/Provider;
            2  195     7     sslContextProvider  Ljava/security/Provider;
            3  195     8             ksProvider  Ljava/security/Provider;
            4  195     9    tmfDefaultAlgorithm  Ljava/lang/String;
            5  195    10         handshakeState  Lcom/microsoft/sqlserver/jdbc/TDSChannel$SSLHandhsakeState;
            6  195    11                 isFips  Z
            7  195    12         trustStoreType  Ljava/lang/String;
            8  195    13            sslProtocol  Ljava/lang/String;
           13  145    14     trustStoreFileName  Ljava/lang/String;
           16  145    15     trustStorePassword  Ljava/lang/String;
           19  145    16  hostNameInCertificate  Ljava/lang/String;
           37  145    17                     tm  [Ljavax/net/ssl/TrustManager;
           45   48    18                msgArgs  [Ljava/lang/Object;
           52  104    18                     ks  Ljava/security/KeyStore;
           61   85    19                     is  Ljava/io/InputStream;
           86  104    19                    tmf  Ljavax/net/ssl/TrustManagerFactory;
          105  145    18             sslContext  Ljavax/net/ssl/SSLContext;
          111  145    19                     km  [Ljavax/net/ssl/KeyManager;
          136  145    20            tlsProtocol  Ljava/lang/String;
          141  143    21             warningMsg  Ljava/lang/String;
          147  194    14                      e  Ljava/lang/Exception;
          170  194    15       localizedMessage  Ljava/lang/String;
          173  194    16                 errMsg  Ljava/lang/String;
          174  194    17            causeErrMsg  Ljava/lang/String;
          175  194    18                  cause  Ljava/lang/Throwable;
          177  180    19  causeLocalizedMessage  Ljava/lang/String;
          181  194    19                   form  Ljava/text/MessageFormat;
          182  194    20                msgArgs  [Ljava/lang/Object;
      Exception table:
        from    to  target  type
          63    67      67  any
          71    72      73  Class java.io.IOException
          80    81      82  Class java.io.IOException
           8   145     146  Class java.lang.Exception
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException
    MethodParameters:
                   Name  Flags
      host               
      port               
      clientCertificate  
      clientKey          
      clientKeyPassword  

  private void validateFips(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=9, args_size=3
        start local 0 // com.microsoft.sqlserver.jdbc.TDSChannel this
        start local 1 // java.lang.String trustStoreType
        start local 2 // java.lang.String trustStoreFileName
         0: .line 1935
            iconst_0
            istore 3 /* isValid */
        start local 3 // boolean isValid
         1: .line 1941
            ldc "R_invalidFipsConfig"
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
            astore 8 /* strError */
        start local 8 // java.lang.String strError
         2: .line 1943
            iconst_1
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.con:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.getRequestedEncryptionLevel:()B
            if_icmpne 3
            iconst_1
            goto 4
      StackMap locals: com.microsoft.sqlserver.jdbc.TDSChannel java.lang.String java.lang.String int top top top top java.lang.String
      StackMap stack:
         3: iconst_0
      StackMap locals:
      StackMap stack: int
         4: istore 4 /* isEncryptOn */
        start local 4 // boolean isEncryptOn
         5: .line 1945
            aload 1 /* trustStoreType */
            invokestatic com.microsoft.sqlserver.jdbc.StringUtils.isEmpty:(Ljava/lang/CharSequence;)Z
            ifeq 6
            iconst_0
            goto 7
      StackMap locals: com.microsoft.sqlserver.jdbc.TDSChannel java.lang.String java.lang.String int int top top top java.lang.String
      StackMap stack:
         6: iconst_1
      StackMap locals:
      StackMap stack: int
         7: istore 5 /* isValidTrustStoreType */
        start local 5 // boolean isValidTrustStoreType
         8: .line 1946
            aload 2 /* trustStoreFileName */
            invokestatic com.microsoft.sqlserver.jdbc.StringUtils.isEmpty:(Ljava/lang/CharSequence;)Z
            ifeq 9
            iconst_0
            goto 10
      StackMap locals: com.microsoft.sqlserver.jdbc.TDSChannel java.lang.String java.lang.String int int int top top java.lang.String
      StackMap stack:
         9: iconst_1
      StackMap locals:
      StackMap stack: int
        10: istore 6 /* isValidTrustStore */
        start local 6 // boolean isValidTrustStore
        11: .line 1947
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.con:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.trustServerCertificate:()Z
            istore 7 /* isTrustServerCertificate */
        start local 7 // boolean isTrustServerCertificate
        12: .line 1949
            iload 4 /* isEncryptOn */
            ifeq 18
            iload 7 /* isTrustServerCertificate */
            ifne 18
        13: .line 1950
            iconst_1
            istore 3 /* isValid */
        14: .line 1951
            iload 6 /* isValidTrustStore */
            ifeq 18
            iload 5 /* isValidTrustStoreType */
            ifne 18
        15: .line 1953
            iconst_0
            istore 3 /* isValid */
        16: .line 1954
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 18
        17: .line 1955
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.TDSChannel.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "TrustStoreType is required alongside with TrustStore."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.finer:(Ljava/lang/String;)V
        18: .line 1959
      StackMap locals: com.microsoft.sqlserver.jdbc.TDSChannel java.lang.String java.lang.String int int int int int java.lang.String
      StackMap stack:
            iload 3 /* isValid */
            ifne 20
        19: .line 1960
            new com.microsoft.sqlserver.jdbc.SQLServerException
            dup
            aload 8 /* strError */
            aconst_null
            iconst_0
            aconst_null
            invokespecial com.microsoft.sqlserver.jdbc.SQLServerException.<init>:(Ljava/lang/String;Ljava/lang/String;ILjava/lang/Throwable;)V
            athrow
        20: .line 1963
      StackMap locals:
      StackMap stack:
            return
        end local 8 // java.lang.String strError
        end local 7 // boolean isTrustServerCertificate
        end local 6 // boolean isValidTrustStore
        end local 5 // boolean isValidTrustStoreType
        end local 4 // boolean isEncryptOn
        end local 3 // boolean isValid
        end local 2 // java.lang.String trustStoreFileName
        end local 1 // java.lang.String trustStoreType
        end local 0 // com.microsoft.sqlserver.jdbc.TDSChannel this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   21     0                      this  Lcom/microsoft/sqlserver/jdbc/TDSChannel;
            0   21     1            trustStoreType  Ljava/lang/String;
            0   21     2        trustStoreFileName  Ljava/lang/String;
            1   21     3                   isValid  Z
            5   21     4               isEncryptOn  Z
            8   21     5     isValidTrustStoreType  Z
           11   21     6         isValidTrustStore  Z
           12   21     7  isTrustServerCertificate  Z
            2   21     8                  strError  Ljava/lang/String;
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException
    MethodParameters:
                    Name  Flags
      trustStoreType      final
      trustStoreFileName  final

  final java.io.InputStream loadTrustStore(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/io/InputStream;
    flags: (0x0010) ACC_FINAL
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.TDSChannel this
        start local 1 // java.lang.String trustStoreFileName
         0: .line 1987
            aconst_null
            astore 2 /* is */
        start local 2 // java.io.FileInputStream is
         1: .line 1990
            aload 1 /* trustStoreFileName */
            ifnull 10
         2: .line 1992
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINEST:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 4
         3: .line 1993
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.TDSChannel.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " Opening specified trust store: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* trustStoreFileName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.finest:(Ljava/lang/String;)V
         4: .line 1995
      StackMap locals: java.io.FileInputStream
      StackMap stack:
            new java.io.FileInputStream
            dup
            aload 1 /* trustStoreFileName */
            invokespecial java.io.FileInputStream.<init>:(Ljava/lang/String;)V
            astore 2 /* is */
         5: .line 1996
            goto 36
      StackMap locals:
      StackMap stack: java.io.FileNotFoundException
         6: astore 3 /* e */
        start local 3 // java.io.FileNotFoundException e
         7: .line 1997
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 36
         8: .line 1998
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.TDSChannel.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " Trust store not found: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* e */
            invokevirtual java.io.FileNotFoundException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.fine:(Ljava/lang/String;)V
        end local 3 // java.io.FileNotFoundException e
         9: .line 2004
            goto 36
        10: .line 2007
      StackMap locals:
      StackMap stack:
            ldc "javax.net.ssl.trustStore"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            dup
            astore 1 /* trustStoreFileName */
            ifnull 21
        11: .line 2009
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINEST:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 15
        12: .line 2010
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.TDSChannel.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " Opening default trust store (from javax.net.ssl.trustStore): "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        13: .line 2011
            aload 1 /* trustStoreFileName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        14: .line 2010
            invokevirtual java.util.logging.Logger.finest:(Ljava/lang/String;)V
        15: .line 2013
      StackMap locals:
      StackMap stack:
            new java.io.FileInputStream
            dup
            aload 1 /* trustStoreFileName */
            invokespecial java.io.FileInputStream.<init>:(Ljava/lang/String;)V
            astore 2 /* is */
        16: .line 2014
            goto 36
      StackMap locals:
      StackMap stack: java.io.FileNotFoundException
        17: astore 3 /* e */
        start local 3 // java.io.FileNotFoundException e
        18: .line 2015
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 36
        19: .line 2016
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.TDSChannel.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " Trust store not found: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* e */
            invokevirtual java.io.FileNotFoundException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.fine:(Ljava/lang/String;)V
        end local 3 // java.io.FileNotFoundException e
        20: .line 2022
            goto 36
        21: .line 2027
      StackMap locals:
      StackMap stack:
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINEST:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 23
        22: .line 2028
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.TDSChannel.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " Opening default trust store: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.JSSECACERTS:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.finest:(Ljava/lang/String;)V
        23: .line 2030
      StackMap locals:
      StackMap stack:
            new java.io.FileInputStream
            dup
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.JSSECACERTS:Ljava/lang/String;
            invokespecial java.io.FileInputStream.<init>:(Ljava/lang/String;)V
            astore 2 /* is */
        24: .line 2031
            goto 28
      StackMap locals:
      StackMap stack: java.io.FileNotFoundException
        25: astore 3 /* e */
        start local 3 // java.io.FileNotFoundException e
        26: .line 2032
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 28
        27: .line 2033
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.TDSChannel.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " Trust store not found: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* e */
            invokevirtual java.io.FileNotFoundException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.fine:(Ljava/lang/String;)V
        end local 3 // java.io.FileNotFoundException e
        28: .line 2037
      StackMap locals:
      StackMap stack:
            aload 2 /* is */
            ifnonnull 36
        29: .line 2039
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINEST:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 31
        30: .line 2040
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.TDSChannel.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " Opening default trust store: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.CACERTS:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.finest:(Ljava/lang/String;)V
        31: .line 2042
      StackMap locals:
      StackMap stack:
            new java.io.FileInputStream
            dup
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.CACERTS:Ljava/lang/String;
            invokespecial java.io.FileInputStream.<init>:(Ljava/lang/String;)V
            astore 2 /* is */
        32: .line 2043
            goto 36
      StackMap locals:
      StackMap stack: java.io.FileNotFoundException
        33: astore 3 /* e */
        start local 3 // java.io.FileNotFoundException e
        34: .line 2044
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 36
        35: .line 2045
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.TDSChannel.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " Trust store not found: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* e */
            invokevirtual java.io.FileNotFoundException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.fine:(Ljava/lang/String;)V
        end local 3 // java.io.FileNotFoundException e
        36: .line 2053
      StackMap locals:
      StackMap stack:
            aload 2 /* is */
            areturn
        end local 2 // java.io.FileInputStream is
        end local 1 // java.lang.String trustStoreFileName
        end local 0 // com.microsoft.sqlserver.jdbc.TDSChannel this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   37     0                this  Lcom/microsoft/sqlserver/jdbc/TDSChannel;
            0   37     1  trustStoreFileName  Ljava/lang/String;
            1   37     2                  is  Ljava/io/FileInputStream;
            7    9     3                   e  Ljava/io/FileNotFoundException;
           18   20     3                   e  Ljava/io/FileNotFoundException;
           26   28     3                   e  Ljava/io/FileNotFoundException;
           34   36     3                   e  Ljava/io/FileNotFoundException;
      Exception table:
        from    to  target  type
           2     5       6  Class java.io.FileNotFoundException
          11    16      17  Class java.io.FileNotFoundException
          21    24      25  Class java.io.FileNotFoundException
          29    32      33  Class java.io.FileNotFoundException
    MethodParameters:
                    Name  Flags
      trustStoreFileName  

  final int read(byte[], int, int);
    descriptor: ([BII)I
    flags: (0x0010) ACC_FINAL
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // com.microsoft.sqlserver.jdbc.TDSChannel this
        start local 1 // byte[] data
        start local 2 // int offset
        start local 3 // int length
         0: .line 2058
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.inputStream:Ljava/io/InputStream;
            aload 1 /* data */
            iload 2 /* offset */
            iload 3 /* length */
            invokevirtual java.io.InputStream.read:([BII)I
         1: ireturn
         2: .line 2059
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 4 /* e */
        start local 4 // java.io.IOException e
         3: .line 2060
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 5
         4: .line 2061
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.TDSChannel.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " read failed:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.fine:(Ljava/lang/String;)V
         5: .line 2063
      StackMap locals: java.io.IOException
      StackMap stack:
            aload 4 /* e */
            instanceof java.net.SocketTimeoutException
            ifeq 8
         6: .line 2064
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.con:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            bipush 8
            aload 4 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            aload 4 /* e */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate:(ILjava/lang/String;Ljava/lang/Throwable;)V
         7: .line 2065
            goto 9
         8: .line 2066
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.con:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            iconst_3
            aload 4 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            aload 4 /* e */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate:(ILjava/lang/String;Ljava/lang/Throwable;)V
         9: .line 2069
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 4 // java.io.IOException e
        end local 3 // int length
        end local 2 // int offset
        end local 1 // byte[] data
        end local 0 // com.microsoft.sqlserver.jdbc.TDSChannel this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0    this  Lcom/microsoft/sqlserver/jdbc/TDSChannel;
            0   10     1    data  [B
            0   10     2  offset  I
            0   10     3  length  I
            3   10     4       e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.IOException
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException
    MethodParameters:
        Name  Flags
      data    
      offset  
      length  

  final void write(byte[], int, int);
    descriptor: ([BII)V
    flags: (0x0010) ACC_FINAL
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // com.microsoft.sqlserver.jdbc.TDSChannel this
        start local 1 // byte[] data
        start local 2 // int offset
        start local 3 // int length
         0: .line 2075
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.outputStream:Ljava/io/OutputStream;
            aload 1 /* data */
            iload 2 /* offset */
            iload 3 /* length */
            invokevirtual java.io.OutputStream.write:([BII)V
         1: .line 2076
            goto 6
      StackMap locals:
      StackMap stack: java.io.IOException
         2: astore 4 /* e */
        start local 4 // java.io.IOException e
         3: .line 2077
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 5
         4: .line 2078
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.TDSChannel.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " write failed:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.finer:(Ljava/lang/String;)V
         5: .line 2080
      StackMap locals: java.io.IOException
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.con:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            iconst_3
            aload 4 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            aload 4 /* e */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate:(ILjava/lang/String;Ljava/lang/Throwable;)V
        end local 4 // java.io.IOException e
         6: .line 2082
      StackMap locals:
      StackMap stack:
            return
        end local 3 // int length
        end local 2 // int offset
        end local 1 // byte[] data
        end local 0 // com.microsoft.sqlserver.jdbc.TDSChannel this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lcom/microsoft/sqlserver/jdbc/TDSChannel;
            0    7     1    data  [B
            0    7     2  offset  I
            0    7     3  length  I
            3    6     4       e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.IOException
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException
    MethodParameters:
        Name  Flags
      data    
      offset  
      length  

  final void flush();
    descriptor: ()V
    flags: (0x0010) ACC_FINAL
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.TDSChannel this
         0: .line 2086
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.outputStream:Ljava/io/OutputStream;
            invokevirtual java.io.OutputStream.flush:()V
         1: .line 2087
            goto 6
      StackMap locals:
      StackMap stack: java.io.IOException
         2: astore 1 /* e */
        start local 1 // java.io.IOException e
         3: .line 2088
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 5
         4: .line 2089
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.TDSChannel.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " flush failed:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.finer:(Ljava/lang/String;)V
         5: .line 2091
      StackMap locals: java.io.IOException
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.con:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            iconst_3
            aload 1 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            aload 1 /* e */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate:(ILjava/lang/String;Ljava/lang/Throwable;)V
        end local 1 // java.io.IOException e
         6: .line 2093
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.microsoft.sqlserver.jdbc.TDSChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/microsoft/sqlserver/jdbc/TDSChannel;
            3    6     1     e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.IOException
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException

  final void close();
    descriptor: ()V
    flags: (0x0010) ACC_FINAL
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.TDSChannel this
         0: .line 2096
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.sslSocket:Ljavax/net/ssl/SSLSocket;
            ifnull 2
         1: .line 2097
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.TDSChannel.disableSSL:()V
         2: .line 2099
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.inputStream:Ljava/io/InputStream;
            ifnull 10
         3: .line 2100
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINEST:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 5
         4: .line 2101
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.TDSChannel.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ": Closing inputStream..."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.finest:(Ljava/lang/String;)V
         5: .line 2104
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.inputStream:Ljava/io/InputStream;
            invokevirtual java.io.InputStream.close:()V
         6: .line 2105
            goto 10
      StackMap locals:
      StackMap stack: java.io.IOException
         7: astore 1 /* e */
        start local 1 // java.io.IOException e
         8: .line 2106
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 10
         9: .line 2107
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.TDSChannel.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ": Ignored error closing inputStream"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 1 /* e */
            invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 1 // java.io.IOException e
        10: .line 2111
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.outputStream:Ljava/io/OutputStream;
            ifnull 18
        11: .line 2112
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINEST:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 13
        12: .line 2113
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.TDSChannel.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ": Closing outputStream..."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.finest:(Ljava/lang/String;)V
        13: .line 2116
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.outputStream:Ljava/io/OutputStream;
            invokevirtual java.io.OutputStream.close:()V
        14: .line 2117
            goto 18
      StackMap locals:
      StackMap stack: java.io.IOException
        15: astore 1 /* e */
        start local 1 // java.io.IOException e
        16: .line 2118
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 18
        17: .line 2119
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.TDSChannel.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ": Ignored error closing outputStream"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 1 /* e */
            invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 1 // java.io.IOException e
        18: .line 2123
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.tcpSocket:Ljava/net/Socket;
            ifnull 26
        19: .line 2124
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 21
        20: .line 2125
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.TDSChannel.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ": Closing TCP socket..."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.finer:(Ljava/lang/String;)V
        21: .line 2128
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.tcpSocket:Ljava/net/Socket;
            invokevirtual java.net.Socket.close:()V
        22: .line 2129
            goto 26
      StackMap locals:
      StackMap stack: java.io.IOException
        23: astore 1 /* e */
        start local 1 // java.io.IOException e
        24: .line 2130
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 26
        25: .line 2131
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.TDSChannel.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ": Ignored error closing socket"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 1 /* e */
            invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 1 // java.io.IOException e
        26: .line 2134
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.microsoft.sqlserver.jdbc.TDSChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   27     0  this  Lcom/microsoft/sqlserver/jdbc/TDSChannel;
            8   10     1     e  Ljava/io/IOException;
           16   18     1     e  Ljava/io/IOException;
           24   26     1     e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           5     6       7  Class java.io.IOException
          13    14      15  Class java.io.IOException
          21    22      23  Class java.io.IOException

  void logPacket(byte[], int, int, java.lang.String);
    descriptor: ([BIILjava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=7, locals=13, args_size=5
        start local 0 // com.microsoft.sqlserver.jdbc.TDSChannel this
        start local 1 // byte[] data
        start local 2 // int nStartOffset
        start local 3 // int nLength
        start local 4 // java.lang.String messageDetail
         0: .line 2149
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.$assertionsDisabled:Z
            ifne 2
            iload 3 /* nLength */
            iflt 1
            iload 3 /* nLength */
            aload 1 /* data */
            arraylength
            if_icmple 2
      StackMap locals:
      StackMap stack:
         1: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 2150
      StackMap locals:
      StackMap stack:
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.$assertionsDisabled:Z
            ifne 4
            iload 2 /* nStartOffset */
            iflt 3
            iload 2 /* nStartOffset */
            aload 1 /* data */
            arraylength
            if_icmple 4
      StackMap locals:
      StackMap stack:
         3: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 2152
      StackMap locals:
      StackMap stack:
            bipush 16
            newarray 5
            dup
            iconst_0
            bipush 48
            castore
            dup
            iconst_1
            bipush 49
            castore
            dup
            iconst_2
            bipush 50
            castore
            dup
            iconst_3
            bipush 51
            castore
            dup
            iconst_4
            bipush 52
            castore
            dup
            iconst_5
            bipush 53
            castore
            dup
            bipush 6
            bipush 54
            castore
            dup
            bipush 7
            bipush 55
            castore
            dup
            bipush 8
            bipush 56
            castore
            dup
            bipush 9
            bipush 57
            castore
            dup
            bipush 10
            bipush 65
            castore
            dup
            bipush 11
            bipush 66
            castore
            dup
            bipush 12
            bipush 67
            castore
            dup
            bipush 13
            bipush 68
            castore
            dup
            bipush 14
            bipush 69
            castore
            dup
            bipush 15
            bipush 70
            castore
            astore 5 /* hexChars */
        start local 5 // char[] hexChars
         5: .line 2154
            sipush 256
            newarray 5
            dup
            iconst_0
            bipush 46
            castore
            dup
            iconst_1
            bipush 46
            castore
            dup
            iconst_2
            bipush 46
            castore
            dup
            iconst_3
            bipush 46
            castore
            dup
            iconst_4
            bipush 46
            castore
            dup
            iconst_5
            bipush 46
            castore
            dup
            bipush 6
            bipush 46
            castore
            dup
            bipush 7
            bipush 46
            castore
            dup
            bipush 8
            bipush 46
            castore
            dup
            bipush 9
            bipush 46
            castore
            dup
            bipush 10
            bipush 46
            castore
            dup
            bipush 11
            bipush 46
            castore
            dup
            bipush 12
            bipush 46
            castore
            dup
            bipush 13
            bipush 46
            castore
            dup
            bipush 14
            bipush 46
            castore
            dup
            bipush 15
            bipush 46
            castore
            dup
            bipush 16
         6: .line 2155
            bipush 46
            castore
            dup
            bipush 17
            bipush 46
            castore
            dup
            bipush 18
            bipush 46
            castore
            dup
            bipush 19
            bipush 46
            castore
            dup
            bipush 20
            bipush 46
            castore
            dup
            bipush 21
            bipush 46
            castore
            dup
            bipush 22
            bipush 46
            castore
            dup
            bipush 23
            bipush 46
            castore
            dup
            bipush 24
            bipush 46
            castore
            dup
            bipush 25
            bipush 46
            castore
            dup
            bipush 26
            bipush 46
            castore
            dup
            bipush 27
            bipush 46
            castore
            dup
            bipush 28
            bipush 46
            castore
            dup
            bipush 29
            bipush 46
            castore
            dup
            bipush 30
            bipush 46
            castore
            dup
            bipush 31
            bipush 46
            castore
            dup
            bipush 32
            bipush 32
            castore
            dup
            bipush 33
            bipush 33
            castore
            dup
            bipush 34
            bipush 34
            castore
            dup
            bipush 35
            bipush 35
            castore
            dup
            bipush 36
         7: .line 2156
            bipush 36
            castore
            dup
            bipush 37
            bipush 37
            castore
            dup
            bipush 38
            bipush 38
            castore
            dup
            bipush 39
            bipush 39
            castore
            dup
            bipush 40
            bipush 40
            castore
            dup
            bipush 41
            bipush 41
            castore
            dup
            bipush 42
            bipush 42
            castore
            dup
            bipush 43
            bipush 43
            castore
            dup
            bipush 44
            bipush 44
            castore
            dup
            bipush 45
            bipush 45
            castore
            dup
            bipush 46
            bipush 46
            castore
            dup
            bipush 47
            bipush 47
            castore
            dup
            bipush 48
            bipush 48
            castore
            dup
            bipush 49
            bipush 49
            castore
            dup
            bipush 50
            bipush 50
            castore
            dup
            bipush 51
            bipush 51
            castore
            dup
            bipush 52
            bipush 52
            castore
            dup
            bipush 53
            bipush 53
            castore
            dup
            bipush 54
            bipush 54
            castore
            dup
            bipush 55
            bipush 55
            castore
            dup
            bipush 56
         8: .line 2157
            bipush 56
            castore
            dup
            bipush 57
            bipush 57
            castore
            dup
            bipush 58
            bipush 58
            castore
            dup
            bipush 59
            bipush 59
            castore
            dup
            bipush 60
            bipush 60
            castore
            dup
            bipush 61
            bipush 61
            castore
            dup
            bipush 62
            bipush 62
            castore
            dup
            bipush 63
            bipush 63
            castore
            dup
            bipush 64
            bipush 64
            castore
            dup
            bipush 65
            bipush 65
            castore
            dup
            bipush 66
            bipush 66
            castore
            dup
            bipush 67
            bipush 67
            castore
            dup
            bipush 68
            bipush 68
            castore
            dup
            bipush 69
            bipush 69
            castore
            dup
            bipush 70
            bipush 70
            castore
            dup
            bipush 71
            bipush 71
            castore
            dup
            bipush 72
            bipush 72
            castore
            dup
            bipush 73
            bipush 73
            castore
            dup
            bipush 74
            bipush 74
            castore
            dup
            bipush 75
            bipush 75
            castore
            dup
            bipush 76
            bipush 76
            castore
            dup
            bipush 77
         9: .line 2158
            bipush 77
            castore
            dup
            bipush 78
            bipush 78
            castore
            dup
            bipush 79
            bipush 79
            castore
            dup
            bipush 80
            bipush 80
            castore
            dup
            bipush 81
            bipush 81
            castore
            dup
            bipush 82
            bipush 82
            castore
            dup
            bipush 83
            bipush 83
            castore
            dup
            bipush 84
            bipush 84
            castore
            dup
            bipush 85
            bipush 85
            castore
            dup
            bipush 86
            bipush 86
            castore
            dup
            bipush 87
            bipush 87
            castore
            dup
            bipush 88
            bipush 88
            castore
            dup
            bipush 89
            bipush 89
            castore
            dup
            bipush 90
            bipush 90
            castore
            dup
            bipush 91
            bipush 91
            castore
            dup
            bipush 92
            bipush 92
            castore
            dup
            bipush 93
            bipush 93
            castore
            dup
            bipush 94
            bipush 94
            castore
            dup
            bipush 95
            bipush 95
            castore
            dup
            bipush 96
            bipush 96
            castore
            dup
            bipush 97
        10: .line 2159
            bipush 97
            castore
            dup
            bipush 98
            bipush 98
            castore
            dup
            bipush 99
            bipush 99
            castore
            dup
            bipush 100
            bipush 100
            castore
            dup
            bipush 101
            bipush 101
            castore
            dup
            bipush 102
            bipush 102
            castore
            dup
            bipush 103
            bipush 103
            castore
            dup
            bipush 104
            bipush 104
            castore
            dup
            bipush 105
            bipush 105
            castore
            dup
            bipush 106
            bipush 106
            castore
            dup
            bipush 107
            bipush 107
            castore
            dup
            bipush 108
            bipush 108
            castore
            dup
            bipush 109
            bipush 109
            castore
            dup
            bipush 110
            bipush 110
            castore
            dup
            bipush 111
            bipush 111
            castore
            dup
            bipush 112
            bipush 112
            castore
            dup
            bipush 113
            bipush 113
            castore
            dup
            bipush 114
            bipush 114
            castore
            dup
            bipush 115
            bipush 115
            castore
            dup
            bipush 116
            bipush 116
            castore
            dup
            bipush 117
            bipush 117
            castore
            dup
            bipush 118
        11: .line 2160
            bipush 118
            castore
            dup
            bipush 119
            bipush 119
            castore
            dup
            bipush 120
            bipush 120
            castore
            dup
            bipush 121
            bipush 121
            castore
            dup
            bipush 122
            bipush 122
            castore
            dup
            bipush 123
            bipush 123
            castore
            dup
            bipush 124
            bipush 124
            castore
            dup
            bipush 125
            bipush 125
            castore
            dup
            bipush 126
            bipush 126
            castore
            dup
            bipush 127
            bipush 46
            castore
            dup
            sipush 128
            bipush 46
            castore
            dup
            sipush 129
            bipush 46
            castore
            dup
            sipush 130
            bipush 46
            castore
            dup
            sipush 131
            bipush 46
            castore
            dup
            sipush 132
            bipush 46
            castore
            dup
            sipush 133
            bipush 46
            castore
            dup
            sipush 134
            bipush 46
            castore
            dup
            sipush 135
            bipush 46
            castore
            dup
            sipush 136
            bipush 46
            castore
            dup
            sipush 137
            bipush 46
            castore
            dup
            sipush 138
            bipush 46
            castore
            dup
            sipush 139
        12: .line 2161
            bipush 46
            castore
            dup
            sipush 140
            bipush 46
            castore
            dup
            sipush 141
            bipush 46
            castore
            dup
            sipush 142
            bipush 46
            castore
            dup
            sipush 143
            bipush 46
            castore
            dup
            sipush 144
            bipush 46
            castore
            dup
            sipush 145
            bipush 46
            castore
            dup
            sipush 146
            bipush 46
            castore
            dup
            sipush 147
            bipush 46
            castore
            dup
            sipush 148
            bipush 46
            castore
            dup
            sipush 149
            bipush 46
            castore
            dup
            sipush 150
            bipush 46
            castore
            dup
            sipush 151
            bipush 46
            castore
            dup
            sipush 152
            bipush 46
            castore
            dup
            sipush 153
            bipush 46
            castore
            dup
            sipush 154
            bipush 46
            castore
            dup
            sipush 155
            bipush 46
            castore
            dup
            sipush 156
            bipush 46
            castore
            dup
            sipush 157
            bipush 46
            castore
            dup
            sipush 158
            bipush 46
            castore
            dup
            sipush 159
            bipush 46
            castore
            dup
            sipush 160
        13: .line 2162
            bipush 46
            castore
            dup
            sipush 161
            bipush 46
            castore
            dup
            sipush 162
            bipush 46
            castore
            dup
            sipush 163
            bipush 46
            castore
            dup
            sipush 164
            bipush 46
            castore
            dup
            sipush 165
            bipush 46
            castore
            dup
            sipush 166
            bipush 46
            castore
            dup
            sipush 167
            bipush 46
            castore
            dup
            sipush 168
            bipush 46
            castore
            dup
            sipush 169
            bipush 46
            castore
            dup
            sipush 170
            bipush 46
            castore
            dup
            sipush 171
            bipush 46
            castore
            dup
            sipush 172
            bipush 46
            castore
            dup
            sipush 173
            bipush 46
            castore
            dup
            sipush 174
            bipush 46
            castore
            dup
            sipush 175
            bipush 46
            castore
            dup
            sipush 176
            bipush 46
            castore
            dup
            sipush 177
            bipush 46
            castore
            dup
            sipush 178
            bipush 46
            castore
            dup
            sipush 179
            bipush 46
            castore
            dup
            sipush 180
            bipush 46
            castore
            dup
            sipush 181
        14: .line 2163
            bipush 46
            castore
            dup
            sipush 182
            bipush 46
            castore
            dup
            sipush 183
            bipush 46
            castore
            dup
            sipush 184
            bipush 46
            castore
            dup
            sipush 185
            bipush 46
            castore
            dup
            sipush 186
            bipush 46
            castore
            dup
            sipush 187
            bipush 46
            castore
            dup
            sipush 188
            bipush 46
            castore
            dup
            sipush 189
            bipush 46
            castore
            dup
            sipush 190
            bipush 46
            castore
            dup
            sipush 191
            bipush 46
            castore
            dup
            sipush 192
            bipush 46
            castore
            dup
            sipush 193
            bipush 46
            castore
            dup
            sipush 194
            bipush 46
            castore
            dup
            sipush 195
            bipush 46
            castore
            dup
            sipush 196
            bipush 46
            castore
            dup
            sipush 197
            bipush 46
            castore
            dup
            sipush 198
            bipush 46
            castore
            dup
            sipush 199
            bipush 46
            castore
            dup
            sipush 200
            bipush 46
            castore
            dup
            sipush 201
            bipush 46
            castore
            dup
            sipush 202
        15: .line 2164
            bipush 46
            castore
            dup
            sipush 203
            bipush 46
            castore
            dup
            sipush 204
            bipush 46
            castore
            dup
            sipush 205
            bipush 46
            castore
            dup
            sipush 206
            bipush 46
            castore
            dup
            sipush 207
            bipush 46
            castore
            dup
            sipush 208
            bipush 46
            castore
            dup
            sipush 209
            bipush 46
            castore
            dup
            sipush 210
            bipush 46
            castore
            dup
            sipush 211
            bipush 46
            castore
            dup
            sipush 212
            bipush 46
            castore
            dup
            sipush 213
            bipush 46
            castore
            dup
            sipush 214
            bipush 46
            castore
            dup
            sipush 215
            bipush 46
            castore
            dup
            sipush 216
            bipush 46
            castore
            dup
            sipush 217
            bipush 46
            castore
            dup
            sipush 218
            bipush 46
            castore
            dup
            sipush 219
            bipush 46
            castore
            dup
            sipush 220
            bipush 46
            castore
            dup
            sipush 221
            bipush 46
            castore
            dup
            sipush 222
            bipush 46
            castore
            dup
            sipush 223
        16: .line 2165
            bipush 46
            castore
            dup
            sipush 224
            bipush 46
            castore
            dup
            sipush 225
            bipush 46
            castore
            dup
            sipush 226
            bipush 46
            castore
            dup
            sipush 227
            bipush 46
            castore
            dup
            sipush 228
            bipush 46
            castore
            dup
            sipush 229
            bipush 46
            castore
            dup
            sipush 230
            bipush 46
            castore
            dup
            sipush 231
            bipush 46
            castore
            dup
            sipush 232
            bipush 46
            castore
            dup
            sipush 233
            bipush 46
            castore
            dup
            sipush 234
            bipush 46
            castore
            dup
            sipush 235
            bipush 46
            castore
            dup
            sipush 236
            bipush 46
            castore
            dup
            sipush 237
            bipush 46
            castore
            dup
            sipush 238
            bipush 46
            castore
            dup
            sipush 239
            bipush 46
            castore
            dup
            sipush 240
            bipush 46
            castore
            dup
            sipush 241
            bipush 46
            castore
            dup
            sipush 242
            bipush 46
            castore
            dup
            sipush 243
            bipush 46
            castore
            dup
            sipush 244
        17: .line 2166
            bipush 46
            castore
            dup
            sipush 245
            bipush 46
            castore
            dup
            sipush 246
            bipush 46
            castore
            dup
            sipush 247
            bipush 46
            castore
            dup
            sipush 248
            bipush 46
            castore
            dup
            sipush 249
            bipush 46
            castore
            dup
            sipush 250
            bipush 46
            castore
            dup
            sipush 251
            bipush 46
            castore
            dup
            sipush 252
            bipush 46
            castore
            dup
            sipush 253
            bipush 46
            castore
            dup
            sipush 254
            bipush 46
            castore
            dup
            sipush 255
            bipush 46
            castore
        18: .line 2154
            astore 6 /* printableChars */
        start local 6 // char[] printableChars
        19: .line 2174
            bipush 66
            newarray 5
            dup
            iconst_0
            bipush 32
            castore
            dup
            iconst_1
            bipush 32
            castore
            dup
            iconst_2
            bipush 32
            castore
            dup
            iconst_3
            bipush 32
            castore
            dup
            iconst_4
            bipush 32
            castore
            dup
            iconst_5
            bipush 32
            castore
            dup
            bipush 6
            bipush 32
            castore
            dup
            bipush 7
            bipush 32
            castore
            dup
            bipush 8
            bipush 32
            castore
            dup
            bipush 9
            bipush 32
            castore
            dup
            bipush 10
            bipush 32
            castore
            dup
            bipush 11
            bipush 32
            castore
            dup
            bipush 12
            bipush 32
            castore
            dup
            bipush 13
            bipush 32
            castore
            dup
            bipush 14
            bipush 32
            castore
            dup
            bipush 15
            bipush 32
            castore
            dup
            bipush 16
        20: .line 2175
            bipush 32
            castore
            dup
            bipush 17
            bipush 32
            castore
            dup
            bipush 18
            bipush 32
            castore
            dup
            bipush 19
            bipush 32
            castore
            dup
            bipush 20
            bipush 32
            castore
            dup
            bipush 21
            bipush 32
            castore
            dup
            bipush 22
            bipush 32
            castore
            dup
            bipush 23
            bipush 32
            castore
            dup
            bipush 24
            bipush 32
            castore
            dup
            bipush 25
            bipush 32
            castore
            dup
            bipush 26
            bipush 32
            castore
            dup
            bipush 27
            bipush 32
            castore
            dup
            bipush 28
            bipush 32
            castore
            dup
            bipush 29
            bipush 32
            castore
            dup
            bipush 30
            bipush 32
            castore
            dup
            bipush 31
            bipush 32
            castore
            dup
            bipush 32
            bipush 32
            castore
            dup
            bipush 33
            bipush 32
            castore
            dup
            bipush 34
            bipush 32
            castore
            dup
            bipush 35
            bipush 32
            castore
            dup
            bipush 36
            bipush 32
            castore
            dup
            bipush 37
        21: .line 2176
            bipush 32
            castore
            dup
            bipush 38
            bipush 32
            castore
            dup
            bipush 39
            bipush 32
            castore
            dup
            bipush 40
            bipush 32
            castore
            dup
            bipush 41
            bipush 32
            castore
            dup
            bipush 42
            bipush 32
            castore
            dup
            bipush 43
            bipush 32
            castore
            dup
            bipush 44
            bipush 32
            castore
            dup
            bipush 45
            bipush 32
            castore
            dup
            bipush 46
            bipush 32
            castore
            dup
            bipush 47
            bipush 32
            castore
            dup
            bipush 48
        22: .line 2178
            bipush 32
            castore
            dup
            bipush 49
            bipush 32
            castore
            dup
            bipush 50
        23: .line 2180
            bipush 46
            castore
            dup
            bipush 51
            bipush 46
            castore
            dup
            bipush 52
            bipush 46
            castore
            dup
            bipush 53
            bipush 46
            castore
            dup
            bipush 54
            bipush 46
            castore
            dup
            bipush 55
            bipush 46
            castore
            dup
            bipush 56
            bipush 46
            castore
            dup
            bipush 57
            bipush 46
            castore
            dup
            bipush 58
            bipush 46
            castore
            dup
            bipush 59
            bipush 46
            castore
            dup
            bipush 60
            bipush 46
            castore
            dup
            bipush 61
            bipush 46
            castore
            dup
            bipush 62
            bipush 46
            castore
            dup
            bipush 63
            bipush 46
            castore
            dup
            bipush 64
            bipush 46
            castore
            dup
            bipush 65
            bipush 46
            castore
        24: .line 2174
            astore 7 /* lineTemplate */
        start local 7 // char[] lineTemplate
        25: .line 2182
            aload 7 /* lineTemplate */
            arraylength
            newarray 5
            astore 8 /* logLine */
        start local 8 // char[] logLine
        26: .line 2183
            aload 7 /* lineTemplate */
            iconst_0
            aload 8 /* logLine */
            iconst_0
            aload 7 /* lineTemplate */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        27: .line 2188
            new java.lang.StringBuilder
            dup
            aload 4 /* messageDetail */
            invokevirtual java.lang.String.length:()I
        28: .line 2189
            iconst_4
            iload 3 /* nLength */
            imul
            iadd
        29: .line 2190
            iconst_4
            iconst_1
            iload 3 /* nLength */
            bipush 16
            idiv
            iadd
            imul
            iadd
        30: .line 2191
            bipush 80
            iadd
        31: .line 2188
            invokespecial java.lang.StringBuilder.<init>:(I)V
            astore 9 /* logMsg */
        start local 9 // java.lang.StringBuilder logMsg
        32: .line 2198
            aload 9 /* logMsg */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.tcpSocket:Ljava/net/Socket;
            invokevirtual java.net.Socket.getLocalAddress:()Ljava/net/InetAddress;
            invokevirtual java.net.InetAddress.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ":"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.tcpSocket:Ljava/net/Socket;
            invokevirtual java.net.Socket.getLocalPort:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        33: .line 2199
            ldc " SPID:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.spid:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* messageDetail */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\r\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        34: .line 2202
            iconst_0
            istore 10 /* nBytesLogged */
        start local 10 // int nBytesLogged
        35: .line 2206
      StackMap locals: com.microsoft.sqlserver.jdbc.TDSChannel byte[] int int java.lang.String char[] char[] char[] char[] java.lang.StringBuilder int
      StackMap stack:
            iconst_0
            istore 11 /* nBytesThisLine */
        start local 11 // int nBytesThisLine
        36: goto 42
        37: .line 2207
      StackMap locals: int
      StackMap stack:
            aload 1 /* data */
            iload 2 /* nStartOffset */
            iload 10 /* nBytesLogged */
            iadd
            baload
            sipush 256
            iadd
            sipush 256
            irem
            istore 12 /* nUnsignedByteVal */
        start local 12 // int nUnsignedByteVal
        38: .line 2208
            aload 8 /* logLine */
            iconst_3
            iload 11 /* nBytesThisLine */
            imul
            aload 5 /* hexChars */
            iload 12 /* nUnsignedByteVal */
            bipush 16
            idiv
            caload
            castore
        39: .line 2209
            aload 8 /* logLine */
            iconst_3
            iload 11 /* nBytesThisLine */
            imul
            iconst_1
            iadd
            aload 5 /* hexChars */
            iload 12 /* nUnsignedByteVal */
            bipush 16
            irem
            caload
            castore
        40: .line 2210
            aload 8 /* logLine */
            bipush 50
            iload 11 /* nBytesThisLine */
            iadd
            aload 6 /* printableChars */
            iload 12 /* nUnsignedByteVal */
            caload
            castore
        end local 12 // int nUnsignedByteVal
        41: .line 2206
            iinc 11 /* nBytesThisLine */ 1
            iinc 10 /* nBytesLogged */ 1
      StackMap locals:
      StackMap stack:
        42: iload 11 /* nBytesThisLine */
            bipush 16
            if_icmpge 43
            iload 10 /* nBytesLogged */
            iload 3 /* nLength */
            if_icmplt 37
        43: .line 2214
      StackMap locals:
      StackMap stack:
            iload 11 /* nBytesThisLine */
            istore 12 /* nBytesJustified */
        start local 12 // int nBytesJustified
        44: goto 48
        45: .line 2215
      StackMap locals: int
      StackMap stack:
            aload 8 /* logLine */
            iconst_3
            iload 12 /* nBytesJustified */
            imul
            bipush 32
            castore
        46: .line 2216
            aload 8 /* logLine */
            iconst_3
            iload 12 /* nBytesJustified */
            imul
            iconst_1
            iadd
            bipush 32
            castore
        47: .line 2214
            iinc 12 /* nBytesJustified */ 1
      StackMap locals:
      StackMap stack:
        48: iload 12 /* nBytesJustified */
            bipush 16
            if_icmplt 45
        end local 12 // int nBytesJustified
        49: .line 2219
            aload 9 /* logMsg */
            aload 8 /* logLine */
            iconst_0
            bipush 50
            iload 11 /* nBytesThisLine */
            iadd
            invokevirtual java.lang.StringBuilder.append:([CII)Ljava/lang/StringBuilder;
            pop
        50: .line 2220
            iload 10 /* nBytesLogged */
            iload 3 /* nLength */
            if_icmpne 52
        51: .line 2221
            goto 54
        52: .line 2223
      StackMap locals:
      StackMap stack:
            aload 9 /* logMsg */
            ldc "\r\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 11 // int nBytesThisLine
        53: .line 2204
            goto 35
        start local 11 // int nBytesThisLine
        54: .line 2226
      StackMap locals:
      StackMap stack:
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.packetLogger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINEST:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 56
        55: .line 2227
            getstatic com.microsoft.sqlserver.jdbc.TDSChannel.packetLogger:Ljava/util/logging/Logger;
            aload 9 /* logMsg */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.finest:(Ljava/lang/String;)V
        56: .line 2229
      StackMap locals:
      StackMap stack:
            return
        end local 11 // int nBytesThisLine
        end local 10 // int nBytesLogged
        end local 9 // java.lang.StringBuilder logMsg
        end local 8 // char[] logLine
        end local 7 // char[] lineTemplate
        end local 6 // char[] printableChars
        end local 5 // char[] hexChars
        end local 4 // java.lang.String messageDetail
        end local 3 // int nLength
        end local 2 // int nStartOffset
        end local 1 // byte[] data
        end local 0 // com.microsoft.sqlserver.jdbc.TDSChannel this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   57     0              this  Lcom/microsoft/sqlserver/jdbc/TDSChannel;
            0   57     1              data  [B
            0   57     2      nStartOffset  I
            0   57     3           nLength  I
            0   57     4     messageDetail  Ljava/lang/String;
            5   57     5          hexChars  [C
           19   57     6    printableChars  [C
           25   57     7      lineTemplate  [C
           26   57     8           logLine  [C
           32   57     9            logMsg  Ljava/lang/StringBuilder;
           35   57    10      nBytesLogged  I
           36   53    11    nBytesThisLine  I
           54   57    11    nBytesThisLine  I
           38   41    12  nUnsignedByteVal  I
           44   49    12   nBytesJustified  I
    MethodParameters:
               Name  Flags
      data           
      nStartOffset   
      nLength        
      messageDetail  

  final int getNetworkTimeout();
    descriptor: ()I
    flags: (0x0010) ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.TDSChannel this
         0: .line 2239
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.tcpSocket:Ljava/net/Socket;
            invokevirtual java.net.Socket.getSoTimeout:()I
            ireturn
        end local 0 // com.microsoft.sqlserver.jdbc.TDSChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/microsoft/sqlserver/jdbc/TDSChannel;
    Exceptions:
      throws java.io.IOException

  final void setNetworkTimeout(int);
    descriptor: (I)V
    flags: (0x0010) ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.TDSChannel this
        start local 1 // int timeout
         0: .line 2251
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.tcpSocket:Ljava/net/Socket;
            iload 1 /* timeout */
            invokevirtual java.net.Socket.setSoTimeout:(I)V
         1: .line 2252
            return
        end local 1 // int timeout
        end local 0 // com.microsoft.sqlserver.jdbc.TDSChannel this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lcom/microsoft/sqlserver/jdbc/TDSChannel;
            0    2     1  timeout  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      timeout  
}
SourceFile: "IOBuffer.java"
NestMembers:
  com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager  com.microsoft.sqlserver.jdbc.TDSChannel$PermissiveX509TrustManager  com.microsoft.sqlserver.jdbc.TDSChannel$ProxyInputStream  com.microsoft.sqlserver.jdbc.TDSChannel$ProxyOutputStream  com.microsoft.sqlserver.jdbc.TDSChannel$ProxySocket  com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandhsakeState  com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandshakeInputStream  com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandshakeOutputStream
InnerClasses:
  private final HostNameOverrideX509TrustManager = com.microsoft.sqlserver.jdbc.TDSChannel$HostNameOverrideX509TrustManager of com.microsoft.sqlserver.jdbc.TDSChannel
  private final PermissiveX509TrustManager = com.microsoft.sqlserver.jdbc.TDSChannel$PermissiveX509TrustManager of com.microsoft.sqlserver.jdbc.TDSChannel
  private final ProxyInputStream = com.microsoft.sqlserver.jdbc.TDSChannel$ProxyInputStream of com.microsoft.sqlserver.jdbc.TDSChannel
  final ProxyOutputStream = com.microsoft.sqlserver.jdbc.TDSChannel$ProxyOutputStream of com.microsoft.sqlserver.jdbc.TDSChannel
  private ProxySocket = com.microsoft.sqlserver.jdbc.TDSChannel$ProxySocket of com.microsoft.sqlserver.jdbc.TDSChannel
  final SSLHandhsakeState = com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandhsakeState of com.microsoft.sqlserver.jdbc.TDSChannel
  private SSLHandshakeInputStream = com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandshakeInputStream of com.microsoft.sqlserver.jdbc.TDSChannel
  private SSLHandshakeOutputStream = com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandshakeOutputStream of com.microsoft.sqlserver.jdbc.TDSChannel
  public Service = java.security.Provider$Service of java.security.Provider