abstract class com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype
  minor version: 0
  major version: 59
  flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
  this_class: com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype
  super_class: java.lang.Object
{
  protected java.nio.ByteBuffer buffer;
    descriptor: Ljava/nio/ByteBuffer;
    flags: (0x0004) ACC_PROTECTED

  protected com.microsoft.sqlserver.jdbc.InternalSpatialDatatype internalType;
    descriptor: Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
    flags: (0x0004) ACC_PROTECTED

  protected java.lang.String wkt;
    descriptor: Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED

  protected java.lang.String wktNoZM;
    descriptor: Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED

  protected byte[] clr;
    descriptor: [B
    flags: (0x0004) ACC_PROTECTED

  protected byte[] clrNoZM;
    descriptor: [B
    flags: (0x0004) ACC_PROTECTED

  protected int srid;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected byte version;
    descriptor: B
    flags: (0x0004) ACC_PROTECTED

  protected int numberOfPoints;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected int numberOfFigures;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected int numberOfShapes;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected int numberOfSegments;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected java.lang.StringBuffer WKTsb;
    descriptor: Ljava/lang/StringBuffer;
    flags: (0x0004) ACC_PROTECTED

  protected java.lang.StringBuffer WKTsbNoZM;
    descriptor: Ljava/lang/StringBuffer;
    flags: (0x0004) ACC_PROTECTED

  protected int currentPointIndex;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected int currentFigureIndex;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected int currentSegmentIndex;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected int currentShapeIndex;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected int currentWKBPointIndex;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected int currentWKBFigureIndex;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected int currentWKBSegmentIndex;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected int currentWKBShapeIndex;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected double[] xValues;
    descriptor: [D
    flags: (0x0004) ACC_PROTECTED

  protected double[] yValues;
    descriptor: [D
    flags: (0x0004) ACC_PROTECTED

  protected double[] zValues;
    descriptor: [D
    flags: (0x0004) ACC_PROTECTED

  protected double[] mValues;
    descriptor: [D
    flags: (0x0004) ACC_PROTECTED

  protected com.microsoft.sqlserver.jdbc.spatialdatatypes.Figure[] figures;
    descriptor: [Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Figure;
    flags: (0x0004) ACC_PROTECTED

  protected com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape[] shapes;
    descriptor: [Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
    flags: (0x0004) ACC_PROTECTED

  protected com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment[] segments;
    descriptor: [Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Segment;
    flags: (0x0004) ACC_PROTECTED

  protected byte[] wkb;
    descriptor: [B
    flags: (0x0004) ACC_PROTECTED

  protected byte endian;
    descriptor: B
    flags: (0x0004) ACC_PROTECTED

  protected int wkbType;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  private final int WKB_POINT_SIZE;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    ConstantValue: 16

  private final int BYTE_ORDER_SIZE;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    ConstantValue: 1

  private final int INTERNAL_TYPE_SIZE;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    ConstantValue: 4

  private final int NUMBER_OF_SHAPES_SIZE;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    ConstantValue: 4

  private final int LINEAR_RING_HEADER_SIZE;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    ConstantValue: 4

  private final int WKB_POINT_HEADER_SIZE;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    ConstantValue: 5

  private final int WKB_HEADER_SIZE;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    ConstantValue: 9

  private final int WKB_FULLGLOBE_CODE;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    ConstantValue: 126

  protected boolean hasZvalues;
    descriptor: Z
    flags: (0x0004) ACC_PROTECTED

  protected boolean hasMvalues;
    descriptor: Z
    flags: (0x0004) ACC_PROTECTED

  protected boolean isValid;
    descriptor: Z
    flags: (0x0004) ACC_PROTECTED

  protected boolean isSinglePoint;
    descriptor: Z
    flags: (0x0004) ACC_PROTECTED

  protected boolean isSingleLineSegment;
    descriptor: Z
    flags: (0x0004) ACC_PROTECTED

  protected boolean isLargerThanHemisphere;
    descriptor: Z
    flags: (0x0004) ACC_PROTECTED

  protected boolean isNull;
    descriptor: Z
    flags: (0x0004) ACC_PROTECTED

  protected final byte FA_INTERIOR_RING;
    descriptor: B
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    ConstantValue: 0

  protected final byte FA_STROKE;
    descriptor: B
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    ConstantValue: 1

  protected final byte FA_EXTERIOR_RING;
    descriptor: B
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    ConstantValue: 2

  protected final byte FA_POINT;
    descriptor: B
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    ConstantValue: 0

  protected final byte FA_LINE;
    descriptor: B
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    ConstantValue: 1

  protected final byte FA_ARC;
    descriptor: B
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    ConstantValue: 2

  protected final byte FA_COMPOSITE_CURVE;
    descriptor: B
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    ConstantValue: 3

  protected int currentWktPos;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected java.util.List<com.microsoft.sqlserver.jdbc.spatialdatatypes.Point> pointList;
    descriptor: Ljava/util/List;
    flags: (0x0004) ACC_PROTECTED
    Signature: Ljava/util/List<Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Point;>;

  protected java.util.List<com.microsoft.sqlserver.jdbc.spatialdatatypes.Figure> figureList;
    descriptor: Ljava/util/List;
    flags: (0x0004) ACC_PROTECTED
    Signature: Ljava/util/List<Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Figure;>;

  protected java.util.List<com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape> shapeList;
    descriptor: Ljava/util/List;
    flags: (0x0004) ACC_PROTECTED
    Signature: Ljava/util/List<Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;>;

  protected java.util.List<com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment> segmentList;
    descriptor: Ljava/util/List;
    flags: (0x0004) ACC_PROTECTED
    Signature: Ljava/util/List<Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Segment;>;

  protected byte serializationProperties;
    descriptor: B
    flags: (0x0004) ACC_PROTECTED

  private final byte SEGMENT_LINE;
    descriptor: B
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    ConstantValue: 0

  private final byte SEGMENT_ARC;
    descriptor: B
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    ConstantValue: 1

  private final byte SEGMENT_FIRST_LINE;
    descriptor: B
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    ConstantValue: 2

  private final byte SEGMENT_FIRST_ARC;
    descriptor: B
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    ConstantValue: 3

  private final byte hasZvaluesMask;
    descriptor: B
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    ConstantValue: 1

  private final byte hasMvaluesMask;
    descriptor: B
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    ConstantValue: 2

  private final byte isValidMask;
    descriptor: B
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    ConstantValue: 4

  private final byte isSinglePointMask;
    descriptor: B
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    ConstantValue: 8

  private final byte isSingleLineSegmentMask;
    descriptor: B
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    ConstantValue: 16

  private final byte isLargerThanHemisphereMask;
    descriptor: B
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    ConstantValue: 32

  private java.util.List<java.lang.Integer> version_one_shape_indexes;
    descriptor: Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/List<Ljava/lang/Integer;>;

  private static volatile int[] $SWITCH_TABLE$com$microsoft$sqlserver$jdbc$InternalSpatialDatatype;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
         0: .line 26
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 40
            aload 0 /* this */
            iconst_1
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.version:B
         2: .line 47
            aload 0 /* this */
            iconst_0
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentPointIndex:I
         3: .line 48
            aload 0 /* this */
            iconst_0
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentFigureIndex:I
         4: .line 49
            aload 0 /* this */
            iconst_0
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentSegmentIndex:I
         5: .line 50
            aload 0 /* this */
            iconst_0
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentShapeIndex:I
         6: .line 51
            aload 0 /* this */
            iconst_0
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBPointIndex:I
         7: .line 52
            aload 0 /* this */
            iconst_0
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBFigureIndex:I
         8: .line 53
            aload 0 /* this */
            iconst_0
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBSegmentIndex:I
         9: .line 54
            aload 0 /* this */
            iconst_0
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
        10: .line 59
            aload 0 /* this */
            iconst_0
            anewarray com.microsoft.sqlserver.jdbc.spatialdatatypes.Figure
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figures:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Figure;
        11: .line 60
            aload 0 /* this */
            iconst_0
            anewarray com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
        12: .line 61
            aload 0 /* this */
            iconst_0
            anewarray com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.segments:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Segment;
        13: .line 65
            aload 0 /* this */
            iconst_1
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.endian:B
        14: .line 70
            aload 0 /* this */
            bipush 16
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.WKB_POINT_SIZE:I
        15: .line 71
            aload 0 /* this */
            iconst_1
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.BYTE_ORDER_SIZE:I
        16: .line 72
            aload 0 /* this */
            iconst_4
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.INTERNAL_TYPE_SIZE:I
        17: .line 73
            aload 0 /* this */
            iconst_4
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.NUMBER_OF_SHAPES_SIZE:I
        18: .line 74
            aload 0 /* this */
            iconst_4
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.LINEAR_RING_HEADER_SIZE:I
        19: .line 75
            aload 0 /* this */
            iconst_5
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.WKB_POINT_HEADER_SIZE:I
        20: .line 76
            aload 0 /* this */
            bipush 9
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.WKB_HEADER_SIZE:I
        21: .line 77
            aload 0 /* this */
            bipush 126
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.WKB_FULLGLOBE_CODE:I
        22: .line 80
            aload 0 /* this */
            iconst_0
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.hasZvalues:Z
        23: .line 81
            aload 0 /* this */
            iconst_0
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.hasMvalues:Z
        24: .line 82
            aload 0 /* this */
            iconst_1
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.isValid:Z
        25: .line 83
            aload 0 /* this */
            iconst_0
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.isSinglePoint:Z
        26: .line 84
            aload 0 /* this */
            iconst_0
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.isSingleLineSegment:Z
        27: .line 85
            aload 0 /* this */
            iconst_0
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.isLargerThanHemisphere:Z
        28: .line 86
            aload 0 /* this */
            iconst_1
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.isNull:Z
        29: .line 88
            aload 0 /* this */
            iconst_0
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.FA_INTERIOR_RING:B
        30: .line 89
            aload 0 /* this */
            iconst_1
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.FA_STROKE:B
        31: .line 90
            aload 0 /* this */
            iconst_2
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.FA_EXTERIOR_RING:B
        32: .line 92
            aload 0 /* this */
            iconst_0
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.FA_POINT:B
        33: .line 93
            aload 0 /* this */
            iconst_1
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.FA_LINE:B
        34: .line 94
            aload 0 /* this */
            iconst_2
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.FA_ARC:B
        35: .line 95
            aload 0 /* this */
            iconst_3
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.FA_COMPOSITE_CURVE:B
        36: .line 98
            aload 0 /* this */
            iconst_0
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
        37: .line 99
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.pointList:Ljava/util/List;
        38: .line 100
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figureList:Ljava/util/List;
        39: .line 101
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapeList:Ljava/util/List;
        40: .line 102
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.segmentList:Ljava/util/List;
        41: .line 103
            aload 0 /* this */
            iconst_0
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.serializationProperties:B
        42: .line 105
            aload 0 /* this */
            iconst_0
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.SEGMENT_LINE:B
        43: .line 106
            aload 0 /* this */
            iconst_1
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.SEGMENT_ARC:B
        44: .line 107
            aload 0 /* this */
            iconst_2
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.SEGMENT_FIRST_LINE:B
        45: .line 108
            aload 0 /* this */
            iconst_3
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.SEGMENT_FIRST_ARC:B
        46: .line 110
            aload 0 /* this */
            iconst_1
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.hasZvaluesMask:B
        47: .line 111
            aload 0 /* this */
            iconst_2
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.hasMvaluesMask:B
        48: .line 112
            aload 0 /* this */
            iconst_4
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.isValidMask:B
        49: .line 113
            aload 0 /* this */
            bipush 8
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.isSinglePointMask:B
        50: .line 114
            aload 0 /* this */
            bipush 16
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.isSingleLineSegmentMask:B
        51: .line 115
            aload 0 /* this */
            bipush 32
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.isLargerThanHemisphereMask:B
        52: .line 117
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.version_one_shape_indexes:Ljava/util/List;
        53: .line 26
            return
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   54     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;

  protected void serializeToClr(boolean, com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype);
    descriptor: (ZLcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
        start local 1 // boolean excludeZMFromCLR
        start local 2 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype type
         0: .line 128
            aload 0 /* this */
            iload 1 /* excludeZMFromCLR */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.determineClrCapacity:(Z)I
            invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
            astore 3 /* buf */
        start local 3 // java.nio.ByteBuffer buf
         1: .line 129
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.createSerializationProperties:()V
         2: .line 131
            aload 3 /* buf */
            getstatic java.nio.ByteOrder.LITTLE_ENDIAN:Ljava/nio/ByteOrder;
            invokevirtual java.nio.ByteBuffer.order:(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer;
            pop
         3: .line 132
            aload 3 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.srid:I
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         4: .line 133
            aload 3 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.version:B
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
         5: .line 134
            iload 1 /* excludeZMFromCLR */
            ifeq 13
         6: .line 135
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.serializationProperties:B
            istore 4 /* serializationPropertiesNoZM */
        start local 4 // byte serializationPropertiesNoZM
         7: .line 136
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.hasZvalues:Z
            ifeq 9
         8: .line 137
            iload 4 /* serializationPropertiesNoZM */
            iconst_1
            isub
            i2b
            istore 4 /* serializationPropertiesNoZM */
         9: .line 140
      StackMap locals: java.nio.ByteBuffer int
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.hasMvalues:Z
            ifeq 11
        10: .line 141
            iload 4 /* serializationPropertiesNoZM */
            iconst_2
            isub
            i2b
            istore 4 /* serializationPropertiesNoZM */
        11: .line 143
      StackMap locals:
      StackMap stack:
            aload 3 /* buf */
            iload 4 /* serializationPropertiesNoZM */
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
        end local 4 // byte serializationPropertiesNoZM
        12: .line 144
            goto 14
        13: .line 145
      StackMap locals:
      StackMap stack:
            aload 3 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.serializationProperties:B
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
        14: .line 148
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.isSinglePoint:Z
            ifne 16
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.isSingleLineSegment:Z
            ifne 16
        15: .line 149
            aload 3 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfPoints:I
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
        16: .line 152
      StackMap locals:
      StackMap stack:
            aload 2 /* type */
            instanceof com.microsoft.sqlserver.jdbc.Geometry
            ifeq 24
        17: .line 153
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        18: goto 22
        19: .line 154
      StackMap locals: int
      StackMap stack:
            aload 3 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.xValues:[D
            iload 4 /* i */
            daload
            invokevirtual java.nio.ByteBuffer.putDouble:(D)Ljava/nio/ByteBuffer;
            pop
        20: .line 155
            aload 3 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.yValues:[D
            iload 4 /* i */
            daload
            invokevirtual java.nio.ByteBuffer.putDouble:(D)Ljava/nio/ByteBuffer;
            pop
        21: .line 153
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        22: iload 4 /* i */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfPoints:I
            if_icmplt 19
        end local 4 // int i
        23: .line 157
            goto 30
        24: .line 158
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        25: goto 29
        26: .line 159
      StackMap locals: int
      StackMap stack:
            aload 3 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.yValues:[D
            iload 4 /* i */
            daload
            invokevirtual java.nio.ByteBuffer.putDouble:(D)Ljava/nio/ByteBuffer;
            pop
        27: .line 160
            aload 3 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.xValues:[D
            iload 4 /* i */
            daload
            invokevirtual java.nio.ByteBuffer.putDouble:(D)Ljava/nio/ByteBuffer;
            pop
        28: .line 158
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        29: iload 4 /* i */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfPoints:I
            if_icmplt 26
        end local 4 // int i
        30: .line 164
      StackMap locals:
      StackMap stack:
            iload 1 /* excludeZMFromCLR */
            ifne 43
        31: .line 165
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.hasZvalues:Z
            ifeq 37
        32: .line 166
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        33: goto 36
        34: .line 167
      StackMap locals: int
      StackMap stack:
            aload 3 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.zValues:[D
            iload 4 /* i */
            daload
            invokevirtual java.nio.ByteBuffer.putDouble:(D)Ljava/nio/ByteBuffer;
            pop
        35: .line 166
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        36: iload 4 /* i */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfPoints:I
            if_icmplt 34
        end local 4 // int i
        37: .line 171
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.hasMvalues:Z
            ifeq 43
        38: .line 172
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        39: goto 42
        40: .line 173
      StackMap locals: int
      StackMap stack:
            aload 3 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.mValues:[D
            iload 4 /* i */
            daload
            invokevirtual java.nio.ByteBuffer.putDouble:(D)Ljava/nio/ByteBuffer;
            pop
        41: .line 172
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        42: iload 4 /* i */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfPoints:I
            if_icmplt 40
        end local 4 // int i
        43: .line 178
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.isSinglePoint:Z
            ifne 44
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.isSingleLineSegment:Z
            ifeq 49
        44: .line 179
      StackMap locals:
      StackMap stack:
            iload 1 /* excludeZMFromCLR */
            ifeq 47
        45: .line 180
            aload 0 /* this */
            aload 3 /* buf */
            invokevirtual java.nio.ByteBuffer.array:()[B
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.clrNoZM:[B
        46: .line 181
            goto 48
        47: .line 182
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* buf */
            invokevirtual java.nio.ByteBuffer.array:()[B
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.clr:[B
        48: .line 184
      StackMap locals:
      StackMap stack:
            return
        49: .line 187
      StackMap locals:
      StackMap stack:
            aload 3 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfFigures:I
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
        50: .line 188
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        51: goto 55
        52: .line 189
      StackMap locals: int
      StackMap stack:
            aload 3 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figures:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Figure;
            iload 4 /* i */
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Figure.getFiguresAttribute:()B
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
        53: .line 190
            aload 3 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figures:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Figure;
            iload 4 /* i */
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Figure.getPointOffset:()I
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
        54: .line 188
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        55: iload 4 /* i */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfFigures:I
            if_icmplt 52
        end local 4 // int i
        56: .line 193
            aload 3 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfShapes:I
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
        57: .line 194
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        58: goto 63
        59: .line 195
      StackMap locals:
      StackMap stack:
            aload 3 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            iload 4 /* i */
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getParentOffset:()I
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
        60: .line 196
            aload 3 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            iload 4 /* i */
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getFigureOffset:()I
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
        61: .line 197
            aload 3 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            iload 4 /* i */
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getOpenGISType:()B
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
        62: .line 194
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        63: iload 4 /* i */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfShapes:I
            if_icmplt 59
        end local 4 // int i
        64: .line 200
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.version:B
            iconst_2
            if_icmpne 71
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.segments:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Segment;
            ifnull 71
        65: .line 201
            aload 3 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfSegments:I
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
        66: .line 202
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        67: goto 70
        68: .line 203
      StackMap locals:
      StackMap stack:
            aload 3 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.segments:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Segment;
            iload 4 /* i */
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment.getSegmentType:()B
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
        69: .line 202
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        70: iload 4 /* i */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfSegments:I
            if_icmplt 68
        end local 4 // int i
        71: .line 207
      StackMap locals:
      StackMap stack:
            iload 1 /* excludeZMFromCLR */
            ifeq 74
        72: .line 208
            aload 0 /* this */
            aload 3 /* buf */
            invokevirtual java.nio.ByteBuffer.array:()[B
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.clrNoZM:[B
        73: .line 209
            goto 75
        74: .line 210
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* buf */
            invokevirtual java.nio.ByteBuffer.array:()[B
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.clr:[B
        75: .line 212
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.nio.ByteBuffer buf
        end local 2 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype type
        end local 1 // boolean excludeZMFromCLR
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot                         Name  Signature
            0   76     0                         this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            0   76     1             excludeZMFromCLR  Z
            0   76     2                         type  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            1   76     3                          buf  Ljava/nio/ByteBuffer;
            7   12     4  serializationPropertiesNoZM  B
           18   23     4                            i  I
           25   30     4                            i  I
           33   37     4                            i  I
           39   43     4                            i  I
           51   56     4                            i  I
           58   64     4                            i  I
           67   71     4                            i  I
    MethodParameters:
                  Name  Flags
      excludeZMFromCLR  
      type              

  protected void serializeToWkb(com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype);
    descriptor: (Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
        start local 1 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype type
         0: .line 221
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.determineWkbCapacity:()I
            invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
            astore 2 /* buf */
        start local 2 // java.nio.ByteBuffer buf
         1: .line 238
            aload 2 /* buf */
            getstatic java.nio.ByteOrder.LITTLE_ENDIAN:Ljava/nio/ByteOrder;
            invokevirtual java.nio.ByteBuffer.order:(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer;
            pop
         2: .line 239
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.$SWITCH_TABLE$com$microsoft$sqlserver$jdbc$InternalSpatialDatatype:()[I
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.internalType:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.ordinal:()I
            iaload
            tableswitch { // 1 - 11
                    1: 3
                    2: 5
                    3: 7
                    4: 9
                    5: 11
                    6: 13
                    7: 15
                    8: 17
                    9: 19
                   10: 21
                   11: 23
              default: 25
          }
         3: .line 241
      StackMap locals: java.nio.ByteBuffer
      StackMap stack:
            aload 0 /* this */
            aload 2 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfPoints:I
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addPointToBuffer:(Ljava/nio/ByteBuffer;I)V
         4: .line 242
            goto 25
         5: .line 244
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfPoints:I
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addLineStringToBuffer:(Ljava/nio/ByteBuffer;I)V
         6: .line 245
            goto 25
         7: .line 247
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfFigures:I
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addPolygonToBuffer:(Ljava/nio/ByteBuffer;I)V
         8: .line 248
            goto 25
         9: .line 250
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfFigures:I
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addMultiPointToBuffer:(Ljava/nio/ByteBuffer;I)V
        10: .line 251
            goto 25
        11: .line 253
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfFigures:I
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addMultiLineStringToBuffer:(Ljava/nio/ByteBuffer;I)V
        12: .line 254
            goto 25
        13: .line 256
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfShapes:I
            iconst_1
            isub
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addMultiPolygonToBuffer:(Ljava/nio/ByteBuffer;I)V
        14: .line 257
            goto 25
        15: .line 259
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* buf */
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.calculateNumShapesInThisGeometryCollection:()I
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addGeometryCollectionToBuffer:(Ljava/nio/ByteBuffer;I)V
        16: .line 260
            goto 25
        17: .line 262
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfPoints:I
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addCircularStringToBuffer:(Ljava/nio/ByteBuffer;I)V
        18: .line 263
            goto 25
        19: .line 265
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* buf */
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.calculateNumCurvesInThisFigure:()I
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addCompoundCurveToBuffer:(Ljava/nio/ByteBuffer;I)V
        20: .line 266
            goto 25
        21: .line 268
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfFigures:I
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addCurvePolygonToBuffer:(Ljava/nio/ByteBuffer;I)V
        22: .line 269
            goto 25
        23: .line 271
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* buf */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addFullGlobeToBuffer:(Ljava/nio/ByteBuffer;)V
        24: .line 272
            goto 25
        25: .line 278
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* buf */
            invokevirtual java.nio.ByteBuffer.array:()[B
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.wkb:[B
        26: .line 279
            return
        end local 2 // java.nio.ByteBuffer buf
        end local 1 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype type
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   27     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            0   27     1  type  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            1   27     2   buf  Ljava/nio/ByteBuffer;
    MethodParameters:
      Name  Flags
      type  

  private void addPointToBuffer(java.nio.ByteBuffer, int);
    descriptor: (Ljava/nio/ByteBuffer;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
        start local 1 // java.nio.ByteBuffer buf
        start local 2 // int numberOfPoints
         0: .line 282
            aload 1 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.endian:B
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
         1: .line 284
            iload 2 /* numberOfPoints */
            ifne 5
         2: .line 285
            aload 1 /* buf */
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.MULTIPOINT:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeCode:()B
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         3: .line 286
            aload 1 /* buf */
            iload 2 /* numberOfPoints */
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         4: .line 287
            goto 8
         5: .line 288
      StackMap locals:
      StackMap stack:
            aload 1 /* buf */
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.POINT:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeCode:()B
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         6: .line 289
            aload 0 /* this */
            aload 1 /* buf */
            iload 2 /* numberOfPoints */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addCoordinateToBuffer:(Ljava/nio/ByteBuffer;I)V
         7: .line 290
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBFigureIndex:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBFigureIndex:I
         8: .line 292
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int numberOfPoints
        end local 1 // java.nio.ByteBuffer buf
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    9     0            this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            0    9     1             buf  Ljava/nio/ByteBuffer;
            0    9     2  numberOfPoints  I
    MethodParameters:
                Name  Flags
      buf             
      numberOfPoints  

  private void addLineStringToBuffer(java.nio.ByteBuffer, int);
    descriptor: (Ljava/nio/ByteBuffer;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
        start local 1 // java.nio.ByteBuffer buf
        start local 2 // int numberOfPoints
         0: .line 295
            aload 1 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.endian:B
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
         1: .line 296
            aload 1 /* buf */
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.LINESTRING:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeCode:()B
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         2: .line 297
            aload 1 /* buf */
            iload 2 /* numberOfPoints */
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         3: .line 298
            aload 0 /* this */
            aload 1 /* buf */
            iload 2 /* numberOfPoints */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addCoordinateToBuffer:(Ljava/nio/ByteBuffer;I)V
         4: .line 299
            iload 2 /* numberOfPoints */
            ifle 6
         5: .line 300
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBFigureIndex:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBFigureIndex:I
         6: .line 302
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int numberOfPoints
        end local 1 // java.nio.ByteBuffer buf
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    7     0            this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            0    7     1             buf  Ljava/nio/ByteBuffer;
            0    7     2  numberOfPoints  I
    MethodParameters:
                Name  Flags
      buf             
      numberOfPoints  

  private void addPolygonToBuffer(java.nio.ByteBuffer, int);
    descriptor: (Ljava/nio/ByteBuffer;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
        start local 1 // java.nio.ByteBuffer buf
        start local 2 // int numberOfFigures
         0: .line 305
            aload 1 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.endian:B
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
         1: .line 306
            aload 1 /* buf */
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.POLYGON:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeCode:()B
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         2: .line 307
            aload 1 /* buf */
            iload 2 /* numberOfFigures */
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         3: .line 308
            aload 0 /* this */
            aload 1 /* buf */
            iload 2 /* numberOfFigures */
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.POLYGON:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addStructureToBuffer:(Ljava/nio/ByteBuffer;ILcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;)V
         4: .line 309
            return
        end local 2 // int numberOfFigures
        end local 1 // java.nio.ByteBuffer buf
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    5     0             this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            0    5     1              buf  Ljava/nio/ByteBuffer;
            0    5     2  numberOfFigures  I
    MethodParameters:
                 Name  Flags
      buf              
      numberOfFigures  

  private void addMultiPointToBuffer(java.nio.ByteBuffer, int);
    descriptor: (Ljava/nio/ByteBuffer;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
        start local 1 // java.nio.ByteBuffer buf
        start local 2 // int numberOfFigures
         0: .line 312
            aload 1 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.endian:B
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
         1: .line 313
            aload 1 /* buf */
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.MULTIPOINT:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeCode:()B
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         2: .line 314
            aload 1 /* buf */
            iload 2 /* numberOfFigures */
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         3: .line 315
            aload 0 /* this */
            aload 1 /* buf */
            iload 2 /* numberOfFigures */
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.MULTIPOINT:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addStructureToBuffer:(Ljava/nio/ByteBuffer;ILcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;)V
         4: .line 316
            return
        end local 2 // int numberOfFigures
        end local 1 // java.nio.ByteBuffer buf
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    5     0             this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            0    5     1              buf  Ljava/nio/ByteBuffer;
            0    5     2  numberOfFigures  I
    MethodParameters:
                 Name  Flags
      buf              
      numberOfFigures  

  private void addMultiLineStringToBuffer(java.nio.ByteBuffer, int);
    descriptor: (Ljava/nio/ByteBuffer;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
        start local 1 // java.nio.ByteBuffer buf
        start local 2 // int numberOfFigures
         0: .line 319
            aload 1 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.endian:B
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
         1: .line 320
            aload 1 /* buf */
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.MULTILINESTRING:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeCode:()B
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         2: .line 321
            aload 1 /* buf */
            iload 2 /* numberOfFigures */
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         3: .line 322
            aload 0 /* this */
            aload 1 /* buf */
            iload 2 /* numberOfFigures */
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.MULTILINESTRING:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addStructureToBuffer:(Ljava/nio/ByteBuffer;ILcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;)V
         4: .line 323
            return
        end local 2 // int numberOfFigures
        end local 1 // java.nio.ByteBuffer buf
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    5     0             this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            0    5     1              buf  Ljava/nio/ByteBuffer;
            0    5     2  numberOfFigures  I
    MethodParameters:
                 Name  Flags
      buf              
      numberOfFigures  

  private void addMultiPolygonToBuffer(java.nio.ByteBuffer, int);
    descriptor: (Ljava/nio/ByteBuffer;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
        start local 1 // java.nio.ByteBuffer buf
        start local 2 // int numberOfShapes
         0: .line 326
            aload 1 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.endian:B
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
         1: .line 327
            aload 1 /* buf */
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.MULTIPOLYGON:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeCode:()B
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         2: .line 328
            aload 1 /* buf */
            iload 2 /* numberOfShapes */
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         3: .line 330
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
         4: .line 331
            aload 0 /* this */
            aload 1 /* buf */
            iload 2 /* numberOfShapes */
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.MULTIPOLYGON:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addStructureToBuffer:(Ljava/nio/ByteBuffer;ILcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;)V
         5: .line 332
            return
        end local 2 // int numberOfShapes
        end local 1 // java.nio.ByteBuffer buf
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    6     0            this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            0    6     1             buf  Ljava/nio/ByteBuffer;
            0    6     2  numberOfShapes  I
    MethodParameters:
                Name  Flags
      buf             
      numberOfShapes  

  private void addCircularStringToBuffer(java.nio.ByteBuffer, int);
    descriptor: (Ljava/nio/ByteBuffer;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
        start local 1 // java.nio.ByteBuffer buf
        start local 2 // int numberOfPoints
         0: .line 335
            aload 1 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.endian:B
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
         1: .line 336
            aload 1 /* buf */
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.CIRCULARSTRING:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeCode:()B
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         2: .line 337
            aload 1 /* buf */
            iload 2 /* numberOfPoints */
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         3: .line 338
            aload 0 /* this */
            aload 1 /* buf */
            iload 2 /* numberOfPoints */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addCoordinateToBuffer:(Ljava/nio/ByteBuffer;I)V
         4: .line 339
            iload 2 /* numberOfPoints */
            ifle 6
         5: .line 340
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBFigureIndex:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBFigureIndex:I
         6: .line 342
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int numberOfPoints
        end local 1 // java.nio.ByteBuffer buf
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    7     0            this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            0    7     1             buf  Ljava/nio/ByteBuffer;
            0    7     2  numberOfPoints  I
    MethodParameters:
                Name  Flags
      buf             
      numberOfPoints  

  private void addCompoundCurveToBuffer(java.nio.ByteBuffer, int);
    descriptor: (Ljava/nio/ByteBuffer;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
        start local 1 // java.nio.ByteBuffer buf
        start local 2 // int numberOfCurves
         0: .line 345
            aload 1 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.endian:B
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
         1: .line 346
            aload 1 /* buf */
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.COMPOUNDCURVE:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeCode:()B
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         2: .line 347
            aload 1 /* buf */
            iload 2 /* numberOfCurves */
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         3: .line 348
            aload 0 /* this */
            aload 1 /* buf */
            iload 2 /* numberOfCurves */
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.COMPOUNDCURVE:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addStructureToBuffer:(Ljava/nio/ByteBuffer;ILcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;)V
         4: .line 349
            iload 2 /* numberOfCurves */
            ifle 6
         5: .line 350
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBFigureIndex:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBFigureIndex:I
         6: .line 352
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int numberOfCurves
        end local 1 // java.nio.ByteBuffer buf
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    7     0            this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            0    7     1             buf  Ljava/nio/ByteBuffer;
            0    7     2  numberOfCurves  I
    MethodParameters:
                Name  Flags
      buf             
      numberOfCurves  

  private void addCurvePolygonToBuffer(java.nio.ByteBuffer, int);
    descriptor: (Ljava/nio/ByteBuffer;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
        start local 1 // java.nio.ByteBuffer buf
        start local 2 // int numberOfFigures
         0: .line 355
            aload 1 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.endian:B
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
         1: .line 356
            aload 1 /* buf */
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.CURVEPOLYGON:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeCode:()B
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         2: .line 357
            aload 1 /* buf */
            iload 2 /* numberOfFigures */
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         3: .line 358
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         4: goto 18
         5: .line 359
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figures:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Figure;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBFigureIndex:I
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Figure.getFiguresAttribute:()B
            tableswitch { // 1 - 3
                    1: 6
                    2: 8
                    3: 10
              default: 17
          }
         6: .line 361
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* buf */
            iconst_1
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.LINESTRING:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addStructureToBuffer:(Ljava/nio/ByteBuffer;ILcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;)V
         7: .line 362
            goto 17
         8: .line 364
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* buf */
            iconst_1
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.CIRCULARSTRING:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addStructureToBuffer:(Ljava/nio/ByteBuffer;ILcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;)V
         9: .line 365
            goto 17
        10: .line 367
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.calculateNumCurvesInThisFigure:()I
            istore 4 /* numCurvesInThisFigure */
        start local 4 // int numCurvesInThisFigure
        11: .line 368
            aload 1 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.endian:B
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
        12: .line 369
            aload 1 /* buf */
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.COMPOUNDCURVE:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeCode:()B
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
        13: .line 370
            aload 1 /* buf */
            iload 4 /* numCurvesInThisFigure */
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
        14: .line 371
            aload 0 /* this */
            aload 1 /* buf */
            iload 4 /* numCurvesInThisFigure */
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.COMPOUNDCURVE:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addStructureToBuffer:(Ljava/nio/ByteBuffer;ILcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;)V
        15: .line 372
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBFigureIndex:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBFigureIndex:I
        16: .line 373
            goto 17
        end local 4 // int numCurvesInThisFigure
        17: .line 358
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        18: iload 3 /* i */
            iload 2 /* numberOfFigures */
            if_icmplt 5
        end local 3 // int i
        19: .line 379
            return
        end local 2 // int numberOfFigures
        end local 1 // java.nio.ByteBuffer buf
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   20     0                   this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            0   20     1                    buf  Ljava/nio/ByteBuffer;
            0   20     2        numberOfFigures  I
            4   19     3                      i  I
           11   17     4  numCurvesInThisFigure  I
    MethodParameters:
                 Name  Flags
      buf              
      numberOfFigures  

  private void addGeometryCollectionToBuffer(java.nio.ByteBuffer, int);
    descriptor: (Ljava/nio/ByteBuffer;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
        start local 1 // java.nio.ByteBuffer buf
        start local 2 // int numberOfRemainingGeometries
         0: .line 382
            aload 1 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.endian:B
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
         1: .line 383
            aload 1 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.internalType:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeCode:()B
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         2: .line 384
            aload 1 /* buf */
            iload 2 /* numberOfRemainingGeometries */
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         3: .line 386
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
         4: .line 387
            goto 65
         5: .line 388
      StackMap locals:
      StackMap stack:
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.$SWITCH_TABLE$com$microsoft$sqlserver$jdbc$InternalSpatialDatatype:()[I
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getOpenGISType:()B
            invokestatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.valueOf:(B)Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.ordinal:()I
            iaload
            tableswitch { // 1 - 10
                    1: 6
                    2: 12
                    3: 18
                    4: 24
                    5: 30
                    6: 36
                    7: 41
                    8: 46
                    9: 52
                   10: 58
              default: 64
          }
         6: .line 390
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getFigureOffset:()I
            iconst_m1
            if_icmpne 9
         7: .line 391
            aload 0 /* this */
            aload 1 /* buf */
            iconst_0
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addPointToBuffer:(Ljava/nio/ByteBuffer;I)V
         8: .line 392
            goto 10
         9: .line 393
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* buf */
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.calculateNumPointsInThisFigure:()I
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addPointToBuffer:(Ljava/nio/ByteBuffer;I)V
        10: .line 395
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
        11: .line 396
            goto 64
        12: .line 398
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getFigureOffset:()I
            iconst_m1
            if_icmpne 15
        13: .line 399
            aload 0 /* this */
            aload 1 /* buf */
            iconst_0
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addLineStringToBuffer:(Ljava/nio/ByteBuffer;I)V
        14: .line 400
            goto 16
        15: .line 401
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* buf */
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.calculateNumPointsInThisFigure:()I
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addLineStringToBuffer:(Ljava/nio/ByteBuffer;I)V
        16: .line 403
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
        17: .line 404
            goto 64
        18: .line 406
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getFigureOffset:()I
            iconst_m1
            if_icmpne 21
        19: .line 407
            aload 0 /* this */
            aload 1 /* buf */
            iconst_0
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addPolygonToBuffer:(Ljava/nio/ByteBuffer;I)V
        20: .line 408
            goto 22
        21: .line 409
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* buf */
            aload 0 /* this */
            iconst_0
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.calculateNumFiguresInThisShape:(Z)I
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addPolygonToBuffer:(Ljava/nio/ByteBuffer;I)V
        22: .line 411
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
        23: .line 412
            goto 64
        24: .line 414
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getFigureOffset:()I
            iconst_m1
            if_icmpne 27
        25: .line 415
            aload 0 /* this */
            aload 1 /* buf */
            iconst_0
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addMultiPointToBuffer:(Ljava/nio/ByteBuffer;I)V
        26: .line 416
            goto 28
        27: .line 417
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* buf */
            aload 0 /* this */
            iconst_1
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.calculateNumFiguresInThisShape:(Z)I
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addMultiPointToBuffer:(Ljava/nio/ByteBuffer;I)V
        28: .line 419
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
        29: .line 420
            goto 64
        30: .line 422
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getFigureOffset:()I
            iconst_m1
            if_icmpne 33
        31: .line 423
            aload 0 /* this */
            aload 1 /* buf */
            iconst_0
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addMultiLineStringToBuffer:(Ljava/nio/ByteBuffer;I)V
        32: .line 424
            goto 34
        33: .line 425
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* buf */
            aload 0 /* this */
            iconst_1
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.calculateNumFiguresInThisShape:(Z)I
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addMultiLineStringToBuffer:(Ljava/nio/ByteBuffer;I)V
        34: .line 427
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
        35: .line 428
            goto 64
        36: .line 434
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getFigureOffset:()I
            iconst_m1
            if_icmpne 39
        37: .line 435
            aload 0 /* this */
            aload 1 /* buf */
            iconst_0
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addMultiPolygonToBuffer:(Ljava/nio/ByteBuffer;I)V
        38: .line 436
            goto 64
        39: .line 437
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* buf */
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.calculateNumShapesInThisMultiPolygon:()I
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addMultiPolygonToBuffer:(Ljava/nio/ByteBuffer;I)V
        40: .line 439
            goto 64
        41: .line 441
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getFigureOffset:()I
            iconst_m1
            if_icmpne 44
        42: .line 442
            aload 0 /* this */
            aload 1 /* buf */
            iconst_0
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addGeometryCollectionToBuffer:(Ljava/nio/ByteBuffer;I)V
        43: .line 443
            goto 64
        44: .line 444
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* buf */
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.calculateNumShapesInThisGeometryCollection:()I
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addGeometryCollectionToBuffer:(Ljava/nio/ByteBuffer;I)V
        45: .line 446
            goto 64
        46: .line 448
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getFigureOffset:()I
            iconst_m1
            if_icmpne 49
        47: .line 449
            aload 0 /* this */
            aload 1 /* buf */
            iconst_0
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addCircularStringToBuffer:(Ljava/nio/ByteBuffer;I)V
        48: .line 450
            goto 50
        49: .line 451
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* buf */
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.calculateNumPointsInThisFigure:()I
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addCircularStringToBuffer:(Ljava/nio/ByteBuffer;I)V
        50: .line 453
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
        51: .line 454
            goto 64
        52: .line 456
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getFigureOffset:()I
            iconst_m1
            if_icmpne 55
        53: .line 457
            aload 0 /* this */
            aload 1 /* buf */
            iconst_0
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addCompoundCurveToBuffer:(Ljava/nio/ByteBuffer;I)V
        54: .line 458
            goto 56
        55: .line 459
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* buf */
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.calculateNumCurvesInThisFigure:()I
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addCompoundCurveToBuffer:(Ljava/nio/ByteBuffer;I)V
        56: .line 461
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
        57: .line 462
            goto 64
        58: .line 464
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getFigureOffset:()I
            iconst_m1
            if_icmpne 61
        59: .line 465
            aload 0 /* this */
            aload 1 /* buf */
            iconst_0
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addCurvePolygonToBuffer:(Ljava/nio/ByteBuffer;I)V
        60: .line 466
            goto 62
        61: .line 467
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* buf */
            aload 0 /* this */
            iconst_0
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.calculateNumFiguresInThisShape:(Z)I
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addCurvePolygonToBuffer:(Ljava/nio/ByteBuffer;I)V
        62: .line 469
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
        63: .line 470
            goto 64
        64: .line 475
      StackMap locals:
      StackMap stack:
            iinc 2 /* numberOfRemainingGeometries */ -1
        65: .line 387
      StackMap locals:
      StackMap stack:
            iload 2 /* numberOfRemainingGeometries */
            ifgt 5
        66: .line 477
            return
        end local 2 // int numberOfRemainingGeometries
        end local 1 // java.nio.ByteBuffer buf
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot                         Name  Signature
            0   67     0                         this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            0   67     1                          buf  Ljava/nio/ByteBuffer;
            0   67     2  numberOfRemainingGeometries  I
    MethodParameters:
                             Name  Flags
      buf                          
      numberOfRemainingGeometries  

  private void addFullGlobeToBuffer(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
        start local 1 // java.nio.ByteBuffer buf
         0: .line 480
            aload 1 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.endian:B
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
         1: .line 481
            aload 1 /* buf */
            bipush 126
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         2: .line 482
            return
        end local 1 // java.nio.ByteBuffer buf
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            0    3     1   buf  Ljava/nio/ByteBuffer;
    MethodParameters:
      Name  Flags
      buf   

  private void addCoordinateToBuffer(java.nio.ByteBuffer, int);
    descriptor: (Ljava/nio/ByteBuffer;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
        start local 1 // java.nio.ByteBuffer buf
        start local 2 // int numPoint
         0: .line 485
            goto 5
         1: .line 486
      StackMap locals:
      StackMap stack:
            aload 1 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.xValues:[D
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBPointIndex:I
            daload
            invokevirtual java.nio.ByteBuffer.putDouble:(D)Ljava/nio/ByteBuffer;
            pop
         2: .line 487
            aload 1 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.yValues:[D
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBPointIndex:I
            daload
            invokevirtual java.nio.ByteBuffer.putDouble:(D)Ljava/nio/ByteBuffer;
            pop
         3: .line 488
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBPointIndex:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBPointIndex:I
         4: .line 489
            iinc 2 /* numPoint */ -1
         5: .line 485
      StackMap locals:
      StackMap stack:
            iload 2 /* numPoint */
            ifgt 1
         6: .line 491
            return
        end local 2 // int numPoint
        end local 1 // java.nio.ByteBuffer buf
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            0    7     1       buf  Ljava/nio/ByteBuffer;
            0    7     2  numPoint  I
    MethodParameters:
          Name  Flags
      buf       
      numPoint  

  private void addStructureToBuffer(java.nio.ByteBuffer, int, com.microsoft.sqlserver.jdbc.InternalSpatialDatatype);
    descriptor: (Ljava/nio/ByteBuffer;ILcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=8, args_size=4
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
        start local 1 // java.nio.ByteBuffer buf
        start local 2 // int remainingStructureCount
        start local 3 // com.microsoft.sqlserver.jdbc.InternalSpatialDatatype internalParentType
         0: .line 495
            iload 2 /* remainingStructureCount */
            istore 4 /* originalRemainingStructureCount */
        start local 4 // int originalRemainingStructureCount
         1: .line 496
            goto 73
         2: .line 497
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.calculateNumPointsInThisFigure:()I
            istore 5 /* numPointsInThisFigure */
        start local 5 // int numPointsInThisFigure
         3: .line 498
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.$SWITCH_TABLE$com$microsoft$sqlserver$jdbc$InternalSpatialDatatype:()[I
            aload 3 /* internalParentType */
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.ordinal:()I
            iaload
            tableswitch { // 2 - 9
                    2: 4
                    3: 10
                    4: 14
                    5: 20
                    6: 27
                    7: 72
                    8: 34
                    9: 40
              default: 72
          }
         4: .line 500
      StackMap locals: int
      StackMap stack:
            aload 1 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.endian:B
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
         5: .line 501
            aload 1 /* buf */
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.LINESTRING:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeCode:()B
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         6: .line 502
            aload 1 /* buf */
            iload 5 /* numPointsInThisFigure */
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         7: .line 503
            aload 0 /* this */
            aload 1 /* buf */
            iload 5 /* numPointsInThisFigure */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addCoordinateToBuffer:(Ljava/nio/ByteBuffer;I)V
         8: .line 504
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBFigureIndex:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBFigureIndex:I
         9: .line 505
            goto 72
        10: .line 507
      StackMap locals:
      StackMap stack:
            aload 1 /* buf */
            iload 5 /* numPointsInThisFigure */
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
        11: .line 508
            aload 0 /* this */
            aload 1 /* buf */
            iload 5 /* numPointsInThisFigure */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addCoordinateToBuffer:(Ljava/nio/ByteBuffer;I)V
        12: .line 509
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBFigureIndex:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBFigureIndex:I
        13: .line 510
            goto 72
        14: .line 512
      StackMap locals:
      StackMap stack:
            aload 1 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.endian:B
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
        15: .line 513
            aload 1 /* buf */
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.POINT:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeCode:()B
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
        16: .line 514
            aload 0 /* this */
            aload 1 /* buf */
            iconst_1
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addCoordinateToBuffer:(Ljava/nio/ByteBuffer;I)V
        17: .line 515
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBFigureIndex:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBFigureIndex:I
        18: .line 516
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
        19: .line 517
            goto 72
        20: .line 519
      StackMap locals:
      StackMap stack:
            aload 1 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.endian:B
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
        21: .line 520
            aload 1 /* buf */
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.LINESTRING:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeCode:()B
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
        22: .line 521
            aload 1 /* buf */
            iload 5 /* numPointsInThisFigure */
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
        23: .line 522
            aload 0 /* this */
            aload 1 /* buf */
            iload 5 /* numPointsInThisFigure */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addCoordinateToBuffer:(Ljava/nio/ByteBuffer;I)V
        24: .line 523
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBFigureIndex:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBFigureIndex:I
        25: .line 524
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
        26: .line 525
            goto 72
        27: .line 527
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.calculateNumFiguresInThisShape:(Z)I
            istore 6 /* numFiguresInThisShape */
        start local 6 // int numFiguresInThisShape
        28: .line 528
            aload 1 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.endian:B
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
        29: .line 529
            aload 1 /* buf */
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.POLYGON:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeCode:()B
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
        30: .line 530
            aload 1 /* buf */
            iload 6 /* numFiguresInThisShape */
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
        31: .line 531
            aload 0 /* this */
            aload 1 /* buf */
            iload 6 /* numFiguresInThisShape */
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.POLYGON:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addStructureToBuffer:(Ljava/nio/ByteBuffer;ILcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;)V
        32: .line 532
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
        33: .line 533
            goto 72
        end local 6 // int numFiguresInThisShape
        34: .line 535
      StackMap locals:
      StackMap stack:
            aload 1 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.endian:B
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
        35: .line 536
            aload 1 /* buf */
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.CIRCULARSTRING:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeCode:()B
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
        36: .line 537
            aload 1 /* buf */
            iload 5 /* numPointsInThisFigure */
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
        37: .line 538
            aload 0 /* this */
            aload 1 /* buf */
            iload 5 /* numPointsInThisFigure */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addCoordinateToBuffer:(Ljava/nio/ByteBuffer;I)V
        38: .line 539
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBFigureIndex:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBFigureIndex:I
        39: .line 540
            goto 72
        40: .line 552
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.segments:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Segment;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBSegmentIndex:I
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment.getSegmentType:()B
            iconst_3
            if_icmpne 56
        41: .line 553
            iconst_3
            istore 7 /* numberOfPointsInStructure */
        start local 7 // int numberOfPointsInStructure
        42: .line 554
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBSegmentIndex:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBSegmentIndex:I
        43: .line 555
            goto 46
        44: .line 558
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype java.nio.ByteBuffer int com.microsoft.sqlserver.jdbc.InternalSpatialDatatype int int top int
      StackMap stack:
            iinc 7 /* numberOfPointsInStructure */ 2
        45: .line 559
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBSegmentIndex:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBSegmentIndex:I
        46: .line 555
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBSegmentIndex:I
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.segments:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Segment;
            arraylength
            if_icmpge 49
        47: .line 556
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.segments:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Segment;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBSegmentIndex:I
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment.getSegmentType:()B
            iconst_3
            if_icmpeq 49
        48: .line 557
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.segments:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Segment;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBSegmentIndex:I
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment.getSegmentType:()B
            iconst_2
            if_icmpne 44
        49: .line 561
      StackMap locals:
      StackMap stack:
            aload 1 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.endian:B
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
        50: .line 562
            aload 1 /* buf */
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.CIRCULARSTRING:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeCode:()B
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
        51: .line 563
            aload 1 /* buf */
            iload 7 /* numberOfPointsInStructure */
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
        52: .line 564
            iload 4 /* originalRemainingStructureCount */
            iload 2 /* remainingStructureCount */
            if_icmpeq 54
        53: .line 565
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBPointIndex:I
            iconst_1
            isub
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBPointIndex:I
        54: .line 567
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* buf */
            iload 7 /* numberOfPointsInStructure */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addCoordinateToBuffer:(Ljava/nio/ByteBuffer;I)V
        end local 7 // int numberOfPointsInStructure
        55: .line 568
            goto 72
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype java.nio.ByteBuffer int com.microsoft.sqlserver.jdbc.InternalSpatialDatatype int int
      StackMap stack:
        56: aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.segments:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Segment;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBSegmentIndex:I
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment.getSegmentType:()B
            iconst_2
            if_icmpne 72
        57: .line 569
            iconst_2
            istore 7 /* numberOfPointsInStructure */
        start local 7 // int numberOfPointsInStructure
        58: .line 570
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBSegmentIndex:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBSegmentIndex:I
        59: .line 571
            goto 62
        60: .line 574
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype java.nio.ByteBuffer int com.microsoft.sqlserver.jdbc.InternalSpatialDatatype int int top int
      StackMap stack:
            iinc 7 /* numberOfPointsInStructure */ 1
        61: .line 575
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBSegmentIndex:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBSegmentIndex:I
        62: .line 571
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBSegmentIndex:I
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.segments:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Segment;
            arraylength
            if_icmpge 65
        63: .line 572
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.segments:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Segment;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBSegmentIndex:I
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment.getSegmentType:()B
            iconst_3
            if_icmpeq 65
        64: .line 573
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.segments:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Segment;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBSegmentIndex:I
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment.getSegmentType:()B
            iconst_2
            if_icmpne 60
        65: .line 577
      StackMap locals:
      StackMap stack:
            aload 1 /* buf */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.endian:B
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
        66: .line 578
            aload 1 /* buf */
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.LINESTRING:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeCode:()B
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
        67: .line 579
            aload 1 /* buf */
            iload 7 /* numberOfPointsInStructure */
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
        68: .line 580
            iload 4 /* originalRemainingStructureCount */
            iload 2 /* remainingStructureCount */
            if_icmpeq 70
        69: .line 581
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBPointIndex:I
            iconst_1
            isub
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBPointIndex:I
        70: .line 583
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* buf */
            iload 7 /* numberOfPointsInStructure */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.addCoordinateToBuffer:(Ljava/nio/ByteBuffer;I)V
        end local 7 // int numberOfPointsInStructure
        71: .line 588
            goto 72
        72: .line 593
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype java.nio.ByteBuffer int com.microsoft.sqlserver.jdbc.InternalSpatialDatatype int int
      StackMap stack:
            iinc 2 /* remainingStructureCount */ -1
        end local 5 // int numPointsInThisFigure
        73: .line 496
      StackMap locals:
      StackMap stack:
            iload 2 /* remainingStructureCount */
            ifgt 2
        74: .line 595
            return
        end local 4 // int originalRemainingStructureCount
        end local 3 // com.microsoft.sqlserver.jdbc.InternalSpatialDatatype internalParentType
        end local 2 // int remainingStructureCount
        end local 1 // java.nio.ByteBuffer buf
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot                             Name  Signature
            0   75     0                             this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            0   75     1                              buf  Ljava/nio/ByteBuffer;
            0   75     2          remainingStructureCount  I
            0   75     3               internalParentType  Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            1   75     4  originalRemainingStructureCount  I
            3   73     5            numPointsInThisFigure  I
           28   34     6            numFiguresInThisShape  I
           42   55     7        numberOfPointsInStructure  I
           58   71     7        numberOfPointsInStructure  I
    MethodParameters:
                         Name  Flags
      buf                      
      remainingStructureCount  
      internalParentType       

  private int calculateNumPointsInThisFigure();
    descriptor: ()I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
         0: .line 598
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figures:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Figure;
            arraylength
            ifne 2
         1: .line 599
            iconst_0
            ireturn
         2: .line 614
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBFigureIndex:I
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figures:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Figure;
            arraylength
            iconst_1
            isub
            if_icmpne 7
         3: .line 615
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfPoints:I
         4: .line 616
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figures:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Figure;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBFigureIndex:I
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Figure.getPointOffset:()I
         5: .line 615
            isub
         6: .line 616
            goto 10
         7: .line 617
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figures:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Figure;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBFigureIndex:I
            iconst_1
            iadd
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Figure.getPointOffset:()I
         8: .line 618
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figures:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Figure;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBFigureIndex:I
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Figure.getPointOffset:()I
         9: .line 617
            isub
        10: .line 614
      StackMap locals:
      StackMap stack: int
            ireturn
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;

  private int calculateNumCurvesInThisFigure();
    descriptor: ()I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
         0: .line 622
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.calculateNumPointsInThisFigure:()I
            istore 1 /* numPointsInThisFigure */
        start local 1 // int numPointsInThisFigure
         1: .line 623
            iconst_0
            istore 2 /* numCurvesInThisFigure */
        start local 2 // int numCurvesInThisFigure
         2: .line 624
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBSegmentIndex:I
            istore 3 /* tempCurrentWKBSegmentIndex */
        start local 3 // int tempCurrentWKBSegmentIndex
         3: .line 625
            iconst_1
            istore 4 /* isFirstSegment */
        start local 4 // boolean isFirstSegment
         4: .line 626
            goto 24
         5: .line 627
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype int int int int
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.segments:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Segment;
            iload 3 /* tempCurrentWKBSegmentIndex */
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment.getSegmentType:()B
            tableswitch { // 0 - 3
                    0: 6
                    1: 8
                    2: 10
                    3: 16
              default: 22
          }
         6: .line 629
      StackMap locals:
      StackMap stack:
            iinc 1 /* numPointsInThisFigure */ -1
         7: .line 630
            goto 22
         8: .line 632
      StackMap locals:
      StackMap stack:
            iinc 1 /* numPointsInThisFigure */ -2
         9: .line 633
            goto 22
        10: .line 635
      StackMap locals:
      StackMap stack:
            iload 4 /* isFirstSegment */
            ifeq 13
        11: .line 636
            iinc 1 /* numPointsInThisFigure */ -2
        12: .line 637
            goto 14
        13: .line 638
      StackMap locals:
      StackMap stack:
            iinc 1 /* numPointsInThisFigure */ -1
        14: .line 640
      StackMap locals:
      StackMap stack:
            iinc 2 /* numCurvesInThisFigure */ 1
        15: .line 641
            goto 22
        16: .line 643
      StackMap locals:
      StackMap stack:
            iload 4 /* isFirstSegment */
            ifeq 19
        17: .line 644
            iinc 1 /* numPointsInThisFigure */ -3
        18: .line 645
            goto 20
        19: .line 646
      StackMap locals:
      StackMap stack:
            iinc 1 /* numPointsInThisFigure */ -2
        20: .line 648
      StackMap locals:
      StackMap stack:
            iinc 2 /* numCurvesInThisFigure */ 1
        21: .line 649
            goto 22
        22: .line 654
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* isFirstSegment */
        23: .line 655
            iinc 3 /* tempCurrentWKBSegmentIndex */ 1
        24: .line 626
      StackMap locals:
      StackMap stack:
            iload 1 /* numPointsInThisFigure */
            ifgt 5
        25: .line 657
            iload 2 /* numCurvesInThisFigure */
            ireturn
        end local 4 // boolean isFirstSegment
        end local 3 // int tempCurrentWKBSegmentIndex
        end local 2 // int numCurvesInThisFigure
        end local 1 // int numPointsInThisFigure
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot                        Name  Signature
            0   26     0                        this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            1   26     1       numPointsInThisFigure  I
            2   26     2       numCurvesInThisFigure  I
            3   26     3  tempCurrentWKBSegmentIndex  I
            4   26     4              isFirstSegment  Z

  private int calculateNumFiguresInThisShape(boolean);
    descriptor: (Z)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
        start local 1 // boolean containsInnerStructures
         0: .line 661
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            arraylength
            ifne 2
         1: .line 662
            iconst_0
            ireturn
         2: .line 665
      StackMap locals:
      StackMap stack:
            iload 1 /* containsInnerStructures */
            ifeq 19
         3: .line 666
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
            iconst_1
            iadd
            istore 2 /* nextNonInnerShapeIndex */
        start local 2 // int nextNonInnerShapeIndex
         4: .line 667
            goto 6
         5: .line 669
      StackMap locals: int
      StackMap stack:
            iinc 2 /* nextNonInnerShapeIndex */ 1
         6: .line 667
      StackMap locals:
      StackMap stack:
            iload 2 /* nextNonInnerShapeIndex */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            arraylength
            if_icmpge 8
         7: .line 668
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            iload 2 /* nextNonInnerShapeIndex */
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getParentOffset:()I
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
            if_icmpeq 5
         8: .line 672
      StackMap locals:
      StackMap stack:
            iload 2 /* nextNonInnerShapeIndex */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            arraylength
            if_icmpne 10
         9: .line 673
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfFigures:I
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getFigureOffset:()I
            isub
            ireturn
        10: .line 675
      StackMap locals:
      StackMap stack:
            iconst_m1
            istore 3 /* figureIndexEnd */
        start local 3 // int figureIndexEnd
        11: .line 676
            iload 2 /* nextNonInnerShapeIndex */
            istore 4 /* localCurrentShapeIndex */
        start local 4 // int localCurrentShapeIndex
        12: .line 677
            goto 15
        13: .line 678
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            iload 4 /* localCurrentShapeIndex */
            iconst_1
            iadd
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getFigureOffset:()I
            istore 3 /* figureIndexEnd */
        14: .line 679
            iinc 4 /* localCurrentShapeIndex */ 1
        15: .line 677
      StackMap locals:
      StackMap stack:
            iload 3 /* figureIndexEnd */
            iconst_m1
            if_icmpne 16
            iload 4 /* localCurrentShapeIndex */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            arraylength
            iconst_1
            isub
            if_icmplt 13
        16: .line 682
      StackMap locals:
      StackMap stack:
            iload 3 /* figureIndexEnd */
            iconst_m1
            if_icmpne 18
        17: .line 683
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfFigures:I
            istore 3 /* figureIndexEnd */
        18: .line 686
      StackMap locals:
      StackMap stack:
            iload 3 /* figureIndexEnd */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getFigureOffset:()I
            isub
            ireturn
        end local 4 // int localCurrentShapeIndex
        end local 3 // int figureIndexEnd
        end local 2 // int nextNonInnerShapeIndex
        19: .line 689
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            arraylength
            iconst_1
            isub
            if_icmpne 21
        20: .line 690
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfFigures:I
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getFigureOffset:()I
            isub
            ireturn
        21: .line 692
      StackMap locals:
      StackMap stack:
            iconst_m1
            istore 2 /* figureIndexEnd */
        start local 2 // int figureIndexEnd
        22: .line 693
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
            istore 3 /* localCurrentShapeIndex */
        start local 3 // int localCurrentShapeIndex
        23: .line 694
            goto 26
        24: .line 695
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            iload 3 /* localCurrentShapeIndex */
            iconst_1
            iadd
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getFigureOffset:()I
            istore 2 /* figureIndexEnd */
        25: .line 696
            iinc 3 /* localCurrentShapeIndex */ 1
        26: .line 694
      StackMap locals:
      StackMap stack:
            iload 2 /* figureIndexEnd */
            iconst_m1
            if_icmpne 27
            iload 3 /* localCurrentShapeIndex */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            arraylength
            iconst_1
            isub
            if_icmplt 24
        27: .line 699
      StackMap locals:
      StackMap stack:
            iload 2 /* figureIndexEnd */
            iconst_m1
            if_icmpne 29
        28: .line 700
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfFigures:I
            istore 2 /* figureIndexEnd */
        29: .line 703
      StackMap locals:
      StackMap stack:
            iload 2 /* figureIndexEnd */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getFigureOffset:()I
            isub
            ireturn
        end local 3 // int localCurrentShapeIndex
        end local 2 // int figureIndexEnd
        end local 1 // boolean containsInnerStructures
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   30     0                     this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            0   30     1  containsInnerStructures  Z
            4   19     2   nextNonInnerShapeIndex  I
           11   19     3           figureIndexEnd  I
           12   19     4   localCurrentShapeIndex  I
           22   30     2           figureIndexEnd  I
           23   30     3   localCurrentShapeIndex  I
    MethodParameters:
                         Name  Flags
      containsInnerStructures  

  private int calculateNumShapesInThisMultiPolygon();
    descriptor: ()I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
         0: .line 709
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            arraylength
            ifne 2
         1: .line 710
            iconst_0
            ireturn
         2: .line 713
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
            iconst_1
            iadd
            istore 1 /* nextNonInnerShapeIndex */
        start local 1 // int nextNonInnerShapeIndex
         3: .line 714
            goto 5
         4: .line 716
      StackMap locals: int
      StackMap stack:
            iinc 1 /* nextNonInnerShapeIndex */ 1
         5: .line 714
      StackMap locals:
      StackMap stack:
            iload 1 /* nextNonInnerShapeIndex */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            arraylength
            if_icmpge 7
         6: .line 715
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            iload 1 /* nextNonInnerShapeIndex */
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getParentOffset:()I
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
            if_icmpeq 4
         7: .line 719
      StackMap locals:
      StackMap stack:
            iload 1 /* nextNonInnerShapeIndex */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
            isub
            iconst_1
            isub
            ireturn
        end local 1 // int nextNonInnerShapeIndex
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    8     0                    this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            3    8     1  nextNonInnerShapeIndex  I

  private int calculateNumShapesInThisGeometryCollection();
    descriptor: ()I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
         0: .line 723
            iconst_0
            istore 1 /* numberOfGeometries */
        start local 1 // int numberOfGeometries
         1: .line 724
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 6
         3: .line 725
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            iload 2 /* i */
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getParentOffset:()I
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWKBShapeIndex:I
            if_icmpne 5
         4: .line 726
            iinc 1 /* numberOfGeometries */ 1
         5: .line 724
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 2 /* i */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            arraylength
            if_icmplt 3
        end local 2 // int i
         7: .line 729
            iload 1 /* numberOfGeometries */
            ireturn
        end local 1 // int numberOfGeometries
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    8     0                this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            1    8     1  numberOfGeometries  I
            2    7     2                   i  I

  protected void parseClr(com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype);
    descriptor: (Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
        start local 1 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype type
         0: .line 742
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.readInt:()I
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.srid:I
         1: .line 743
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.readByte:()B
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.version:B
         2: .line 744
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.readByte:()B
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.serializationProperties:B
         3: .line 746
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.interpretSerializationPropBytes:()V
         4: .line 747
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.readNumberOfPoints:()V
         5: .line 748
            aload 0 /* this */
            aload 1 /* type */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.readPoints:(Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;)V
         6: .line 750
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.hasZvalues:Z
            ifeq 8
         7: .line 751
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.readZvalues:()V
         8: .line 754
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.hasMvalues:Z
            ifeq 10
         9: .line 755
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.readMvalues:()V
        10: .line 758
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.isSinglePoint:Z
            ifne 15
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.isSingleLineSegment:Z
            ifne 15
        11: .line 759
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.readNumberOfFigures:()V
        12: .line 760
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.readFigures:()V
        13: .line 761
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.readNumberOfShapes:()V
        14: .line 762
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.readShapes:()V
        15: .line 765
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.determineInternalType:()V
        16: .line 767
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.buffer:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifeq 20
        17: .line 768
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.version:B
            iconst_2
            if_icmpne 20
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.internalType:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeCode:()B
            bipush 8
            if_icmpeq 20
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.internalType:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeCode:()B
            bipush 11
            if_icmpeq 20
        18: .line 769
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.readNumberOfSegments:()V
        19: .line 770
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.readSegments:()V
        20: .line 773
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype type
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   21     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            0   21     1  type  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException
    MethodParameters:
      Name  Flags
      type  

  protected void constructWKT(com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype, com.microsoft.sqlserver.jdbc.InternalSpatialDatatype, int, int, int, int);
    descriptor: (Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;IIII)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=8, args_size=7
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
        start local 1 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype sd
        start local 2 // com.microsoft.sqlserver.jdbc.InternalSpatialDatatype isd
        start local 3 // int pointIndexEnd
        start local 4 // int figureIndexEnd
        start local 5 // int segmentIndexEnd
        start local 6 // int shapeIndexEnd
         0: .line 795
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfPoints:I
            ifne 17
         1: .line 796
            aload 2 /* isd */
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeCode:()B
            bipush 11
            if_icmpne 7
         2: .line 797
            aload 1 /* sd */
            instanceof com.microsoft.sqlserver.jdbc.Geometry
            ifeq 5
         3: .line 798
            new java.text.MessageFormat
            dup
            ldc "R_illegalTypeForGeometry"
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.text.MessageFormat.<init>:(Ljava/lang/String;)V
            astore 7 /* form */
        start local 7 // java.text.MessageFormat form
         4: .line 799
            new com.microsoft.sqlserver.jdbc.SQLServerException
            dup
            aload 7 /* form */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "Fullglobe"
            aastore
            invokevirtual java.text.MessageFormat.format:(Ljava/lang/Object;)Ljava/lang/String;
            aconst_null
            iconst_0
            aconst_null
            invokespecial com.microsoft.sqlserver.jdbc.SQLServerException.<init>:(Ljava/lang/String;Ljava/lang/String;ILjava/lang/Throwable;)V
            athrow
        end local 7 // java.text.MessageFormat form
         5: .line 801
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "FULLGLOBE"
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.appendToWKTBuffers:(Ljava/lang/Object;)V
         6: .line 802
            return
         7: .line 806
      StackMap locals:
      StackMap stack:
            aload 2 /* isd */
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeCode:()B
            bipush 7
            if_icmpne 15
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentShapeIndex:I
            iload 6 /* shapeIndexEnd */
            iconst_1
            isub
            if_icmpeq 15
         8: .line 807
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentShapeIndex:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentShapeIndex:I
         9: .line 808
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            aload 2 /* isd */
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.appendToWKTBuffers:(Ljava/lang/Object;)V
        10: .line 809
            aload 0 /* this */
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentShapeIndex:I
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getOpenGISType:()B
            invokestatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.valueOf:(B)Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
        11: .line 810
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfPoints:I
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfFigures:I
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfSegments:I
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfShapes:I
        12: .line 809
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.constructWKT:(Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;IIII)V
        13: .line 811
            aload 0 /* this */
            ldc ")"
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.appendToWKTBuffers:(Ljava/lang/Object;)V
        14: .line 812
            return
        15: .line 814
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            aload 2 /* isd */
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " EMPTY"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.appendToWKTBuffers:(Ljava/lang/Object;)V
        16: .line 815
            return
        17: .line 816
      StackMap locals:
      StackMap stack:
            iload 4 /* figureIndexEnd */
            iconst_m1
            if_icmpne 20
        18: .line 818
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            aload 2 /* isd */
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " EMPTY"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.appendToWKTBuffers:(Ljava/lang/Object;)V
        19: .line 819
            return
        20: .line 822
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* isd */
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeName:()Ljava/lang/String;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.appendToWKTBuffers:(Ljava/lang/Object;)V
        21: .line 823
            aload 0 /* this */
            ldc "("
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.appendToWKTBuffers:(Ljava/lang/Object;)V
        22: .line 825
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.$SWITCH_TABLE$com$microsoft$sqlserver$jdbc$InternalSpatialDatatype:()[I
            aload 2 /* isd */
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.ordinal:()I
            iaload
            tableswitch { // 1 - 10
                    1: 23
                    2: 25
                    3: 27
                    4: 29
                    5: 29
                    6: 33
                    7: 35
                    8: 25
                    9: 31
                   10: 37
              default: 39
          }
        23: .line 827
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentPointIndex:I
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.constructPointWKT:(I)V
        24: .line 828
            goto 40
        25: .line 831
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentPointIndex:I
            iload 3 /* pointIndexEnd */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.constructLineWKT:(II)V
        26: .line 832
            goto 40
        27: .line 834
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentFigureIndex:I
            iload 4 /* figureIndexEnd */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.constructShapeWKT:(II)V
        28: .line 835
            goto 40
        29: .line 838
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentShapeIndex:I
            iload 6 /* shapeIndexEnd */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.constructMultiShapeWKT:(II)V
        30: .line 839
            goto 40
        31: .line 841
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentSegmentIndex:I
            iload 5 /* segmentIndexEnd */
            iload 3 /* pointIndexEnd */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.constructCompoundcurveWKT:(III)V
        32: .line 842
            goto 40
        33: .line 844
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentShapeIndex:I
            iload 6 /* shapeIndexEnd */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.constructMultipolygonWKT:(II)V
        34: .line 845
            goto 40
        35: .line 847
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 6 /* shapeIndexEnd */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.constructGeometryCollectionWKT:(I)V
        36: .line 848
            goto 40
        37: .line 850
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentFigureIndex:I
            iload 4 /* figureIndexEnd */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentSegmentIndex:I
            iload 5 /* segmentIndexEnd */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.constructCurvepolygonWKT:(IIII)V
        38: .line 851
            goto 40
        39: .line 853
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.throwIllegalWKTPosition:()V
        40: .line 856
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc ")"
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.appendToWKTBuffers:(Ljava/lang/Object;)V
        41: .line 857
            return
        end local 6 // int shapeIndexEnd
        end local 5 // int segmentIndexEnd
        end local 4 // int figureIndexEnd
        end local 3 // int pointIndexEnd
        end local 2 // com.microsoft.sqlserver.jdbc.InternalSpatialDatatype isd
        end local 1 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype sd
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   42     0             this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            0   42     1               sd  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            0   42     2              isd  Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            0   42     3    pointIndexEnd  I
            0   42     4   figureIndexEnd  I
            0   42     5  segmentIndexEnd  I
            0   42     6    shapeIndexEnd  I
            4    5     7             form  Ljava/text/MessageFormat;
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException
    MethodParameters:
                 Name  Flags
      sd               
      isd              
      pointIndexEnd    
      figureIndexEnd   
      segmentIndexEnd  
      shapeIndexEnd    

  protected void parseWKTForSerialization(com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype, int, int, boolean);
    descriptor: (Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;IIZ)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=10, args_size=5
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
        start local 1 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype sd
        start local 2 // int startPos
        start local 3 // int parentShapeIndex
        start local 4 // boolean isGeoCollection
         0: .line 880
            goto 78
         1: .line 881
      StackMap locals:
      StackMap stack:
            iload 2 /* startPos */
            ifeq 6
         2: .line 882
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.wkt:Ljava/lang/String;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            invokevirtual java.lang.String.charAt:(I)C
            bipush 41
            if_icmpne 4
         3: .line 883
            return
         4: .line 884
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.wkt:Ljava/lang/String;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            invokevirtual java.lang.String.charAt:(I)C
            bipush 44
            if_icmpne 6
         5: .line 885
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
         6: .line 889
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.getNextStringToken:()Ljava/lang/String;
            getstatic java.util.Locale.US:Ljava/util/Locale;
            invokevirtual java.lang.String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;
            astore 5 /* nextToken */
        start local 5 // java.lang.String nextToken
         7: .line 891
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.INVALID_TYPE:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            astore 7 /* isd */
        start local 7 // com.microsoft.sqlserver.jdbc.InternalSpatialDatatype isd
         8: .line 893
            aload 5 /* nextToken */
            invokestatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.valueOf:(Ljava/lang/String;)Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            astore 7 /* isd */
         9: .line 894
            goto 12
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype int int int java.lang.String top com.microsoft.sqlserver.jdbc.InternalSpatialDatatype
      StackMap stack: java.lang.Exception
        10: pop
        11: .line 895
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.throwIllegalWKTPosition:()V
        12: .line 897
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 8 /* fa */
        start local 8 // byte fa
        13: .line 899
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.version:B
            iconst_1
            if_icmpne 16
            ldc "CIRCULARSTRING"
            aload 5 /* nextToken */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 15
            ldc "COMPOUNDCURVE"
            aload 5 /* nextToken */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 15
        14: .line 900
            ldc "CURVEPOLYGON"
            aload 5 /* nextToken */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 16
        15: .line 901
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iconst_2
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.version:B
        16: .line 905
      StackMap locals:
      StackMap stack:
            ldc "FULLGLOBE"
            aload 5 /* nextToken */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 26
        17: .line 906
            aload 1 /* sd */
            instanceof com.microsoft.sqlserver.jdbc.Geometry
            ifeq 20
        18: .line 907
            new java.text.MessageFormat
            dup
            ldc "R_illegalTypeForGeometry"
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.text.MessageFormat.<init>:(Ljava/lang/String;)V
            astore 9 /* form */
        start local 9 // java.text.MessageFormat form
        19: .line 908
            new com.microsoft.sqlserver.jdbc.SQLServerException
            dup
            aload 9 /* form */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "Fullglobe"
            aastore
            invokevirtual java.text.MessageFormat.format:(Ljava/lang/Object;)Ljava/lang/String;
            aconst_null
            iconst_0
            aconst_null
            invokespecial com.microsoft.sqlserver.jdbc.SQLServerException.<init>:(Ljava/lang/String;Ljava/lang/String;ILjava/lang/Throwable;)V
            athrow
        end local 9 // java.text.MessageFormat form
        20: .line 911
      StackMap locals:
      StackMap stack:
            iload 2 /* startPos */
            ifeq 22
        21: .line 912
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.throwIllegalWKTPosition:()V
        22: .line 915
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapeList:Ljava/util/List;
            new com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape
            dup
            iload 3 /* parentShapeIndex */
            iconst_m1
            aload 7 /* isd */
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeCode:()B
            invokespecial com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.<init>:(IIB)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        23: .line 916
            aload 0 /* this */
            iconst_1
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.isLargerThanHemisphere:Z
        24: .line 917
            aload 0 /* this */
            iconst_2
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.version:B
        25: .line 918
            goto 79
        26: .line 922
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 3 /* parentShapeIndex */
            aload 7 /* isd */
            iconst_0
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.checkEmptyKeyword:(ILcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;Z)Z
            ifeq 28
        27: .line 923
            goto 78
        28: .line 926
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.readOpenBracket:()V
        29: .line 928
            aload 5 /* nextToken */
            dup
            astore 9
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 10
          -1808689296: 30
          -1799610005: 31
          -1628453407: 32
          -1060920828: 33
           -124834672: 34
             76307824: 35
            320463130: 36
            409814750: 37
           1214461189: 38
           1750255607: 39
              default: 76
          }
      StackMap locals: java.lang.String
      StackMap stack:
        30: aload 9
            ldc "CIRCULARSTRING"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 48
            goto 76
      StackMap locals:
      StackMap stack:
        31: aload 9
            ldc "CURVEPOLYGON"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 69
            goto 76
      StackMap locals:
      StackMap stack:
        32: aload 9
            ldc "MULTIPOLYGON"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 61
            goto 76
      StackMap locals:
      StackMap stack:
        33: aload 9
            ldc "COMPOUNDCURVE"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 65
            goto 76
      StackMap locals:
      StackMap stack:
        34: aload 9
            ldc "GEOMETRYCOLLECTION"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 72
            goto 76
      StackMap locals:
      StackMap stack:
        35: aload 9
            ldc "POINT"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 40
            goto 76
      StackMap locals:
      StackMap stack:
        36: aload 9
            ldc "POLYGON"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 57
            goto 76
      StackMap locals:
      StackMap stack:
        37: aload 9
            ldc "MULTILINESTRING"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 57
            goto 76
      StackMap locals:
      StackMap stack:
        38: aload 9
            ldc "LINESTRING"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 48
            goto 76
      StackMap locals:
      StackMap stack:
        39: aload 9
            ldc "MULTIPOINT"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 57
            goto 76
        40: .line 930
      StackMap locals:
      StackMap stack:
            iload 2 /* startPos */
            ifne 43
            ldc "POINT"
            aload 5 /* nextToken */
            invokevirtual java.lang.String.toUpperCase:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 43
        41: .line 931
            aload 0 /* this */
            iconst_1
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.isSinglePoint:Z
        42: .line 932
            aload 0 /* this */
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.POINT:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.internalType:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
        43: .line 935
      StackMap locals:
      StackMap stack:
            iload 4 /* isGeoCollection */
            ifeq 46
        44: .line 936
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapeList:Ljava/util/List;
            new com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape
            dup
            iload 3 /* parentShapeIndex */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figureList:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            aload 7 /* isd */
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeCode:()B
            invokespecial com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.<init>:(IIB)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        45: .line 937
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figureList:Ljava/util/List;
            new com.microsoft.sqlserver.jdbc.spatialdatatypes.Figure
            dup
            iconst_1
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.pointList:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            invokespecial com.microsoft.sqlserver.jdbc.spatialdatatypes.Figure.<init>:(BI)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        46: .line 940
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.readPointWkt:()V
        47: .line 941
            goto 77
        48: .line 944
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapeList:Ljava/util/List;
            new com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape
            dup
            iload 3 /* parentShapeIndex */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figureList:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            aload 7 /* isd */
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeCode:()B
            invokespecial com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.<init>:(IIB)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        49: .line 945
            aload 7 /* isd */
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeCode:()B
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.LINESTRING:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeCode:()B
            if_icmpne 50
            iconst_1
            goto 51
        50: .line 946
      StackMap locals:
      StackMap stack:
            iconst_2
        51: .line 945
      StackMap locals:
      StackMap stack: int
            istore 8 /* fa */
        52: .line 947
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figureList:Ljava/util/List;
            new com.microsoft.sqlserver.jdbc.spatialdatatypes.Figure
            dup
            iload 8 /* fa */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.pointList:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            invokespecial com.microsoft.sqlserver.jdbc.spatialdatatypes.Figure.<init>:(BI)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        53: .line 949
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.readLineWkt:()V
        54: .line 951
            iload 2 /* startPos */
            ifne 77
            ldc "LINESTRING"
            aload 5 /* nextToken */
            invokevirtual java.lang.String.toUpperCase:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 77
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.pointList:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            iconst_2
            if_icmpne 77
        55: .line 952
            aload 0 /* this */
            iconst_1
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.isSingleLineSegment:Z
        56: .line 954
            goto 77
        57: .line 958
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapeList:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            istore 6 /* thisShapeIndex */
        start local 6 // int thisShapeIndex
        58: .line 959
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapeList:Ljava/util/List;
            new com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape
            dup
            iload 3 /* parentShapeIndex */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figureList:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            aload 7 /* isd */
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeCode:()B
            invokespecial com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.<init>:(IIB)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        59: .line 961
            aload 0 /* this */
            iload 6 /* thisShapeIndex */
            aload 5 /* nextToken */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.readShapeWkt:(ILjava/lang/String;)V
        60: .line 963
            goto 77
        end local 6 // int thisShapeIndex
        61: .line 965
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapeList:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            istore 6 /* thisShapeIndex */
        start local 6 // int thisShapeIndex
        62: .line 966
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapeList:Ljava/util/List;
            new com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape
            dup
            iload 3 /* parentShapeIndex */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figureList:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            aload 7 /* isd */
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeCode:()B
            invokespecial com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.<init>:(IIB)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        63: .line 968
            aload 0 /* this */
            iload 6 /* thisShapeIndex */
            aload 5 /* nextToken */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.readMultiPolygonWkt:(ILjava/lang/String;)V
        64: .line 970
            goto 77
        end local 6 // int thisShapeIndex
        65: .line 972
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapeList:Ljava/util/List;
            new com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape
            dup
            iload 3 /* parentShapeIndex */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figureList:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            aload 7 /* isd */
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeCode:()B
            invokespecial com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.<init>:(IIB)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        66: .line 973
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figureList:Ljava/util/List;
            new com.microsoft.sqlserver.jdbc.spatialdatatypes.Figure
            dup
            iconst_3
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.pointList:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            invokespecial com.microsoft.sqlserver.jdbc.spatialdatatypes.Figure.<init>:(BI)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        67: .line 975
            aload 0 /* this */
            iconst_1
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.readCompoundCurveWkt:(Z)V
        68: .line 977
            goto 77
        69: .line 979
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapeList:Ljava/util/List;
            new com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape
            dup
            iload 3 /* parentShapeIndex */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figureList:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            aload 7 /* isd */
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeCode:()B
            invokespecial com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.<init>:(IIB)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        70: .line 981
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.readCurvePolygon:()V
        71: .line 983
            goto 77
        72: .line 985
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapeList:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            istore 6 /* thisShapeIndex */
        start local 6 // int thisShapeIndex
        73: .line 986
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapeList:Ljava/util/List;
            new com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape
            dup
            iload 3 /* parentShapeIndex */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figureList:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            aload 7 /* isd */
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeCode:()B
            invokespecial com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.<init>:(IIB)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        74: .line 988
            aload 0 /* this */
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            iload 6 /* thisShapeIndex */
            iconst_1
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.parseWKTForSerialization:(Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;IIZ)V
        75: .line 990
            goto 77
        end local 6 // int thisShapeIndex
        76: .line 992
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.throwIllegalWKTPosition:()V
        77: .line 994
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.readCloseBracket:()V
        end local 8 // byte fa
        end local 7 // com.microsoft.sqlserver.jdbc.InternalSpatialDatatype isd
        end local 5 // java.lang.String nextToken
        78: .line 880
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype int int int
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.hasMoreToken:()Z
            ifne 1
        79: .line 997
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.populateStructures:()V
        80: .line 998
            return
        end local 4 // boolean isGeoCollection
        end local 3 // int parentShapeIndex
        end local 2 // int startPos
        end local 1 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype sd
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   81     0              this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            0   81     1                sd  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            0   81     2          startPos  I
            0   81     3  parentShapeIndex  I
            0   81     4   isGeoCollection  Z
            7   78     5         nextToken  Ljava/lang/String;
           58   61     6    thisShapeIndex  I
           62   65     6    thisShapeIndex  I
           73   76     6    thisShapeIndex  I
            8   78     7               isd  Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
           13   78     8                fa  B
           19   20     9              form  Ljava/text/MessageFormat;
      Exception table:
        from    to  target  type
           8     9      10  Class java.lang.Exception
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException
    MethodParameters:
                  Name  Flags
      sd                
      startPos          
      parentShapeIndex  
      isGeoCollection   

  protected void constructPointWKT(int);
    descriptor: (I)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
        start local 1 // int pointIndex
         0: .line 1009
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.xValues:[D
            iload 1 /* pointIndex */
            daload
            dconst_1
            drem
            dconst_0
            dcmpl
            ifne 3
         1: .line 1010
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.xValues:[D
            iload 1 /* pointIndex */
            daload
            d2i
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.appendToWKTBuffers:(Ljava/lang/Object;)V
         2: .line 1011
            goto 4
         3: .line 1012
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.xValues:[D
            iload 1 /* pointIndex */
            daload
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.appendToWKTBuffers:(Ljava/lang/Object;)V
         4: .line 1014
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc " "
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.appendToWKTBuffers:(Ljava/lang/Object;)V
         5: .line 1016
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.yValues:[D
            iload 1 /* pointIndex */
            daload
            dconst_1
            drem
            dconst_0
            dcmpl
            ifne 8
         6: .line 1017
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.yValues:[D
            iload 1 /* pointIndex */
            daload
            d2i
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.appendToWKTBuffers:(Ljava/lang/Object;)V
         7: .line 1018
            goto 9
         8: .line 1019
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.yValues:[D
            iload 1 /* pointIndex */
            daload
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.appendToWKTBuffers:(Ljava/lang/Object;)V
         9: .line 1021
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc " "
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.appendToWKTBuffers:(Ljava/lang/Object;)V
        10: .line 1023
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.hasZvalues:Z
            ifeq 17
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.zValues:[D
            iload 1 /* pointIndex */
            daload
            invokestatic java.lang.Double.isNaN:(D)Z
            ifne 17
        11: .line 1024
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.zValues:[D
            iload 1 /* pointIndex */
            daload
            dconst_1
            drem
            dconst_0
            dcmpl
            ifne 14
        12: .line 1025
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.WKTsb:Ljava/lang/StringBuffer;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.zValues:[D
            iload 1 /* pointIndex */
            daload
            d2l
            invokevirtual java.lang.StringBuffer.append:(J)Ljava/lang/StringBuffer;
            pop
        13: .line 1026
            goto 15
        14: .line 1027
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.WKTsb:Ljava/lang/StringBuffer;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.zValues:[D
            iload 1 /* pointIndex */
            daload
            invokevirtual java.lang.StringBuffer.append:(D)Ljava/lang/StringBuffer;
            pop
        15: .line 1029
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.WKTsb:Ljava/lang/StringBuffer;
            ldc " "
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        16: .line 1030
            goto 19
      StackMap locals:
      StackMap stack:
        17: aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.hasMvalues:Z
            ifeq 19
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.mValues:[D
            iload 1 /* pointIndex */
            daload
            invokestatic java.lang.Double.isNaN:(D)Z
            ifne 19
        18: .line 1032
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.WKTsb:Ljava/lang/StringBuffer;
            ldc "NULL "
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        19: .line 1035
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.hasMvalues:Z
            ifeq 25
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.mValues:[D
            iload 1 /* pointIndex */
            daload
            invokestatic java.lang.Double.isNaN:(D)Z
            ifne 25
        20: .line 1036
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.mValues:[D
            iload 1 /* pointIndex */
            daload
            dconst_1
            drem
            dconst_0
            dcmpl
            ifne 23
        21: .line 1037
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.WKTsb:Ljava/lang/StringBuffer;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.mValues:[D
            iload 1 /* pointIndex */
            daload
            d2l
            invokevirtual java.lang.StringBuffer.append:(J)Ljava/lang/StringBuffer;
            pop
        22: .line 1038
            goto 24
        23: .line 1039
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.WKTsb:Ljava/lang/StringBuffer;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.mValues:[D
            iload 1 /* pointIndex */
            daload
            invokevirtual java.lang.StringBuffer.append:(D)Ljava/lang/StringBuffer;
            pop
        24: .line 1041
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.WKTsb:Ljava/lang/StringBuffer;
            ldc " "
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        25: .line 1044
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentPointIndex:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentPointIndex:I
        26: .line 1046
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.WKTsb:Ljava/lang/StringBuffer;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.WKTsb:Ljava/lang/StringBuffer;
            invokevirtual java.lang.StringBuffer.length:()I
            iconst_1
            isub
            invokevirtual java.lang.StringBuffer.setLength:(I)V
        27: .line 1047
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.WKTsbNoZM:Ljava/lang/StringBuffer;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.WKTsbNoZM:Ljava/lang/StringBuffer;
            invokevirtual java.lang.StringBuffer.length:()I
            iconst_1
            isub
            invokevirtual java.lang.StringBuffer.setLength:(I)V
        28: .line 1048
            return
        end local 1 // int pointIndex
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   29     0        this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            0   29     1  pointIndex  I
    MethodParameters:
            Name  Flags
      pointIndex  

  protected void constructLineWKT(int, int);
    descriptor: (II)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
        start local 1 // int pointStartIndex
        start local 2 // int pointEndIndex
         0: .line 1059
            iload 1 /* pointStartIndex */
            istore 3 /* i */
        start local 3 // int i
         1: goto 6
         2: .line 1060
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iload 3 /* i */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.constructPointWKT:(I)V
         3: .line 1063
            iload 3 /* i */
            iload 2 /* pointEndIndex */
            iconst_1
            isub
            if_icmpeq 5
         4: .line 1064
            aload 0 /* this */
            ldc ", "
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.appendToWKTBuffers:(Ljava/lang/Object;)V
         5: .line 1059
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 3 /* i */
            iload 2 /* pointEndIndex */
            if_icmplt 2
        end local 3 // int i
         7: .line 1067
            return
        end local 2 // int pointEndIndex
        end local 1 // int pointStartIndex
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    8     0             this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            0    8     1  pointStartIndex  I
            0    8     2    pointEndIndex  I
            1    7     3                i  I
    MethodParameters:
                 Name  Flags
      pointStartIndex  
      pointEndIndex    

  protected void constructShapeWKT(int, int);
    descriptor: (II)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
        start local 1 // int figureStartIndex
        start local 2 // int figureEndIndex
         0: .line 1078
            iload 1 /* figureStartIndex */
            istore 3 /* i */
        start local 3 // int i
         1: goto 12
         2: .line 1079
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            ldc "("
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.appendToWKTBuffers:(Ljava/lang/Object;)V
         3: .line 1080
            iload 3 /* i */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfFigures:I
            iconst_1
            isub
            if_icmpeq 6
         4: .line 1081
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figures:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Figure;
            iload 3 /* i */
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Figure.getPointOffset:()I
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figures:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Figure;
            iload 3 /* i */
            iconst_1
            iadd
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Figure.getPointOffset:()I
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.constructLineWKT:(II)V
         5: .line 1082
            goto 7
         6: .line 1083
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figures:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Figure;
            iload 3 /* i */
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Figure.getPointOffset:()I
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfPoints:I
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.constructLineWKT:(II)V
         7: .line 1086
      StackMap locals:
      StackMap stack:
            iload 3 /* i */
            iload 2 /* figureEndIndex */
            iconst_1
            isub
            if_icmpeq 10
         8: .line 1087
            aload 0 /* this */
            ldc "), "
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.appendToWKTBuffers:(Ljava/lang/Object;)V
         9: .line 1088
            goto 11
        10: .line 1089
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc ")"
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.appendToWKTBuffers:(Ljava/lang/Object;)V
        11: .line 1078
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: iload 3 /* i */
            iload 2 /* figureEndIndex */
            if_icmplt 2
        end local 3 // int i
        13: .line 1092
            return
        end local 2 // int figureEndIndex
        end local 1 // int figureStartIndex
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   14     0              this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            0   14     1  figureStartIndex  I
            0   14     2    figureEndIndex  I
            1   13     3                 i  I
    MethodParameters:
                  Name  Flags
      figureStartIndex  
      figureEndIndex    

  protected void constructMultiShapeWKT(int, int);
    descriptor: (II)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
        start local 1 // int shapeStartIndex
        start local 2 // int shapeEndIndex
         0: .line 1103
            iload 1 /* shapeStartIndex */
            iconst_1
            iadd
            istore 3 /* i */
        start local 3 // int i
         1: goto 9
         2: .line 1104
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            iload 3 /* i */
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getFigureOffset:()I
            iconst_m1
            if_icmpne 5
         3: .line 1105
            aload 0 /* this */
            ldc "EMPTY"
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.appendToWKTBuffers:(Ljava/lang/Object;)V
         4: .line 1106
            goto 6
         5: .line 1107
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            iload 3 /* i */
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getFigureOffset:()I
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            iload 3 /* i */
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getFigureOffset:()I
            iconst_1
            iadd
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.constructShapeWKT:(II)V
         6: .line 1109
      StackMap locals:
      StackMap stack:
            iload 3 /* i */
            iload 2 /* shapeEndIndex */
            iconst_1
            isub
            if_icmpeq 8
         7: .line 1110
            aload 0 /* this */
            ldc ", "
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.appendToWKTBuffers:(Ljava/lang/Object;)V
         8: .line 1103
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 3 /* i */
            iload 2 /* shapeEndIndex */
            if_icmplt 2
        end local 3 // int i
        10: .line 1113
            return
        end local 2 // int shapeEndIndex
        end local 1 // int shapeStartIndex
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   11     0             this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            0   11     1  shapeStartIndex  I
            0   11     2    shapeEndIndex  I
            1   10     3                i  I
    MethodParameters:
                 Name  Flags
      shapeStartIndex  
      shapeEndIndex    

  protected void constructCompoundcurveWKT(int, int, int);
    descriptor: (III)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
        start local 1 // int segmentStartIndex
        start local 2 // int segmentEndIndex
        start local 3 // int pointEndIndex
         0: .line 1126
            iload 1 /* segmentStartIndex */
            istore 4 /* i */
        start local 4 // int i
         1: goto 16
         2: .line 1127
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.segments:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Segment;
            iload 4 /* i */
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment.getSegmentType:()B
            istore 5 /* segment */
        start local 5 // byte segment
         3: .line 1128
            aload 0 /* this */
            iload 4 /* i */
            iload 5 /* segment */
            iload 3 /* pointEndIndex */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.constructSegmentWKT:(IBI)V
         4: .line 1130
            iload 4 /* i */
            iload 2 /* segmentEndIndex */
            iconst_1
            isub
            if_icmpne 7
         5: .line 1131
            aload 0 /* this */
            ldc ")"
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.appendToWKTBuffers:(Ljava/lang/Object;)V
         6: .line 1132
            goto 17
         7: .line 1135
      StackMap locals: int
      StackMap stack:
            iload 5 /* segment */
            tableswitch { // 0 - 3
                    0: 8
                    1: 11
                    2: 8
                    3: 11
              default: 14
          }
         8: .line 1138
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.segments:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Segment;
            iload 4 /* i */
            iconst_1
            iadd
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment.getSegmentType:()B
            ifeq 15
         9: .line 1139
            aload 0 /* this */
            ldc "), "
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.appendToWKTBuffers:(Ljava/lang/Object;)V
        10: .line 1141
            goto 15
        11: .line 1144
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.segments:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Segment;
            iload 4 /* i */
            iconst_1
            iadd
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment.getSegmentType:()B
            iconst_1
            if_icmpeq 15
        12: .line 1145
            aload 0 /* this */
            ldc "), "
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.appendToWKTBuffers:(Ljava/lang/Object;)V
        13: .line 1147
            goto 15
        14: .line 1149
      StackMap locals:
      StackMap stack:
            return
        end local 5 // byte segment
        15: .line 1126
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        16: iload 4 /* i */
            iload 2 /* segmentEndIndex */
            if_icmplt 2
        end local 4 // int i
        17: .line 1152
      StackMap locals:
      StackMap stack:
            return
        end local 3 // int pointEndIndex
        end local 2 // int segmentEndIndex
        end local 1 // int segmentStartIndex
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   18     0               this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            0   18     1  segmentStartIndex  I
            0   18     2    segmentEndIndex  I
            0   18     3      pointEndIndex  I
            1   17     4                  i  I
            3   15     5            segment  B
    MethodParameters:
                   Name  Flags
      segmentStartIndex  
      segmentEndIndex    
      pointEndIndex      

  protected void constructMultipolygonWKT(int, int);
    descriptor: (II)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=7, args_size=3
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
        start local 1 // int shapeStartIndex
        start local 2 // int shapeEndIndex
         0: .line 1166
            iload 1 /* shapeStartIndex */
            iconst_1
            iadd
            istore 5 /* i */
        start local 5 // int i
         1: goto 38
         2: .line 1167
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype int int top top int
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figures:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Figure;
            arraylength
            istore 4 /* figureEndIndex */
        start local 4 // int figureEndIndex
         3: .line 1168
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            iload 5 /* i */
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getFigureOffset:()I
            iconst_m1
            if_icmpne 8
         4: .line 1169
            aload 0 /* this */
            ldc "EMPTY"
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.appendToWKTBuffers:(Ljava/lang/Object;)V
         5: .line 1170
            iload 5 /* i */
            iload 2 /* shapeEndIndex */
            iconst_1
            isub
            if_icmpeq 37
         6: .line 1171
            aload 0 /* this */
            ldc ", "
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.appendToWKTBuffers:(Ljava/lang/Object;)V
         7: .line 1173
            goto 37
         8: .line 1175
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype int int top int int
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            iload 5 /* i */
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getFigureOffset:()I
            istore 3 /* figureStartIndex */
        start local 3 // int figureStartIndex
         9: .line 1176
            iload 5 /* i */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            arraylength
            iconst_1
            isub
            if_icmpne 12
        10: .line 1177
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figures:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Figure;
            arraylength
            istore 4 /* figureEndIndex */
        11: .line 1178
            goto 20
        12: .line 1180
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype int int int int int
      StackMap stack:
            iload 5 /* i */
            iconst_1
            iadd
            istore 6 /* tempCurrentShapeIndex */
        start local 6 // int tempCurrentShapeIndex
        13: .line 1183
            goto 19
        14: .line 1184
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            iload 6 /* tempCurrentShapeIndex */
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getFigureOffset:()I
            iconst_m1
            if_icmpne 17
        15: .line 1185
            iinc 6 /* tempCurrentShapeIndex */ 1
        16: .line 1186
            goto 19
        17: .line 1188
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            iload 6 /* tempCurrentShapeIndex */
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getFigureOffset:()I
            istore 4 /* figureEndIndex */
        18: .line 1189
            goto 20
        19: .line 1183
      StackMap locals:
      StackMap stack:
            iload 6 /* tempCurrentShapeIndex */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            arraylength
            if_icmplt 14
        end local 6 // int tempCurrentShapeIndex
        20: .line 1194
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "("
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.appendToWKTBuffers:(Ljava/lang/Object;)V
        21: .line 1196
            iload 3 /* figureStartIndex */
            istore 6 /* j */
        start local 6 // int j
        22: goto 33
        23: .line 1197
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            ldc "("
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.appendToWKTBuffers:(Ljava/lang/Object;)V
        24: .line 1199
            iload 6 /* j */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figures:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Figure;
            arraylength
            iconst_1
            isub
            if_icmpne 27
        25: .line 1200
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figures:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Figure;
            iload 6 /* j */
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Figure.getPointOffset:()I
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfPoints:I
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.constructLineWKT:(II)V
        26: .line 1201
            goto 28
        27: .line 1202
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figures:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Figure;
            iload 6 /* j */
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Figure.getPointOffset:()I
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figures:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Figure;
            iload 6 /* j */
            iconst_1
            iadd
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Figure.getPointOffset:()I
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.constructLineWKT:(II)V
        28: .line 1205
      StackMap locals:
      StackMap stack:
            iload 6 /* j */
            iload 4 /* figureEndIndex */
            iconst_1
            isub
            if_icmpne 31
        29: .line 1206
            aload 0 /* this */
            ldc ")"
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.appendToWKTBuffers:(Ljava/lang/Object;)V
        30: .line 1207
            goto 32
        31: .line 1208
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "), "
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.appendToWKTBuffers:(Ljava/lang/Object;)V
        32: .line 1196
      StackMap locals:
      StackMap stack:
            iinc 6 /* j */ 1
      StackMap locals:
      StackMap stack:
        33: iload 6 /* j */
            iload 4 /* figureEndIndex */
            if_icmplt 23
        end local 6 // int j
        34: .line 1212
            aload 0 /* this */
            ldc ")"
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.appendToWKTBuffers:(Ljava/lang/Object;)V
        35: .line 1214
            iload 5 /* i */
            iload 2 /* shapeEndIndex */
            iconst_1
            isub
            if_icmpeq 37
        36: .line 1215
            aload 0 /* this */
            ldc ", "
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.appendToWKTBuffers:(Ljava/lang/Object;)V
        end local 3 // int figureStartIndex
        37: .line 1166
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype int int top int int
      StackMap stack:
            iinc 5 /* i */ 1
        end local 4 // int figureEndIndex
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype int int top top int
      StackMap stack:
        38: iload 5 /* i */
            iload 2 /* shapeEndIndex */
            if_icmplt 2
        end local 5 // int i
        39: .line 1218
            return
        end local 2 // int shapeEndIndex
        end local 1 // int shapeStartIndex
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   40     0                   this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            0   40     1        shapeStartIndex  I
            0   40     2          shapeEndIndex  I
            9   37     3       figureStartIndex  I
            3   38     4         figureEndIndex  I
            1   39     5                      i  I
           13   20     6  tempCurrentShapeIndex  I
           22   34     6                      j  I
    MethodParameters:
                 Name  Flags
      shapeStartIndex  
      shapeEndIndex    

  protected void constructCurvepolygonWKT(int, int, int, int);
    descriptor: (IIII)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=8, args_size=5
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
        start local 1 // int figureStartIndex
        start local 2 // int figureEndIndex
        start local 3 // int segmentStartIndex
        start local 4 // int segmentEndIndex
         0: .line 1234
            iload 1 /* figureStartIndex */
            istore 5 /* i */
        start local 5 // int i
         1: goto 44
         2: .line 1235
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figures:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Figure;
            iload 5 /* i */
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Figure.getFiguresAttribute:()B
            tableswitch { // 1 - 3
                    1: 3
                    2: 10
                    3: 17
              default: 40
          }
         3: .line 1237
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "("
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.appendToWKTBuffers:(Ljava/lang/Object;)V
         4: .line 1239
            iload 5 /* i */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figures:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Figure;
            arraylength
            iconst_1
            isub
            if_icmpne 7
         5: .line 1240
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentPointIndex:I
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfPoints:I
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.constructLineWKT:(II)V
         6: .line 1241
            goto 8
         7: .line 1242
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentPointIndex:I
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figures:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Figure;
            iload 5 /* i */
            iconst_1
            iadd
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Figure.getPointOffset:()I
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.constructLineWKT:(II)V
         8: .line 1245
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc ")"
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.appendToWKTBuffers:(Ljava/lang/Object;)V
         9: .line 1246
            goto 41
        10: .line 1248
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "CIRCULARSTRING("
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.appendToWKTBuffers:(Ljava/lang/Object;)V
        11: .line 1250
            iload 5 /* i */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figures:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Figure;
            arraylength
            iconst_1
            isub
            if_icmpne 14
        12: .line 1251
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentPointIndex:I
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfPoints:I
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.constructLineWKT:(II)V
        13: .line 1252
            goto 15
        14: .line 1253
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentPointIndex:I
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figures:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Figure;
            iload 5 /* i */
            iconst_1
            iadd
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Figure.getPointOffset:()I
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.constructLineWKT:(II)V
        15: .line 1256
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc ")"
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.appendToWKTBuffers:(Ljava/lang/Object;)V
        16: .line 1258
            goto 41
        17: .line 1260
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "COMPOUNDCURVE("
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.appendToWKTBuffers:(Ljava/lang/Object;)V
        18: .line 1262
            iconst_0
            istore 6 /* pointEndIndex */
        start local 6 // int pointEndIndex
        19: .line 1264
            iload 5 /* i */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figures:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Figure;
            arraylength
            iconst_1
            isub
            if_icmpne 22
        20: .line 1265
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfPoints:I
            istore 6 /* pointEndIndex */
        21: .line 1266
            goto 38
        22: .line 1267
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figures:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Figure;
            iload 5 /* i */
            iconst_1
            iadd
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Figure.getPointOffset:()I
            istore 6 /* pointEndIndex */
        23: .line 1270
            goto 38
        24: .line 1271
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.segments:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Segment;
            iload 3 /* segmentStartIndex */
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment.getSegmentType:()B
            istore 7 /* segment */
        start local 7 // byte segment
        25: .line 1272
            aload 0 /* this */
            iload 3 /* segmentStartIndex */
            iload 7 /* segment */
            iload 6 /* pointEndIndex */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.constructSegmentWKT:(IBI)V
        26: .line 1274
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentPointIndex:I
            iload 6 /* pointEndIndex */
            if_icmplt 29
        27: .line 1275
            aload 0 /* this */
            ldc "))"
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.appendToWKTBuffers:(Ljava/lang/Object;)V
        28: .line 1276
            goto 37
        29: .line 1277
      StackMap locals: int
      StackMap stack:
            iload 7 /* segment */
            tableswitch { // 0 - 3
                    0: 30
                    1: 33
                    2: 30
                    3: 33
              default: 36
          }
        30: .line 1280
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.segments:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Segment;
            iload 3 /* segmentStartIndex */
            iconst_1
            iadd
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment.getSegmentType:()B
            ifeq 37
        31: .line 1281
            aload 0 /* this */
            ldc "), "
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.appendToWKTBuffers:(Ljava/lang/Object;)V
        32: .line 1283
            goto 37
        33: .line 1286
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.segments:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Segment;
            iload 3 /* segmentStartIndex */
            iconst_1
            iadd
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment.getSegmentType:()B
            iconst_1
            if_icmpeq 37
        34: .line 1287
            aload 0 /* this */
            ldc "), "
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.appendToWKTBuffers:(Ljava/lang/Object;)V
        35: .line 1289
            goto 37
        36: .line 1291
      StackMap locals:
      StackMap stack:
            return
        37: .line 1295
      StackMap locals:
      StackMap stack:
            iinc 3 /* segmentStartIndex */ 1
        end local 7 // byte segment
        38: .line 1270
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentPointIndex:I
            iload 6 /* pointEndIndex */
            if_icmplt 24
        39: .line 1298
            goto 41
        end local 6 // int pointEndIndex
        40: .line 1300
      StackMap locals:
      StackMap stack:
            return
        41: .line 1304
      StackMap locals:
      StackMap stack:
            iload 5 /* i */
            iload 2 /* figureEndIndex */
            iconst_1
            isub
            if_icmpeq 43
        42: .line 1305
            aload 0 /* this */
            ldc ", "
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.appendToWKTBuffers:(Ljava/lang/Object;)V
        43: .line 1234
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        44: iload 5 /* i */
            iload 2 /* figureEndIndex */
            if_icmplt 2
        end local 5 // int i
        45: .line 1308
            return
        end local 4 // int segmentEndIndex
        end local 3 // int segmentStartIndex
        end local 2 // int figureEndIndex
        end local 1 // int figureStartIndex
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   46     0               this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            0   46     1   figureStartIndex  I
            0   46     2     figureEndIndex  I
            0   46     3  segmentStartIndex  I
            0   46     4    segmentEndIndex  I
            1   45     5                  i  I
           19   40     6      pointEndIndex  I
           25   38     7            segment  B
    MethodParameters:
                   Name  Flags
      figureStartIndex   
      figureEndIndex     
      segmentStartIndex  
      segmentEndIndex    

  protected void constructSegmentWKT(int, byte, int);
    descriptor: (IBI)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
        start local 1 // int currentSegment
        start local 2 // byte segment
        start local 3 // int pointEndIndex
         0: .line 1325
            iload 2 /* segment */
            tableswitch { // 0 - 3
                    0: 1
                    1: 9
                    2: 17
                    3: 25
              default: 33
          }
         1: .line 1327
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc ", "
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.appendToWKTBuffers:(Ljava/lang/Object;)V
         2: .line 1328
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentPointIndex:I
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentPointIndex:I
            iconst_1
            iadd
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.constructLineWKT:(II)V
         3: .line 1330
            iload 1 /* currentSegment */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.segments:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Segment;
            arraylength
            iconst_1
            isub
            if_icmpne 5
         4: .line 1331
            goto 34
         5: .line 1332
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.segments:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Segment;
            iload 1 /* currentSegment */
            iconst_1
            iadd
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment.getSegmentType:()B
            ifeq 34
         6: .line 1334
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentPointIndex:I
            iconst_1
            isub
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentPointIndex:I
         7: .line 1335
            aload 0 /* this */
            iload 3 /* pointEndIndex */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.incrementPointNumStartIfPointNotReused:(I)V
         8: .line 1337
            goto 34
         9: .line 1340
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc ", "
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.appendToWKTBuffers:(Ljava/lang/Object;)V
        10: .line 1341
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentPointIndex:I
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentPointIndex:I
            iconst_2
            iadd
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.constructLineWKT:(II)V
        11: .line 1343
            iload 1 /* currentSegment */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.segments:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Segment;
            arraylength
            iconst_1
            isub
            if_icmpne 13
        12: .line 1344
            goto 34
        13: .line 1345
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.segments:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Segment;
            iload 1 /* currentSegment */
            iconst_1
            iadd
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment.getSegmentType:()B
            iconst_1
            if_icmpeq 34
        14: .line 1347
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentPointIndex:I
            iconst_1
            isub
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentPointIndex:I
        15: .line 1350
            aload 0 /* this */
            iload 3 /* pointEndIndex */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.incrementPointNumStartIfPointNotReused:(I)V
        16: .line 1353
            goto 34
        17: .line 1355
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "("
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.appendToWKTBuffers:(Ljava/lang/Object;)V
        18: .line 1356
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentPointIndex:I
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentPointIndex:I
            iconst_2
            iadd
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.constructLineWKT:(II)V
        19: .line 1358
            iload 1 /* currentSegment */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.segments:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Segment;
            arraylength
            iconst_1
            isub
            if_icmpne 21
        20: .line 1359
            goto 34
        21: .line 1360
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.segments:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Segment;
            iload 1 /* currentSegment */
            iconst_1
            iadd
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment.getSegmentType:()B
            ifeq 34
        22: .line 1362
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentPointIndex:I
            iconst_1
            isub
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentPointIndex:I
        23: .line 1365
            aload 0 /* this */
            iload 3 /* pointEndIndex */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.incrementPointNumStartIfPointNotReused:(I)V
        24: .line 1368
            goto 34
        25: .line 1370
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "CIRCULARSTRING("
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.appendToWKTBuffers:(Ljava/lang/Object;)V
        26: .line 1371
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentPointIndex:I
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentPointIndex:I
            iconst_3
            iadd
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.constructLineWKT:(II)V
        27: .line 1373
            iload 1 /* currentSegment */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.segments:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Segment;
            arraylength
            iconst_1
            isub
            if_icmpne 29
        28: .line 1374
            goto 34
        29: .line 1375
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.segments:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Segment;
            iload 1 /* currentSegment */
            iconst_1
            iadd
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment.getSegmentType:()B
            iconst_1
            if_icmpeq 34
        30: .line 1376
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentPointIndex:I
            iconst_1
            isub
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentPointIndex:I
        31: .line 1379
            aload 0 /* this */
            iload 3 /* pointEndIndex */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.incrementPointNumStartIfPointNotReused:(I)V
        32: .line 1382
            goto 34
        33: .line 1384
      StackMap locals:
      StackMap stack:
            return
        34: .line 1386
      StackMap locals:
      StackMap stack:
            return
        end local 3 // int pointEndIndex
        end local 2 // byte segment
        end local 1 // int currentSegment
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   35     0            this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            0   35     1  currentSegment  I
            0   35     2         segment  B
            0   35     3   pointEndIndex  I
    MethodParameters:
                Name  Flags
      currentSegment  
      segment         
      pointEndIndex   

  protected void constructGeometryCollectionWKT(int);
    descriptor: (I)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
        start local 1 // int shapeEndIndex
         0: .line 1397
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentShapeIndex:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentShapeIndex:I
         1: .line 1398
            aload 0 /* this */
            iload 1 /* shapeEndIndex */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.constructGeometryCollectionWKThelper:(I)V
         2: .line 1399
            return
        end local 1 // int shapeEndIndex
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            0    3     1  shapeEndIndex  I
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException
    MethodParameters:
               Name  Flags
      shapeEndIndex  

  protected void readPointWkt();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=11, locals=6, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
         0: .line 1409
            iconst_0
            istore 1 /* numOfCoordinates */
        start local 1 // int numOfCoordinates
         1: .line 1411
            iconst_4
            newarray 7
            astore 4 /* coords */
        start local 4 // double[] coords
         2: .line 1412
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         3: goto 6
         4: .line 1413
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype int top top double[] int
      StackMap stack:
            aload 4 /* coords */
            iload 5 /* i */
            ldc NaN
            dastore
         5: .line 1412
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 5 /* i */
            aload 4 /* coords */
            arraylength
            if_icmplt 4
        end local 5 // int i
         7: .line 1416
            goto 46
         8: .line 1417
      StackMap locals:
      StackMap stack:
            dconst_1
            dstore 2 /* sign */
        start local 2 // double sign
         9: .line 1418
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.wkt:Ljava/lang/String;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            invokevirtual java.lang.String.charAt:(I)C
            bipush 45
            if_icmpne 12
        10: .line 1419
            ldc -1.0
            dstore 2 /* sign */
        11: .line 1420
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
        12: .line 1423
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype int double double[]
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            istore 5 /* startPos */
        start local 5 // int startPos
        13: .line 1425
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.wkt:Ljava/lang/String;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            invokevirtual java.lang.String.charAt:(I)C
            bipush 41
            if_icmpne 16
        14: .line 1426
            goto 47
        15: .line 1432
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
        16: .line 1429
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.wkt:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            if_icmpge 19
        17: .line 1430
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.wkt:Ljava/lang/String;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic java.lang.Character.isDigit:(C)Z
            ifne 15
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.wkt:Ljava/lang/String;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            invokevirtual java.lang.String.charAt:(I)C
            bipush 46
            if_icmpeq 15
        18: .line 1431
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.wkt:Ljava/lang/String;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            invokevirtual java.lang.String.charAt:(I)C
            bipush 69
            if_icmpeq 15
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.wkt:Ljava/lang/String;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            invokevirtual java.lang.String.charAt:(I)C
            bipush 101
            if_icmpeq 15
        19: .line 1436
      StackMap locals:
      StackMap stack:
            aload 4 /* coords */
            iload 1 /* numOfCoordinates */
            dload 2 /* sign */
            new java.math.BigDecimal
            dup
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.wkt:Ljava/lang/String;
            iload 5 /* startPos */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokespecial java.math.BigDecimal.<init>:(Ljava/lang/String;)V
            invokevirtual java.math.BigDecimal.doubleValue:()D
            dmul
            dastore
        20: .line 1438
            iload 1 /* numOfCoordinates */
            iconst_2
            if_icmpne 23
        21: .line 1439
            aload 0 /* this */
            iconst_1
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.hasZvalues:Z
        22: .line 1440
            goto 33
      StackMap locals:
      StackMap stack:
        23: iload 1 /* numOfCoordinates */
            iconst_3
            if_icmpne 33
        24: .line 1441
            aload 0 /* this */
            iconst_1
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.hasMvalues:Z
        25: .line 1443
            goto 33
      StackMap locals:
      StackMap stack: java.lang.Exception
        26: pop
        27: .line 1446
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.wkt:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            iconst_3
            iadd
            if_icmple 32
        28: .line 1447
            ldc "null"
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.wkt:Ljava/lang/String;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            iconst_4
            iadd
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 32
        29: .line 1448
            aload 4 /* coords */
            iload 1 /* numOfCoordinates */
            ldc NaN
            dastore
        30: .line 1449
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            iconst_4
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
        31: .line 1450
            goto 33
        32: .line 1451
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.throwIllegalWKTPosition:()V
        33: .line 1455
      StackMap locals:
      StackMap stack:
            iinc 1 /* numOfCoordinates */ 1
        34: .line 1457
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.skipWhiteSpaces:()V
        35: .line 1461
            iload 1 /* numOfCoordinates */
            iconst_4
            if_icmpne 39
        36: .line 1462
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            iconst_1
            iadd
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.checkSQLLength:(I)Z
            ifeq 39
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.wkt:Ljava/lang/String;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            invokevirtual java.lang.String.charAt:(I)C
            bipush 44
            if_icmpeq 39
        37: .line 1463
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.wkt:Ljava/lang/String;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            invokevirtual java.lang.String.charAt:(I)C
            bipush 41
            if_icmpeq 39
        38: .line 1464
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.throwIllegalWKTPosition:()V
        39: .line 1468
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            iconst_1
            iadd
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.checkSQLLength:(I)Z
            ifeq 45
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.wkt:Ljava/lang/String;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            invokevirtual java.lang.String.charAt:(I)C
            bipush 44
            if_icmpne 45
        40: .line 1470
            iload 1 /* numOfCoordinates */
            iconst_1
            if_icmpne 42
        41: .line 1471
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.throwIllegalWKTPosition:()V
        42: .line 1473
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
        43: .line 1474
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.skipWhiteSpaces:()V
        44: .line 1475
            goto 47
        45: .line 1477
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.skipWhiteSpaces:()V
        end local 5 // int startPos
        end local 2 // double sign
        46: .line 1416
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype int top top double[]
      StackMap stack:
            iload 1 /* numOfCoordinates */
            iconst_4
            if_icmplt 8
        47: .line 1480
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.pointList:Ljava/util/List;
            new com.microsoft.sqlserver.jdbc.spatialdatatypes.Point
            dup
            aload 4 /* coords */
            iconst_0
            daload
            aload 4 /* coords */
            iconst_1
            daload
            aload 4 /* coords */
            iconst_2
            daload
            aload 4 /* coords */
            iconst_3
            daload
            invokespecial com.microsoft.sqlserver.jdbc.spatialdatatypes.Point.<init>:(DDDD)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        48: .line 1481
            return
        end local 4 // double[] coords
        end local 1 // int numOfCoordinates
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   49     0              this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            1   49     1  numOfCoordinates  I
            9   46     2              sign  D
            2   49     4            coords  [D
            3    7     5                 i  I
           13   46     5          startPos  I
      Exception table:
        from    to  target  type
          19    25      26  Class java.lang.Exception
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException

  protected void readLineWkt();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
         0: .line 1490
            goto 2
         1: .line 1491
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.readPointWkt:()V
         2: .line 1490
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.wkt:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            if_icmpge 3
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.wkt:Ljava/lang/String;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            invokevirtual java.lang.String.charAt:(I)C
            bipush 41
            if_icmpne 1
         3: .line 1493
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException

  protected void readShapeWkt(int, java.lang.String);
    descriptor: (ILjava/lang/String;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
        start local 1 // int parentShapeIndex
        start local 2 // java.lang.String nextToken
         0: .line 1506
            iconst_0
            istore 3 /* fa */
        start local 3 // byte fa
         1: .line 1507
            goto 37
         2: .line 1511
      StackMap locals: int
      StackMap stack:
            ldc "POLYGON"
            aload 2 /* nextToken */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 5
         3: .line 1512
            aload 0 /* this */
            iload 1 /* parentShapeIndex */
            aload 2 /* nextToken */
            invokestatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.valueOf:(Ljava/lang/String;)Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            iconst_1
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.checkEmptyKeyword:(ILcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;Z)Z
            ifeq 5
         4: .line 1513
            goto 37
         5: .line 1516
      StackMap locals:
      StackMap stack:
            ldc "MULTIPOINT"
            aload 2 /* nextToken */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 10
         6: .line 1517
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapeList:Ljava/util/List;
         7: .line 1518
            new com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape
            dup
            iload 1 /* parentShapeIndex */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figureList:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.POINT:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeCode:()B
            invokespecial com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.<init>:(IIB)V
         8: .line 1517
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         9: .line 1519
            goto 14
      StackMap locals:
      StackMap stack:
        10: ldc "MULTILINESTRING"
            aload 2 /* nextToken */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 14
        11: .line 1520
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapeList:Ljava/util/List;
            new com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape
            dup
            iload 1 /* parentShapeIndex */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figureList:Ljava/util/List;
            invokeinterface java.util.List.size:()I
        12: .line 1521
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.LINESTRING:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeCode:()B
            invokespecial com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.<init>:(IIB)V
        13: .line 1520
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        14: .line 1524
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.version:B
            iconst_1
            if_icmpne 22
        15: .line 1525
            ldc "MULTIPOINT"
            aload 2 /* nextToken */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 18
        16: .line 1526
            iconst_1
            istore 3 /* fa */
        17: .line 1527
            goto 20
      StackMap locals:
      StackMap stack:
        18: ldc "MULTILINESTRING"
            aload 2 /* nextToken */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 19
            ldc "POLYGON"
            aload 2 /* nextToken */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 20
        19: .line 1528
      StackMap locals:
      StackMap stack:
            iconst_2
            istore 3 /* fa */
        20: .line 1530
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.version_one_shape_indexes:Ljava/util/List;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figureList:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        21: .line 1531
            goto 26
      StackMap locals:
      StackMap stack:
        22: aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.version:B
            iconst_2
            if_icmpne 26
        23: .line 1532
            ldc "MULTIPOINT"
            aload 2 /* nextToken */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 25
            ldc "MULTILINESTRING"
            aload 2 /* nextToken */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 25
            ldc "POLYGON"
            aload 2 /* nextToken */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 25
        24: .line 1533
            ldc "MULTIPOLYGON"
            aload 2 /* nextToken */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 26
        25: .line 1534
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 3 /* fa */
        26: .line 1538
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figureList:Ljava/util/List;
            new com.microsoft.sqlserver.jdbc.spatialdatatypes.Figure
            dup
            iload 3 /* fa */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.pointList:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            invokespecial com.microsoft.sqlserver.jdbc.spatialdatatypes.Figure.<init>:(BI)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        27: .line 1539
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.readOpenBracket:()V
        28: .line 1540
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.readLineWkt:()V
        29: .line 1541
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.readCloseBracket:()V
        30: .line 1543
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.skipWhiteSpaces:()V
        31: .line 1545
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            iconst_1
            iadd
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.checkSQLLength:(I)Z
            ifeq 34
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.wkt:Ljava/lang/String;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            invokevirtual java.lang.String.charAt:(I)C
            bipush 44
            if_icmpne 34
        32: .line 1546
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.readComma:()V
        33: .line 1547
            goto 37
      StackMap locals:
      StackMap stack:
        34: aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.wkt:Ljava/lang/String;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            invokevirtual java.lang.String.charAt:(I)C
            bipush 41
            if_icmpne 36
        35: .line 1548
            goto 37
        36: .line 1550
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.throwIllegalWKTPosition:()V
        37: .line 1507
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.wkt:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            if_icmpge 38
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.wkt:Ljava/lang/String;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            invokevirtual java.lang.String.charAt:(I)C
            bipush 41
            if_icmpne 2
        38: .line 1553
      StackMap locals:
      StackMap stack:
            return
        end local 3 // byte fa
        end local 2 // java.lang.String nextToken
        end local 1 // int parentShapeIndex
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   39     0              this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            0   39     1  parentShapeIndex  I
            0   39     2         nextToken  Ljava/lang/String;
            1   39     3                fa  B
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException
    MethodParameters:
                  Name  Flags
      parentShapeIndex  
      nextToken         

  protected void readCurvePolygon();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
         0: .line 1562
            goto 27
         1: .line 1563
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.getNextStringToken:()Ljava/lang/String;
            getstatic java.util.Locale.US:Ljava/util/Locale;
            invokevirtual java.lang.String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;
            astore 1 /* nextPotentialToken */
        start local 1 // java.lang.String nextPotentialToken
         2: .line 1564
            ldc "CIRCULARSTRING"
            aload 1 /* nextPotentialToken */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 8
         3: .line 1565
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figureList:Ljava/util/List;
            new com.microsoft.sqlserver.jdbc.spatialdatatypes.Figure
            dup
            iconst_2
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.pointList:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            invokespecial com.microsoft.sqlserver.jdbc.spatialdatatypes.Figure.<init>:(BI)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         4: .line 1566
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.readOpenBracket:()V
         5: .line 1567
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.readLineWkt:()V
         6: .line 1568
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.readCloseBracket:()V
         7: .line 1569
            goto 21
      StackMap locals: java.lang.String
      StackMap stack:
         8: ldc "COMPOUNDCURVE"
            aload 1 /* nextPotentialToken */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 14
         9: .line 1570
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figureList:Ljava/util/List;
            new com.microsoft.sqlserver.jdbc.spatialdatatypes.Figure
            dup
            iconst_3
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.pointList:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            invokespecial com.microsoft.sqlserver.jdbc.spatialdatatypes.Figure.<init>:(BI)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        10: .line 1571
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.readOpenBracket:()V
        11: .line 1572
            aload 0 /* this */
            iconst_1
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.readCompoundCurveWkt:(Z)V
        12: .line 1573
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.readCloseBracket:()V
        13: .line 1574
            goto 21
      StackMap locals:
      StackMap stack:
        14: aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.wkt:Ljava/lang/String;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            invokevirtual java.lang.String.charAt:(I)C
            bipush 40
            if_icmpne 20
        15: .line 1575
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figureList:Ljava/util/List;
            new com.microsoft.sqlserver.jdbc.spatialdatatypes.Figure
            dup
            iconst_1
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.pointList:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            invokespecial com.microsoft.sqlserver.jdbc.spatialdatatypes.Figure.<init>:(BI)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        16: .line 1576
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.readOpenBracket:()V
        17: .line 1577
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.readLineWkt:()V
        18: .line 1578
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.readCloseBracket:()V
        19: .line 1579
            goto 21
        20: .line 1580
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.throwIllegalWKTPosition:()V
        21: .line 1583
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            iconst_1
            iadd
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.checkSQLLength:(I)Z
            ifeq 24
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.wkt:Ljava/lang/String;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            invokevirtual java.lang.String.charAt:(I)C
            bipush 44
            if_icmpne 24
        22: .line 1584
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.readComma:()V
        23: .line 1585
            goto 27
      StackMap locals:
      StackMap stack:
        24: aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.wkt:Ljava/lang/String;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            invokevirtual java.lang.String.charAt:(I)C
            bipush 41
            if_icmpne 26
        25: .line 1586
            goto 27
        26: .line 1588
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.throwIllegalWKTPosition:()V
        end local 1 // java.lang.String nextPotentialToken
        27: .line 1562
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.wkt:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            if_icmpge 28
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.wkt:Ljava/lang/String;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            invokevirtual java.lang.String.charAt:(I)C
            bipush 41
            if_icmpne 1
        28: .line 1591
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   29     0                this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            2   27     1  nextPotentialToken  Ljava/lang/String;
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException

  protected void readMultiPolygonWkt(int, java.lang.String);
    descriptor: (ILjava/lang/String;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
        start local 1 // int thisShapeIndex
        start local 2 // java.lang.String nextToken
         0: .line 1604
            goto 13
         1: .line 1605
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* thisShapeIndex */
            aload 2 /* nextToken */
            invokestatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.valueOf:(Ljava/lang/String;)Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            iconst_1
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.checkEmptyKeyword:(ILcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;Z)Z
            ifeq 3
         2: .line 1606
            goto 13
         3: .line 1608
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapeList:Ljava/util/List;
            new com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape
            dup
            iload 1 /* thisShapeIndex */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figureList:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.POLYGON:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeCode:()B
            invokespecial com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.<init>:(IIB)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         4: .line 1610
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.readOpenBracket:()V
         5: .line 1611
            aload 0 /* this */
            iload 1 /* thisShapeIndex */
            aload 2 /* nextToken */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.readShapeWkt:(ILjava/lang/String;)V
         6: .line 1612
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.readCloseBracket:()V
         7: .line 1614
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            iconst_1
            iadd
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.checkSQLLength:(I)Z
            ifeq 10
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.wkt:Ljava/lang/String;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            invokevirtual java.lang.String.charAt:(I)C
            bipush 44
            if_icmpne 10
         8: .line 1615
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.readComma:()V
         9: .line 1616
            goto 13
      StackMap locals:
      StackMap stack:
        10: aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.wkt:Ljava/lang/String;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            invokevirtual java.lang.String.charAt:(I)C
            bipush 41
            if_icmpne 12
        11: .line 1617
            goto 13
        12: .line 1619
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.throwIllegalWKTPosition:()V
        13: .line 1604
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.wkt:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            if_icmpge 14
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.wkt:Ljava/lang/String;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            invokevirtual java.lang.String.charAt:(I)C
            bipush 41
            if_icmpne 1
        14: .line 1622
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String nextToken
        end local 1 // int thisShapeIndex
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   15     0            this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            0   15     1  thisShapeIndex  I
            0   15     2       nextToken  Ljava/lang/String;
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException
    MethodParameters:
                Name  Flags
      thisShapeIndex  
      nextToken       

  protected void readSegmentWkt(int, boolean);
    descriptor: (IZ)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
        start local 1 // int segmentType
        start local 2 // boolean isFirstIteration
         0: .line 1635
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.segmentList:Ljava/util/List;
            new com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment
            dup
            iload 1 /* segmentType */
            i2b
            invokespecial com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment.<init>:(B)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         1: .line 1637
            iload 1 /* segmentType */
            istore 3 /* segmentLength */
        start local 3 // int segmentLength
         2: .line 1640
            iload 3 /* segmentLength */
            iconst_2
            if_icmpge 4
         3: .line 1641
            iinc 3 /* segmentLength */ 1
         4: .line 1644
      StackMap locals: int
      StackMap stack:
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         5: goto 11
         6: .line 1648
      StackMap locals: int
      StackMap stack:
            iload 4 /* i */
            ifne 9
            iload 2 /* isFirstIteration */
            ifne 9
            iload 1 /* segmentType */
            iconst_2
            if_icmplt 9
         7: .line 1649
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.skipFirstPointWkt:()V
         8: .line 1650
            goto 10
         9: .line 1651
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.readPointWkt:()V
        10: .line 1644
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 4 /* i */
            iload 3 /* segmentLength */
            if_icmplt 6
        end local 4 // int i
        12: .line 1655
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.wkt:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            if_icmpge 18
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.wkt:Ljava/lang/String;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            invokevirtual java.lang.String.charAt:(I)C
            bipush 41
            if_icmpeq 18
        13: .line 1656
            iload 1 /* segmentType */
            iconst_3
            if_icmpeq 14
            iload 1 /* segmentType */
            iconst_1
            if_icmpne 16
        14: .line 1657
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            iconst_0
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.readSegmentWkt:(IZ)V
        15: .line 1658
            goto 18
      StackMap locals:
      StackMap stack:
        16: iload 1 /* segmentType */
            iconst_2
            if_icmpeq 17
            iload 1 /* segmentType */
            ifne 18
        17: .line 1659
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            iconst_0
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.readSegmentWkt:(IZ)V
        18: .line 1662
      StackMap locals:
      StackMap stack:
            return
        end local 3 // int segmentLength
        end local 2 // boolean isFirstIteration
        end local 1 // int segmentType
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   19     0              this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            0   19     1       segmentType  I
            0   19     2  isFirstIteration  Z
            2   19     3     segmentLength  I
            5   12     4                 i  I
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException
    MethodParameters:
                  Name  Flags
      segmentType       
      isFirstIteration  

  protected void readCompoundCurveWkt(boolean);
    descriptor: (Z)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
        start local 1 // boolean isFirstIteration
         0: .line 1673
            goto 20
         1: .line 1674
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.getNextStringToken:()Ljava/lang/String;
            getstatic java.util.Locale.US:Ljava/util/Locale;
            invokevirtual java.lang.String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;
            astore 2 /* nextPotentialToken */
        start local 2 // java.lang.String nextPotentialToken
         2: .line 1675
            ldc "CIRCULARSTRING"
            aload 2 /* nextPotentialToken */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 7
         3: .line 1676
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.readOpenBracket:()V
         4: .line 1677
            aload 0 /* this */
            iconst_3
            iload 1 /* isFirstIteration */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.readSegmentWkt:(IZ)V
         5: .line 1678
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.readCloseBracket:()V
         6: .line 1679
            goto 13
      StackMap locals: java.lang.String
      StackMap stack:
         7: aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.wkt:Ljava/lang/String;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            invokevirtual java.lang.String.charAt:(I)C
            bipush 40
            if_icmpne 12
         8: .line 1680
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.readOpenBracket:()V
         9: .line 1681
            aload 0 /* this */
            iconst_2
            iload 1 /* isFirstIteration */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.readSegmentWkt:(IZ)V
        10: .line 1682
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.readCloseBracket:()V
        11: .line 1683
            goto 13
        12: .line 1684
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.throwIllegalWKTPosition:()V
        13: .line 1687
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 1 /* isFirstIteration */
        14: .line 1689
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            iconst_1
            iadd
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.checkSQLLength:(I)Z
            ifeq 17
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.wkt:Ljava/lang/String;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            invokevirtual java.lang.String.charAt:(I)C
            bipush 44
            if_icmpne 17
        15: .line 1690
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.readComma:()V
        16: .line 1691
            goto 20
      StackMap locals:
      StackMap stack:
        17: aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.wkt:Ljava/lang/String;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            invokevirtual java.lang.String.charAt:(I)C
            bipush 41
            if_icmpne 19
        18: .line 1692
            goto 20
        19: .line 1694
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.throwIllegalWKTPosition:()V
        end local 2 // java.lang.String nextPotentialToken
        20: .line 1673
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.wkt:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            if_icmpge 21
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.wkt:Ljava/lang/String;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            invokevirtual java.lang.String.charAt:(I)C
            bipush 41
            if_icmpne 1
        21: .line 1697
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean isFirstIteration
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   22     0                this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            0   22     1    isFirstIteration  Z
            2   20     2  nextPotentialToken  Ljava/lang/String;
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException
    MethodParameters:
                  Name  Flags
      isFirstIteration  

  protected java.lang.String getNextStringToken();
    descriptor: ()Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
         0: .line 1706
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.skipWhiteSpaces:()V
         1: .line 1707
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            istore 1 /* endIndex */
        start local 1 // int endIndex
         2: .line 1708
            goto 4
         3: .line 1709
      StackMap locals: int
      StackMap stack:
            iinc 1 /* endIndex */ 1
         4: .line 1708
      StackMap locals:
      StackMap stack:
            iload 1 /* endIndex */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.wkt:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            if_icmpge 5
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.wkt:Ljava/lang/String;
            iload 1 /* endIndex */
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic java.lang.Character.isLetter:(C)Z
            ifne 3
         5: .line 1711
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            istore 2 /* temp */
        start local 2 // int temp
         6: .line 1712
            aload 0 /* this */
            iload 1 /* endIndex */
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
         7: .line 1713
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.skipWhiteSpaces:()V
         8: .line 1715
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.wkt:Ljava/lang/String;
            iload 2 /* temp */
            iload 1 /* endIndex */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            areturn
        end local 2 // int temp
        end local 1 // int endIndex
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0      this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            2    9     1  endIndex  I
            6    9     2      temp  I

  protected void populateStructures();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
         0: .line 1722
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.pointList:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            ifle 23
         1: .line 1723
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.pointList:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            newarray 7
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.xValues:[D
         2: .line 1724
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.pointList:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            newarray 7
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.yValues:[D
         3: .line 1726
            iconst_0
            istore 1 /* i */
        start local 1 // int i
         4: goto 8
         5: .line 1727
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.xValues:[D
            iload 1 /* i */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.pointList:Ljava/util/List;
            iload 1 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.microsoft.sqlserver.jdbc.spatialdatatypes.Point
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Point.getX:()D
            dastore
         6: .line 1728
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.yValues:[D
            iload 1 /* i */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.pointList:Ljava/util/List;
            iload 1 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.microsoft.sqlserver.jdbc.spatialdatatypes.Point
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Point.getY:()D
            dastore
         7: .line 1726
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 1 /* i */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.pointList:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            if_icmplt 5
        end local 1 // int i
         9: .line 1731
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.hasZvalues:Z
            ifeq 16
        10: .line 1732
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.pointList:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            newarray 7
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.zValues:[D
        11: .line 1733
            iconst_0
            istore 1 /* i */
        start local 1 // int i
        12: goto 15
        13: .line 1734
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.zValues:[D
            iload 1 /* i */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.pointList:Ljava/util/List;
            iload 1 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.microsoft.sqlserver.jdbc.spatialdatatypes.Point
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Point.getZ:()D
            dastore
        14: .line 1733
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
        15: iload 1 /* i */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.pointList:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            if_icmplt 13
        end local 1 // int i
        16: .line 1738
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.hasMvalues:Z
            ifeq 23
        17: .line 1739
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.pointList:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            newarray 7
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.mValues:[D
        18: .line 1740
            iconst_0
            istore 1 /* i */
        start local 1 // int i
        19: goto 22
        20: .line 1741
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.mValues:[D
            iload 1 /* i */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.pointList:Ljava/util/List;
            iload 1 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.microsoft.sqlserver.jdbc.spatialdatatypes.Point
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Point.getM:()D
            dastore
        21: .line 1740
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
        22: iload 1 /* i */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.pointList:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            if_icmplt 20
        end local 1 // int i
        23: .line 1749
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.version:B
            iconst_2
            if_icmpne 29
        24: .line 1750
            iconst_0
            istore 1 /* i */
        start local 1 // int i
        25: goto 28
        26: .line 1751
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figureList:Ljava/util/List;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.version_one_shape_indexes:Ljava/util/List;
            iload 1 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.microsoft.sqlserver.jdbc.spatialdatatypes.Figure
            iconst_1
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Figure.setFiguresAttribute:(B)V
        27: .line 1750
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
        28: iload 1 /* i */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.version_one_shape_indexes:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            if_icmplt 26
        end local 1 // int i
        29: .line 1755
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figureList:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            ifle 36
        30: .line 1756
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figureList:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            anewarray com.microsoft.sqlserver.jdbc.spatialdatatypes.Figure
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figures:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Figure;
        31: .line 1758
            iconst_0
            istore 1 /* i */
        start local 1 // int i
        32: goto 35
        33: .line 1759
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figures:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Figure;
            iload 1 /* i */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figureList:Ljava/util/List;
            iload 1 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.microsoft.sqlserver.jdbc.spatialdatatypes.Figure
            aastore
        34: .line 1758
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
        35: iload 1 /* i */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figureList:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            if_icmplt 33
        end local 1 // int i
        36: .line 1768
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.pointList:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            ifne 38
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapeList:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            ifle 38
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapeList:Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getOpenGISType:()B
            bipush 7
            if_icmpne 38
        37: .line 1769
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapeList:Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape
            iconst_m1
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.setFigureOffset:(I)V
        38: .line 1772
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapeList:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            ifle 45
        39: .line 1773
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapeList:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            anewarray com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
        40: .line 1775
            iconst_0
            istore 1 /* i */
        start local 1 // int i
        41: goto 44
        42: .line 1776
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            iload 1 /* i */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapeList:Ljava/util/List;
            iload 1 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape
            aastore
        43: .line 1775
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
        44: iload 1 /* i */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapeList:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            if_icmplt 42
        end local 1 // int i
        45: .line 1780
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.segmentList:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            ifle 52
        46: .line 1781
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.segmentList:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            anewarray com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.segments:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Segment;
        47: .line 1783
            iconst_0
            istore 1 /* i */
        start local 1 // int i
        48: goto 51
        49: .line 1784
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.segments:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Segment;
            iload 1 /* i */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.segmentList:Ljava/util/List;
            iload 1 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment
            aastore
        50: .line 1783
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
        51: iload 1 /* i */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.segmentList:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            if_icmplt 49
        end local 1 // int i
        52: .line 1788
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.pointList:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfPoints:I
        53: .line 1789
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figureList:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfFigures:I
        54: .line 1790
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapeList:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfShapes:I
        55: .line 1791
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.segmentList:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfSegments:I
        56: .line 1792
            return
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   57     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            4    9     1     i  I
           12   16     1     i  I
           19   23     1     i  I
           25   29     1     i  I
           32   36     1     i  I
           41   45     1     i  I
           48   52     1     i  I

  protected void readOpenBracket();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
         0: .line 1795
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.skipWhiteSpaces:()V
         1: .line 1796
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.wkt:Ljava/lang/String;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            invokevirtual java.lang.String.charAt:(I)C
            bipush 40
            if_icmpne 5
         2: .line 1797
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
         3: .line 1798
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.skipWhiteSpaces:()V
         4: .line 1799
            goto 6
         5: .line 1800
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.throwIllegalWKTPosition:()V
         6: .line 1802
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException

  protected void readCloseBracket();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
         0: .line 1805
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.skipWhiteSpaces:()V
         1: .line 1806
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.wkt:Ljava/lang/String;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            invokevirtual java.lang.String.charAt:(I)C
            bipush 41
            if_icmpne 5
         2: .line 1807
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
         3: .line 1808
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.skipWhiteSpaces:()V
         4: .line 1809
            goto 6
         5: .line 1810
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.throwIllegalWKTPosition:()V
         6: .line 1812
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException

  protected boolean hasMoreToken();
    descriptor: ()Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
         0: .line 1815
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.skipWhiteSpaces:()V
         1: .line 1816
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.wkt:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            if_icmpge 2
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         2: iconst_0
            ireturn
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;

  protected void createSerializationProperties();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
         0: .line 1820
            aload 0 /* this */
            iconst_0
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.serializationProperties:B
         1: .line 1821
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.hasZvalues:Z
            ifeq 3
         2: .line 1822
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.serializationProperties:B
            iconst_1
            iadd
            i2b
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.serializationProperties:B
         3: .line 1825
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.hasMvalues:Z
            ifeq 5
         4: .line 1826
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.serializationProperties:B
            iconst_2
            iadd
            i2b
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.serializationProperties:B
         5: .line 1829
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.isValid:Z
            ifeq 7
         6: .line 1830
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.serializationProperties:B
            iconst_4
            iadd
            i2b
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.serializationProperties:B
         7: .line 1833
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.isSinglePoint:Z
            ifeq 9
         8: .line 1834
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.serializationProperties:B
            bipush 8
            iadd
            i2b
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.serializationProperties:B
         9: .line 1837
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.isSingleLineSegment:Z
            ifeq 11
        10: .line 1838
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.serializationProperties:B
            bipush 16
            iadd
            i2b
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.serializationProperties:B
        11: .line 1841
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.version:B
            iconst_2
            if_icmpne 14
        12: .line 1842
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.isLargerThanHemisphere:Z
            ifeq 14
        13: .line 1843
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.serializationProperties:B
            bipush 32
            iadd
            i2b
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.serializationProperties:B
        14: .line 1846
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   15     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;

  protected int determineClrCapacity(boolean);
    descriptor: (Z)I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
        start local 1 // boolean excludeZMFromCLR
         0: .line 1849
            iconst_0
            istore 2 /* totalSize */
        start local 2 // int totalSize
         1: .line 1851
            iinc 2 /* totalSize */ 6
         2: .line 1853
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.isSinglePoint:Z
            ifne 3
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.isSingleLineSegment:Z
            ifeq 10
         3: .line 1854
      StackMap locals: int
      StackMap stack:
            iload 2 /* totalSize */
            bipush 16
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfPoints:I
            imul
            iadd
            istore 2 /* totalSize */
         4: .line 1856
            iload 1 /* excludeZMFromCLR */
            ifne 9
         5: .line 1857
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.hasZvalues:Z
            ifeq 7
         6: .line 1858
            iload 2 /* totalSize */
            bipush 8
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfPoints:I
            imul
            iadd
            istore 2 /* totalSize */
         7: .line 1861
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.hasMvalues:Z
            ifeq 9
         8: .line 1862
            iload 2 /* totalSize */
            bipush 8
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfPoints:I
            imul
            iadd
            istore 2 /* totalSize */
         9: .line 1866
      StackMap locals:
      StackMap stack:
            iload 2 /* totalSize */
            ireturn
        10: .line 1869
      StackMap locals:
      StackMap stack:
            bipush 16
            istore 3 /* pointSize */
        start local 3 // int pointSize
        11: .line 1870
            iload 1 /* excludeZMFromCLR */
            ifne 16
        12: .line 1871
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.hasZvalues:Z
            ifeq 14
        13: .line 1872
            iinc 3 /* pointSize */ 8
        14: .line 1875
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.hasMvalues:Z
            ifeq 16
        15: .line 1876
            iinc 3 /* pointSize */ 8
        16: .line 1880
      StackMap locals:
      StackMap stack:
            iinc 2 /* totalSize */ 12
        17: .line 1881
            iload 2 /* totalSize */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfPoints:I
            iload 3 /* pointSize */
            imul
            iadd
            istore 2 /* totalSize */
        18: .line 1882
            iload 2 /* totalSize */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfFigures:I
            iconst_5
            imul
            iadd
            istore 2 /* totalSize */
        19: .line 1883
            iload 2 /* totalSize */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfShapes:I
            bipush 9
            imul
            iadd
            istore 2 /* totalSize */
        20: .line 1885
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.version:B
            iconst_2
            if_icmpne 23
        21: .line 1886
            iinc 2 /* totalSize */ 4
        22: .line 1887
            iload 2 /* totalSize */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfSegments:I
            iadd
            istore 2 /* totalSize */
        23: .line 1890
      StackMap locals:
      StackMap stack:
            iload 2 /* totalSize */
            ireturn
        end local 3 // int pointSize
        end local 2 // int totalSize
        end local 1 // boolean excludeZMFromCLR
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   24     0              this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            0   24     1  excludeZMFromCLR  Z
            1   24     2         totalSize  I
           11   24     3         pointSize  I
    MethodParameters:
                  Name  Flags
      excludeZMFromCLR  

  protected int determineWkbCapacity();
    descriptor: ()I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=8, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
         0: .line 1894
            iconst_0
            istore 1 /* totalSize */
        start local 1 // int totalSize
         1: .line 1896
            iinc 1 /* totalSize */ 1
         2: .line 1897
            iinc 1 /* totalSize */ 4
         3: .line 1899
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.$SWITCH_TABLE$com$microsoft$sqlserver$jdbc$InternalSpatialDatatype:()[I
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.internalType:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.ordinal:()I
            iaload
            tableswitch { // 1 - 11
                    1: 4
                    2: 8
                    3: 11
                    4: 14
                    5: 18
                    6: 22
                    7: 35
                    8: 100
                    9: 103
                   10: 116
                   11: 139
              default: 141
          }
         4: .line 1902
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfPoints:I
            ifne 6
         5: .line 1903
            iinc 1 /* totalSize */ 4
         6: .line 1905
      StackMap locals:
      StackMap stack:
            iload 1 /* totalSize */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfPoints:I
            bipush 16
            imul
            iadd
            istore 1 /* totalSize */
         7: .line 1906
            goto 141
         8: .line 1908
      StackMap locals:
      StackMap stack:
            iinc 1 /* totalSize */ 4
         9: .line 1909
            iload 1 /* totalSize */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfPoints:I
            bipush 16
            imul
            iadd
            istore 1 /* totalSize */
        10: .line 1910
            goto 141
        11: .line 1912
      StackMap locals:
      StackMap stack:
            iinc 1 /* totalSize */ 4
        12: .line 1913
            iload 1 /* totalSize */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figures:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Figure;
            arraylength
            iconst_4
            imul
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfPoints:I
            bipush 16
            imul
            iadd
            iadd
            istore 1 /* totalSize */
        13: .line 1914
            goto 141
        14: .line 1916
      StackMap locals:
      StackMap stack:
            iinc 1 /* totalSize */ 4
        15: .line 1917
            iload 1 /* totalSize */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfFigures:I
            iconst_5
            imul
            iadd
            istore 1 /* totalSize */
        16: .line 1918
            iload 1 /* totalSize */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfPoints:I
            bipush 16
            imul
            iadd
            istore 1 /* totalSize */
        17: .line 1919
            goto 141
        18: .line 1921
      StackMap locals:
      StackMap stack:
            iinc 1 /* totalSize */ 4
        19: .line 1922
            iload 1 /* totalSize */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfFigures:I
            bipush 9
            imul
            iadd
            istore 1 /* totalSize */
        20: .line 1923
            iload 1 /* totalSize */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfPoints:I
            bipush 16
            imul
            iadd
            istore 1 /* totalSize */
        21: .line 1924
            goto 141
        22: .line 1926
      StackMap locals:
      StackMap stack:
            iinc 1 /* totalSize */ 4
        23: .line 1927
            iload 1 /* totalSize */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfShapes:I
            iconst_1
            isub
            bipush 9
            imul
            iadd
            istore 1 /* totalSize */
        24: .line 1928
            iconst_1
            istore 2 /* i */
        start local 2 // int i
        25: goto 32
        26: .line 1929
      StackMap locals: int
      StackMap stack:
            iload 2 /* i */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            arraylength
            iconst_1
            isub
            if_icmpne 29
        27: .line 1930
            iload 1 /* totalSize */
            iconst_4
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figures:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Figure;
            arraylength
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            iload 2 /* i */
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getFigureOffset:()I
            isub
            imul
            iadd
            istore 1 /* totalSize */
        28: .line 1931
            goto 31
        29: .line 1932
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            iload 2 /* i */
            iconst_1
            iadd
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getFigureOffset:()I
            istore 3 /* nextFigureOffset */
        start local 3 // int nextFigureOffset
        30: .line 1933
            iload 1 /* totalSize */
            iconst_4
            iload 3 /* nextFigureOffset */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            iload 2 /* i */
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getFigureOffset:()I
            isub
            imul
            iadd
            istore 1 /* totalSize */
        end local 3 // int nextFigureOffset
        31: .line 1928
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        32: iload 2 /* i */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            arraylength
            if_icmplt 26
        end local 2 // int i
        33: .line 1936
            iload 1 /* totalSize */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfPoints:I
            bipush 16
            imul
            iadd
            istore 1 /* totalSize */
        34: .line 1937
            goto 141
        35: .line 1939
      StackMap locals:
      StackMap stack:
            iinc 1 /* totalSize */ 4
        36: .line 1940
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfPoints:I
            istore 2 /* actualNumberOfPoints */
        start local 2 // int actualNumberOfPoints
        37: .line 1941
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.segments:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Segment;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 43
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype int int top int int com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment[]
      StackMap stack:
        38: aload 6
            iload 4
            aaload
            astore 3 /* s */
        start local 3 // com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment s
        39: .line 1942
            aload 3 /* s */
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment.getSegmentType:()B
            iconst_3
            if_icmpeq 40
            aload 3 /* s */
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment.getSegmentType:()B
            iconst_2
            if_icmpne 42
        40: .line 1943
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype int int com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment int int com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment[]
      StackMap stack:
            iinc 1 /* totalSize */ 9
        41: .line 1944
            iinc 2 /* actualNumberOfPoints */ 1
        end local 3 // com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment s
        42: .line 1941
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype int int top int int com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment[]
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
        43: iload 4
            iload 5
            if_icmplt 38
        44: .line 1947
            iconst_0
            istore 3 /* numberOfCompositeCurves */
        start local 3 // int numberOfCompositeCurves
        45: .line 1948
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figures:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Figure;
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 50
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype int int int top int int com.microsoft.sqlserver.jdbc.spatialdatatypes.Figure[]
      StackMap stack:
        46: aload 7
            iload 5
            aaload
            astore 4 /* f */
        start local 4 // com.microsoft.sqlserver.jdbc.spatialdatatypes.Figure f
        47: .line 1949
            aload 4 /* f */
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Figure.getFiguresAttribute:()B
            iconst_3
            if_icmpne 49
        48: .line 1950
            iinc 3 /* numberOfCompositeCurves */ 1
        end local 4 // com.microsoft.sqlserver.jdbc.spatialdatatypes.Figure f
        49: .line 1948
      StackMap locals:
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
        50: iload 5
            iload 6
            if_icmplt 46
        51: .line 1953
            iload 3 /* numberOfCompositeCurves */
            iconst_1
            if_icmple 53
        52: .line 1954
            iload 2 /* actualNumberOfPoints */
            iload 3 /* numberOfCompositeCurves */
            iconst_1
            isub
            isub
            istore 2 /* actualNumberOfPoints */
        53: .line 1956
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype int int int
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfSegments:I
            ifle 55
        54: .line 1957
            iinc 2 /* actualNumberOfPoints */ -1
        55: .line 1960
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 4 /* i */
        start local 4 // int i
        56: goto 97
        57: .line 1961
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            iload 4 /* i */
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getOpenGISType:()B
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.POINT:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeCode:()B
            if_icmpne 63
        58: .line 1966
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            iload 4 /* i */
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getFigureOffset:()I
            iconst_m1
            if_icmpne 61
        59: .line 1967
            iinc 1 /* totalSize */ 9
        60: .line 1968
            goto 96
        61: .line 1969
      StackMap locals:
      StackMap stack:
            iinc 1 /* totalSize */ 5
        62: .line 1971
            goto 96
      StackMap locals:
      StackMap stack:
        63: aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            iload 4 /* i */
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getOpenGISType:()B
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.POLYGON:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeCode:()B
            if_icmpne 79
        64: .line 1972
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            iload 4 /* i */
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getFigureOffset:()I
            iconst_m1
            if_icmpeq 77
        65: .line 1973
            iload 4 /* i */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            arraylength
            iconst_1
            isub
            if_icmpne 68
        66: .line 1974
            iload 1 /* totalSize */
            iconst_4
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figures:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Figure;
            arraylength
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            iload 4 /* i */
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getFigureOffset:()I
            isub
            imul
            iadd
            istore 1 /* totalSize */
        67: .line 1975
            goto 77
        68: .line 1988
      StackMap locals:
      StackMap stack:
            iconst_m1
            istore 5 /* figureIndexEnd */
        start local 5 // int figureIndexEnd
        69: .line 1989
            iload 4 /* i */
            istore 6 /* localCurrentShapeIndex */
        start local 6 // int localCurrentShapeIndex
        70: .line 1990
            goto 73
        71: .line 1991
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            iload 6 /* localCurrentShapeIndex */
            iconst_1
            iadd
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getFigureOffset:()I
            istore 5 /* figureIndexEnd */
        72: .line 1992
            iinc 6 /* localCurrentShapeIndex */ 1
        73: .line 1990
      StackMap locals:
      StackMap stack:
            iload 5 /* figureIndexEnd */
            iconst_m1
            if_icmpne 74
            iload 6 /* localCurrentShapeIndex */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            arraylength
            iconst_1
            isub
            if_icmplt 71
        74: .line 1995
      StackMap locals:
      StackMap stack:
            iload 5 /* figureIndexEnd */
            iconst_m1
            if_icmpne 76
        75: .line 1996
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfFigures:I
            istore 5 /* figureIndexEnd */
        76: .line 1999
      StackMap locals:
      StackMap stack:
            iload 1 /* totalSize */
            iconst_4
            iload 5 /* figureIndexEnd */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            iload 4 /* i */
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getFigureOffset:()I
            isub
            imul
            iadd
            istore 1 /* totalSize */
        end local 6 // int localCurrentShapeIndex
        end local 5 // int figureIndexEnd
        77: .line 2002
      StackMap locals:
      StackMap stack:
            iinc 1 /* totalSize */ 9
        78: .line 2003
            goto 96
      StackMap locals:
      StackMap stack:
        79: aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            iload 4 /* i */
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getOpenGISType:()B
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.CURVEPOLYGON:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeCode:()B
            if_icmpne 95
        80: .line 2004
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            iload 4 /* i */
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getFigureOffset:()I
            iconst_m1
            if_icmpeq 93
        81: .line 2005
            iload 4 /* i */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            arraylength
            iconst_1
            isub
            if_icmpne 84
        82: .line 2006
            iload 1 /* totalSize */
            bipush 9
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figures:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Figure;
            arraylength
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            iload 4 /* i */
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getFigureOffset:()I
            isub
            imul
            iadd
            istore 1 /* totalSize */
        83: .line 2007
            goto 93
        84: .line 2008
      StackMap locals:
      StackMap stack:
            iconst_m1
            istore 5 /* figureIndexEnd */
        start local 5 // int figureIndexEnd
        85: .line 2009
            iload 4 /* i */
            istore 6 /* localCurrentShapeIndex */
        start local 6 // int localCurrentShapeIndex
        86: .line 2010
            goto 89
        87: .line 2011
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            iload 6 /* localCurrentShapeIndex */
            iconst_1
            iadd
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getFigureOffset:()I
            istore 5 /* figureIndexEnd */
        88: .line 2012
            iinc 6 /* localCurrentShapeIndex */ 1
        89: .line 2010
      StackMap locals:
      StackMap stack:
            iload 5 /* figureIndexEnd */
            iconst_m1
            if_icmpne 90
            iload 6 /* localCurrentShapeIndex */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            arraylength
            iconst_1
            isub
            if_icmplt 87
        90: .line 2015
      StackMap locals:
      StackMap stack:
            iload 5 /* figureIndexEnd */
            iconst_m1
            if_icmpne 92
        91: .line 2016
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfFigures:I
            istore 5 /* figureIndexEnd */
        92: .line 2018
      StackMap locals:
      StackMap stack:
            iload 1 /* totalSize */
            bipush 9
            iload 5 /* figureIndexEnd */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            iload 4 /* i */
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getFigureOffset:()I
            isub
            imul
            iadd
            istore 1 /* totalSize */
        end local 6 // int localCurrentShapeIndex
        end local 5 // int figureIndexEnd
        93: .line 2021
      StackMap locals:
      StackMap stack:
            iinc 1 /* totalSize */ 9
        94: .line 2022
            goto 96
        95: .line 2023
      StackMap locals:
      StackMap stack:
            iinc 1 /* totalSize */ 9
        96: .line 1960
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        97: iload 4 /* i */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            arraylength
            if_icmplt 57
        end local 4 // int i
        98: .line 2026
            iload 1 /* totalSize */
            iload 2 /* actualNumberOfPoints */
            bipush 16
            imul
            iadd
            istore 1 /* totalSize */
        99: .line 2027
            goto 141
        end local 3 // int numberOfCompositeCurves
        end local 2 // int actualNumberOfPoints
       100: .line 2029
      StackMap locals:
      StackMap stack:
            iinc 1 /* totalSize */ 4
       101: .line 2030
            iload 1 /* totalSize */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfPoints:I
            bipush 16
            imul
            iadd
            istore 1 /* totalSize */
       102: .line 2031
            goto 141
       103: .line 2033
      StackMap locals:
      StackMap stack:
            iinc 1 /* totalSize */ 4
       104: .line 2034
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfPoints:I
            istore 2 /* actualNumberOfPoints */
        start local 2 // int actualNumberOfPoints
       105: .line 2052
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.segments:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Segment;
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 111
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype int int top top int int com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment[]
      StackMap stack:
       106: aload 7
            iload 5
            aaload
            astore 4 /* s */
        start local 4 // com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment s
       107: .line 2053
            aload 4 /* s */
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment.getSegmentType:()B
            iconst_3
            if_icmpeq 108
            aload 4 /* s */
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment.getSegmentType:()B
            iconst_2
            if_icmpne 110
       108: .line 2054
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype int int top com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment int int com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment[]
      StackMap stack:
            iinc 1 /* totalSize */ 9
       109: .line 2055
            iinc 2 /* actualNumberOfPoints */ 1
        end local 4 // com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment s
       110: .line 2052
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype int int top top int int com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment[]
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
       111: iload 5
            iload 6
            if_icmplt 106
       112: .line 2058
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfSegments:I
            ifle 114
       113: .line 2059
            iinc 2 /* actualNumberOfPoints */ -1
       114: .line 2061
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype int int
      StackMap stack:
            iload 1 /* totalSize */
            iload 2 /* actualNumberOfPoints */
            bipush 16
            imul
            iadd
            istore 1 /* totalSize */
       115: .line 2062
            goto 141
        end local 2 // int actualNumberOfPoints
       116: .line 2064
      StackMap locals:
      StackMap stack:
            iinc 1 /* totalSize */ 4
       117: .line 2065
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfPoints:I
            istore 2 /* actualNumberOfPoints */
        start local 2 // int actualNumberOfPoints
       118: .line 2066
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.segments:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Segment;
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 124
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype int int top top int int com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment[]
      StackMap stack:
       119: aload 7
            iload 5
            aaload
            astore 4 /* s */
        start local 4 // com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment s
       120: .line 2067
            aload 4 /* s */
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment.getSegmentType:()B
            iconst_3
            if_icmpeq 121
            aload 4 /* s */
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment.getSegmentType:()B
            iconst_2
            if_icmpne 123
       121: .line 2068
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype int int top com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment int int com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment[]
      StackMap stack:
            iinc 1 /* totalSize */ 9
       122: .line 2069
            iinc 2 /* actualNumberOfPoints */ 1
        end local 4 // com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment s
       123: .line 2066
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype int int top top int int com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment[]
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
       124: iload 5
            iload 6
            if_icmplt 119
       125: .line 2072
            iconst_0
            istore 3 /* numberOfCompositeCurves */
        start local 3 // int numberOfCompositeCurves
       126: .line 2082
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figures:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Figure;
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 132
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype int int int top int int com.microsoft.sqlserver.jdbc.spatialdatatypes.Figure[]
      StackMap stack:
       127: aload 7
            iload 5
            aaload
            astore 4 /* f */
        start local 4 // com.microsoft.sqlserver.jdbc.spatialdatatypes.Figure f
       128: .line 2083
            iinc 1 /* totalSize */ 9
       129: .line 2084
            aload 4 /* f */
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Figure.getFiguresAttribute:()B
            iconst_3
            if_icmpne 131
       130: .line 2085
            iinc 3 /* numberOfCompositeCurves */ 1
        end local 4 // com.microsoft.sqlserver.jdbc.spatialdatatypes.Figure f
       131: .line 2082
      StackMap locals:
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
       132: iload 5
            iload 6
            if_icmplt 127
       133: .line 2089
            iload 3 /* numberOfCompositeCurves */
            iconst_1
            if_icmple 135
       134: .line 2090
            iload 2 /* actualNumberOfPoints */
            iload 3 /* numberOfCompositeCurves */
            iconst_1
            isub
            isub
            istore 2 /* actualNumberOfPoints */
       135: .line 2092
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype int int int
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfSegments:I
            ifle 137
       136: .line 2093
            iinc 2 /* actualNumberOfPoints */ -1
       137: .line 2095
      StackMap locals:
      StackMap stack:
            iload 1 /* totalSize */
            iload 2 /* actualNumberOfPoints */
            bipush 16
            imul
            iadd
            istore 1 /* totalSize */
       138: .line 2096
            goto 141
        end local 3 // int numberOfCompositeCurves
        end local 2 // int actualNumberOfPoints
       139: .line 2098
      StackMap locals:
      StackMap stack:
            iconst_5
            istore 1 /* totalSize */
       140: .line 2099
            goto 141
       141: .line 2104
      StackMap locals:
      StackMap stack:
            iload 1 /* totalSize */
            ireturn
        end local 1 // int totalSize
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0  142     0                     this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            1  142     1                totalSize  I
           25   33     2                        i  I
           30   31     3         nextFigureOffset  I
           37  100     2     actualNumberOfPoints  I
          105  116     2     actualNumberOfPoints  I
          118  139     2     actualNumberOfPoints  I
           39   42     3                        s  Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Segment;
           45  100     3  numberOfCompositeCurves  I
          126  139     3  numberOfCompositeCurves  I
           47   49     4                        f  Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Figure;
           56   98     4                        i  I
           69   77     5           figureIndexEnd  I
           70   77     6   localCurrentShapeIndex  I
           85   93     5           figureIndexEnd  I
           86   93     6   localCurrentShapeIndex  I
          107  110     4                        s  Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Segment;
          120  123     4                        s  Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Segment;
          128  131     4                        f  Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Figure;

  protected void appendToWKTBuffers(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
        start local 1 // java.lang.Object o
         0: .line 2114
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.WKTsb:Ljava/lang/StringBuffer;
            aload 1 /* o */
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/Object;)Ljava/lang/StringBuffer;
            pop
         1: .line 2115
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.WKTsbNoZM:Ljava/lang/StringBuffer;
            aload 1 /* o */
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/Object;)Ljava/lang/StringBuffer;
            pop
         2: .line 2116
            return
        end local 1 // java.lang.Object o
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            0    3     1     o  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      o     

  protected void interpretSerializationPropBytes();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
         0: .line 2119
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.serializationProperties:B
            iconst_1
            iand
            ifeq 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack: com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype
         1: iconst_0
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype
      StackMap stack: com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype int
         2: putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.hasZvalues:Z
         3: .line 2120
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.serializationProperties:B
            iconst_2
            iand
            ifeq 4
            iconst_1
            goto 5
      StackMap locals:
      StackMap stack: com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype
         4: iconst_0
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype
      StackMap stack: com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype int
         5: putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.hasMvalues:Z
         6: .line 2121
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.serializationProperties:B
            iconst_4
            iand
            ifeq 7
            iconst_1
            goto 8
      StackMap locals:
      StackMap stack: com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype
         7: iconst_0
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype
      StackMap stack: com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype int
         8: putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.isValid:Z
         9: .line 2122
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.serializationProperties:B
            bipush 8
            iand
            ifeq 10
            iconst_1
            goto 11
      StackMap locals:
      StackMap stack: com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype
        10: iconst_0
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype
      StackMap stack: com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype int
        11: putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.isSinglePoint:Z
        12: .line 2123
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.serializationProperties:B
            bipush 16
            iand
            ifeq 13
            iconst_1
            goto 14
      StackMap locals:
      StackMap stack: com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype
        13: iconst_0
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype
      StackMap stack: com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype int
        14: putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.isSingleLineSegment:Z
        15: .line 2124
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.serializationProperties:B
            bipush 32
            iand
            ifeq 16
            iconst_1
            goto 17
      StackMap locals:
      StackMap stack: com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype
        16: iconst_0
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype
      StackMap stack: com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype int
        17: putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.isLargerThanHemisphere:Z
        18: .line 2125
            return
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   19     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;

  protected void readNumberOfPoints();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
         0: .line 2128
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.isSinglePoint:Z
            ifeq 3
         1: .line 2129
            aload 0 /* this */
            iconst_1
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfPoints:I
         2: .line 2130
            goto 8
      StackMap locals:
      StackMap stack:
         3: aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.isSingleLineSegment:Z
            ifeq 6
         4: .line 2131
            aload 0 /* this */
            iconst_2
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfPoints:I
         5: .line 2132
            goto 8
         6: .line 2133
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.readInt:()I
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfPoints:I
         7: .line 2134
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfPoints:I
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.checkNegSize:(I)V
         8: .line 2136
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException

  protected void readZvalues();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
         0: .line 2139
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfPoints:I
            newarray 7
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.zValues:[D
         1: .line 2140
            iconst_0
            istore 1 /* i */
        start local 1 // int i
         2: goto 5
         3: .line 2141
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.zValues:[D
            iload 1 /* i */
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.readDouble:()D
            dastore
         4: .line 2140
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 1 /* i */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfPoints:I
            if_icmplt 3
        end local 1 // int i
         6: .line 2143
            return
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            2    6     1     i  I
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException

  protected void readMvalues();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
         0: .line 2146
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfPoints:I
            newarray 7
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.mValues:[D
         1: .line 2147
            iconst_0
            istore 1 /* i */
        start local 1 // int i
         2: goto 5
         3: .line 2148
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.mValues:[D
            iload 1 /* i */
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.readDouble:()D
            dastore
         4: .line 2147
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 1 /* i */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfPoints:I
            if_icmplt 3
        end local 1 // int i
         6: .line 2150
            return
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            2    6     1     i  I
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException

  protected void readNumberOfFigures();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
         0: .line 2153
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.readInt:()I
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfFigures:I
         1: .line 2154
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfFigures:I
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.checkNegSize:(I)V
         2: .line 2155
            return
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException

  protected void readFigures();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=4, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
         0: .line 2160
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfFigures:I
            anewarray com.microsoft.sqlserver.jdbc.spatialdatatypes.Figure
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figures:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Figure;
         1: .line 2161
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         2: goto 7
         3: .line 2162
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype top top int
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.readByte:()B
            istore 1 /* fa */
        start local 1 // byte fa
         4: .line 2163
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.readInt:()I
            istore 2 /* po */
        start local 2 // int po
         5: .line 2164
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figures:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Figure;
            iload 3 /* i */
            new com.microsoft.sqlserver.jdbc.spatialdatatypes.Figure
            dup
            iload 1 /* fa */
            iload 2 /* po */
            invokespecial com.microsoft.sqlserver.jdbc.spatialdatatypes.Figure.<init>:(BI)V
            aastore
         6: .line 2161
            iinc 3 /* i */ 1
        end local 2 // int po
        end local 1 // byte fa
      StackMap locals:
      StackMap stack:
         7: iload 3 /* i */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfFigures:I
            if_icmplt 3
        end local 3 // int i
         8: .line 2166
            return
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            4    7     1    fa  B
            5    7     2    po  I
            2    8     3     i  I
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException

  protected void readNumberOfShapes();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
         0: .line 2169
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.readInt:()I
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfShapes:I
         1: .line 2170
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfShapes:I
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.checkNegSize:(I)V
         2: .line 2171
            return
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException

  protected void readShapes();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=5, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
         0: .line 2177
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfShapes:I
            anewarray com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
         1: .line 2178
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         2: goto 8
         3: .line 2179
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype top top top int
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.readInt:()I
            istore 1 /* po */
        start local 1 // int po
         4: .line 2180
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.readInt:()I
            istore 2 /* fo */
        start local 2 // int fo
         5: .line 2181
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.readByte:()B
            istore 3 /* ogt */
        start local 3 // byte ogt
         6: .line 2182
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            iload 4 /* i */
            new com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape
            dup
            iload 1 /* po */
            iload 2 /* fo */
            iload 3 /* ogt */
            invokespecial com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.<init>:(IIB)V
            aastore
         7: .line 2178
            iinc 4 /* i */ 1
        end local 3 // byte ogt
        end local 2 // int fo
        end local 1 // int po
      StackMap locals:
      StackMap stack:
         8: iload 4 /* i */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfShapes:I
            if_icmplt 3
        end local 4 // int i
         9: .line 2184
            return
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            4    8     1    po  I
            5    8     2    fo  I
            6    8     3   ogt  B
            2    9     4     i  I
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException

  protected void readNumberOfSegments();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
         0: .line 2187
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.readInt:()I
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfSegments:I
         1: .line 2188
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfSegments:I
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.checkNegSize:(I)V
         2: .line 2189
            return
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException

  protected void readSegments();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
         0: .line 2193
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfSegments:I
            anewarray com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.segments:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Segment;
         1: .line 2194
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 6
         3: .line 2195
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype top int
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.readByte:()B
            istore 1 /* st */
        start local 1 // byte st
         4: .line 2196
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.segments:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Segment;
            iload 2 /* i */
            new com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment
            dup
            iload 1 /* st */
            invokespecial com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment.<init>:(B)V
            aastore
         5: .line 2194
            iinc 2 /* i */ 1
        end local 1 // byte st
      StackMap locals:
      StackMap stack:
         6: iload 2 /* i */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfSegments:I
            if_icmplt 3
        end local 2 // int i
         7: .line 2198
            return
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            4    6     1    st  B
            2    7     2     i  I
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException

  protected void determineInternalType();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
         0: .line 2201
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.isSinglePoint:Z
            ifeq 3
         1: .line 2202
            aload 0 /* this */
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.POINT:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.internalType:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
         2: .line 2203
            goto 7
      StackMap locals:
      StackMap stack:
         3: aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.isSingleLineSegment:Z
            ifeq 6
         4: .line 2204
            aload 0 /* this */
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.LINESTRING:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.internalType:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
         5: .line 2205
            goto 7
         6: .line 2206
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            iconst_0
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getOpenGISType:()B
            invokestatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.valueOf:(B)Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.internalType:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
         7: .line 2208
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;

  protected boolean checkEmptyKeyword(int, com.microsoft.sqlserver.jdbc.InternalSpatialDatatype, boolean);
    descriptor: (ILcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;Z)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=8, args_size=4
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
        start local 1 // int parentShapeIndex
        start local 2 // com.microsoft.sqlserver.jdbc.InternalSpatialDatatype isd
        start local 3 // boolean isInsideAnotherShape
         0: .line 2212
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.getNextStringToken:()Ljava/lang/String;
            getstatic java.util.Locale.US:Ljava/util/Locale;
            invokevirtual java.lang.String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;
            astore 4 /* potentialEmptyKeyword */
        start local 4 // java.lang.String potentialEmptyKeyword
         1: .line 2213
            ldc "EMPTY"
            aload 4 /* potentialEmptyKeyword */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 26
         2: .line 2215
            iconst_0
            istore 5 /* typeCode */
        start local 5 // byte typeCode
         3: .line 2217
            iload 3 /* isInsideAnotherShape */
            ifeq 19
         4: .line 2218
            aload 2 /* isd */
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeCode:()B
            istore 6 /* parentTypeCode */
        start local 6 // byte parentTypeCode
         5: .line 2219
            iload 6 /* parentTypeCode */
            iconst_4
            if_icmpne 8
         6: .line 2220
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.POINT:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeCode:()B
            istore 5 /* typeCode */
         7: .line 2221
            goto 20
      StackMap locals: java.lang.String int int
      StackMap stack:
         8: iload 6 /* parentTypeCode */
            iconst_5
            if_icmpne 11
         9: .line 2222
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.LINESTRING:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeCode:()B
            istore 5 /* typeCode */
        10: .line 2223
            goto 20
      StackMap locals:
      StackMap stack:
        11: iload 6 /* parentTypeCode */
            bipush 6
            if_icmpne 14
        12: .line 2224
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.POLYGON:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeCode:()B
            istore 5 /* typeCode */
        13: .line 2225
            goto 20
      StackMap locals:
      StackMap stack:
        14: iload 6 /* parentTypeCode */
            bipush 7
            if_icmpne 17
        15: .line 2226
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.GEOMETRYCOLLECTION:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeCode:()B
            istore 5 /* typeCode */
        16: .line 2227
            goto 20
        17: .line 2228
      StackMap locals:
      StackMap stack:
            ldc "R_illegalWKT"
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
            astore 7 /* strError */
        start local 7 // java.lang.String strError
        18: .line 2229
            new com.microsoft.sqlserver.jdbc.SQLServerException
            dup
            aload 7 /* 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
        end local 7 // java.lang.String strError
        end local 6 // byte parentTypeCode
        19: .line 2232
      StackMap locals:
      StackMap stack:
            aload 2 /* isd */
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeCode:()B
            istore 5 /* typeCode */
        20: .line 2235
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapeList:Ljava/util/List;
            new com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape
            dup
            iload 1 /* parentShapeIndex */
            iconst_m1
            iload 5 /* typeCode */
            invokespecial com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.<init>:(IIB)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        21: .line 2236
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.skipWhiteSpaces:()V
        22: .line 2237
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.wkt:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            if_icmpge 25
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.wkt:Ljava/lang/String;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            invokevirtual java.lang.String.charAt:(I)C
            bipush 44
            if_icmpne 25
        23: .line 2238
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
        24: .line 2239
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.skipWhiteSpaces:()V
        25: .line 2241
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 5 // byte typeCode
        26: .line 2244
      StackMap locals:
      StackMap stack:
            ldc ""
            aload 4 /* potentialEmptyKeyword */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 28
        27: .line 2245
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.throwIllegalWKTPosition:()V
        28: .line 2247
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 4 // java.lang.String potentialEmptyKeyword
        end local 3 // boolean isInsideAnotherShape
        end local 2 // com.microsoft.sqlserver.jdbc.InternalSpatialDatatype isd
        end local 1 // int parentShapeIndex
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   29     0                   this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            0   29     1       parentShapeIndex  I
            0   29     2                    isd  Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            0   29     3   isInsideAnotherShape  Z
            1   29     4  potentialEmptyKeyword  Ljava/lang/String;
            3   26     5               typeCode  B
            5   19     6         parentTypeCode  B
           18   19     7               strError  Ljava/lang/String;
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException
    MethodParameters:
                      Name  Flags
      parentShapeIndex      
      isd                   
      isInsideAnotherShape  

  protected void throwIllegalWKT();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
         0: .line 2251
            ldc "R_illegalWKT"
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* strError */
        start local 1 // java.lang.String strError
         1: .line 2252
            new com.microsoft.sqlserver.jdbc.SQLServerException
            dup
            aload 1 /* 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
        end local 1 // java.lang.String strError
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            1    2     1  strError  Ljava/lang/String;
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException

  protected void throwIllegalByteArray();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=3, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
         0: .line 2256
            new java.text.MessageFormat
            dup
            ldc "R_ParsingError"
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.text.MessageFormat.<init>:(Ljava/lang/String;)V
            astore 1 /* form */
        start local 1 // java.text.MessageFormat form
         1: .line 2257
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            getstatic com.microsoft.sqlserver.jdbc.JDBCType.VARBINARY:Lcom/microsoft/sqlserver/jdbc/JDBCType;
            aastore
            astore 2 /* msgArgs */
        start local 2 // java.lang.Object[] msgArgs
         2: .line 2258
            new com.microsoft.sqlserver.jdbc.SQLServerException
            dup
            aload 0 /* this */
            aload 1 /* form */
            aload 2 /* msgArgs */
            invokevirtual java.text.MessageFormat.format:(Ljava/lang/Object;)Ljava/lang/String;
            aconst_null
            iconst_0
            iconst_0
            invokespecial com.microsoft.sqlserver.jdbc.SQLServerException.<init>:(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;IZ)V
            athrow
        end local 2 // java.lang.Object[] msgArgs
        end local 1 // java.text.MessageFormat form
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            1    3     1     form  Ljava/text/MessageFormat;
            2    3     2  msgArgs  [Ljava/lang/Object;
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException

  private void incrementPointNumStartIfPointNotReused(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
        start local 1 // int pointEndIndex
         0: .line 2264
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentPointIndex:I
            iconst_1
            iadd
            iload 1 /* pointEndIndex */
            if_icmplt 2
         1: .line 2265
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentPointIndex:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentPointIndex:I
         2: .line 2267
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int pointEndIndex
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            0    3     1  pointEndIndex  I
    MethodParameters:
               Name  Flags
      pointEndIndex  

  private void constructGeometryCollectionWKThelper(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=17, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
        start local 1 // int shapeEndIndex
         0: .line 2279
            goto 112
         1: .line 2280
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentShapeIndex:I
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getOpenGISType:()B
            invokestatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.valueOf:(B)Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            astore 2 /* isd */
        start local 2 // com.microsoft.sqlserver.jdbc.InternalSpatialDatatype isd
         2: .line 2282
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentShapeIndex:I
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getFigureOffset:()I
            istore 3 /* figureIndex */
        start local 3 // int figureIndex
         3: .line 2283
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfPoints:I
            istore 4 /* pointIndexEnd */
        start local 4 // int pointIndexEnd
         4: .line 2284
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfFigures:I
            istore 5 /* figureIndexEnd */
        start local 5 // int figureIndexEnd
         5: .line 2285
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfSegments:I
            istore 6 /* segmentIndexEnd */
        start local 6 // int segmentIndexEnd
         6: .line 2286
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfShapes:I
            istore 7 /* shapeIndexEnd */
        start local 7 // int shapeIndexEnd
         7: .line 2287
            iconst_0
            istore 8 /* figureIndexIncrement */
        start local 8 // int figureIndexIncrement
         8: .line 2288
            iconst_0
            istore 9 /* segmentIndexIncrement */
        start local 9 // int segmentIndexIncrement
         9: .line 2289
            iconst_0
            istore 10 /* shapeIndexIncrement */
        start local 10 // int shapeIndexIncrement
        10: .line 2290
            iconst_0
            istore 11 /* localCurrentSegmentIndex */
        start local 11 // int localCurrentSegmentIndex
        11: .line 2291
            iconst_0
            istore 12 /* localCurrentShapeIndex */
        start local 12 // int localCurrentShapeIndex
        12: .line 2294
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentShapeIndex:I
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getFigureOffset:()I
            iconst_m1
            if_icmpne 16
        13: .line 2295
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentShapeIndex:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentShapeIndex:I
        14: .line 2296
            iconst_m1
            istore 5 /* figureIndexEnd */
        15: .line 2297
            goto 106
        16: .line 2298
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype int com.microsoft.sqlserver.jdbc.InternalSpatialDatatype int int int int int int int int int int
      StackMap stack:
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.$SWITCH_TABLE$com$microsoft$sqlserver$jdbc$InternalSpatialDatatype:()[I
            aload 2 /* isd */
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.ordinal:()I
            iaload
            tableswitch { // 1 - 11
                    1: 17
                    2: 20
                    3: 27
                    4: 55
                    5: 55
                    6: 55
                    7: 69
                    8: 20
                    9: 92
                   10: 27
                   11: 104
              default: 106
          }
        17: .line 2300
      StackMap locals:
      StackMap stack:
            iinc 8 /* figureIndexIncrement */ 1
        18: .line 2301
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentShapeIndex:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentShapeIndex:I
        19: .line 2302
            goto 106
        20: .line 2305
      StackMap locals:
      StackMap stack:
            iinc 8 /* figureIndexIncrement */ 1
        21: .line 2306
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentShapeIndex:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentShapeIndex:I
        22: .line 2307
            iload 3 /* figureIndex */
            iconst_1
            iadd
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figures:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Figure;
            arraylength
            if_icmpge 25
        23: .line 2308
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figures:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Figure;
            iload 3 /* figureIndex */
            iconst_1
            iadd
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Figure.getPointOffset:()I
            istore 4 /* pointIndexEnd */
        24: .line 2309
            goto 106
        25: .line 2310
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfPoints:I
            istore 4 /* pointIndexEnd */
        26: .line 2312
            goto 106
        27: .line 2315
      StackMap locals:
      StackMap stack:
            iconst_m1
            istore 5 /* figureIndexEnd */
        28: .line 2316
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentShapeIndex:I
            istore 12 /* localCurrentShapeIndex */
        29: .line 2317
            goto 32
        30: .line 2318
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            iload 12 /* localCurrentShapeIndex */
            iconst_1
            iadd
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getFigureOffset:()I
            istore 5 /* figureIndexEnd */
        31: .line 2319
            iinc 12 /* localCurrentShapeIndex */ 1
        32: .line 2317
      StackMap locals:
      StackMap stack:
            iload 5 /* figureIndexEnd */
            iconst_m1
            if_icmpne 33
            iload 12 /* localCurrentShapeIndex */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            arraylength
            iconst_1
            isub
            if_icmplt 30
        33: .line 2322
      StackMap locals:
      StackMap stack:
            iload 5 /* figureIndexEnd */
            iconst_m1
            if_icmpne 35
        34: .line 2323
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfFigures:I
            istore 5 /* figureIndexEnd */
        35: .line 2326
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentShapeIndex:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentShapeIndex:I
        36: .line 2327
            iload 5 /* figureIndexEnd */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentFigureIndex:I
            isub
            istore 8 /* figureIndexIncrement */
        37: .line 2330
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentSegmentIndex:I
            istore 11 /* localCurrentSegmentIndex */
        38: .line 2332
            aload 2 /* isd */
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.CURVEPOLYGON:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.equals:(Ljava/lang/Object;)Z
            ifeq 53
        39: .line 2335
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentFigureIndex:I
            istore 13 /* i */
        start local 13 // int i
        40: goto 52
        41: .line 2337
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figures:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Figure;
            iload 13 /* i */
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Figure.getFiguresAttribute:()B
            iconst_3
            if_icmpne 51
        42: .line 2340
            iload 13 /* i */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figures:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Figure;
            arraylength
            iconst_1
            isub
            if_icmpne 45
        43: .line 2341
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfPoints:I
            istore 14 /* pointOffsetEnd */
        start local 14 // int pointOffsetEnd
        44: .line 2342
            goto 46
        end local 14 // int pointOffsetEnd
        45: .line 2343
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figures:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Figure;
            iload 13 /* i */
            iconst_1
            iadd
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Figure.getPointOffset:()I
            istore 14 /* pointOffsetEnd */
        start local 14 // int pointOffsetEnd
        46: .line 2346
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iload 11 /* localCurrentSegmentIndex */
        47: .line 2347
            iload 14 /* pointOffsetEnd */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figures:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Figure;
            iload 13 /* i */
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Figure.getPointOffset:()I
            isub
        48: .line 2346
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.calculateSegmentIncrement:(II)I
            istore 15 /* increment */
        start local 15 // int increment
        49: .line 2349
            iload 9 /* segmentIndexIncrement */
            iload 15 /* increment */
            iadd
            istore 9 /* segmentIndexIncrement */
        50: .line 2350
            iload 11 /* localCurrentSegmentIndex */
            iload 15 /* increment */
            iadd
            istore 11 /* localCurrentSegmentIndex */
        end local 15 // int increment
        end local 14 // int pointOffsetEnd
        51: .line 2335
      StackMap locals:
      StackMap stack:
            iinc 13 /* i */ 1
      StackMap locals:
      StackMap stack:
        52: iload 13 /* i */
            iload 5 /* figureIndexEnd */
            if_icmplt 41
        end local 13 // int i
        53: .line 2355
      StackMap locals:
      StackMap stack:
            iload 11 /* localCurrentSegmentIndex */
            istore 6 /* segmentIndexEnd */
        54: .line 2357
            goto 106
        55: .line 2367
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentShapeIndex:I
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getParentOffset:()I
            istore 13 /* thisShapesParentOffset */
        start local 13 // int thisShapesParentOffset
        56: .line 2369
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentShapeIndex:I
            istore 14 /* tempShapeIndex */
        start local 14 // int tempShapeIndex
        57: .line 2374
            iinc 14 /* tempShapeIndex */ 1
        58: .line 2375
            goto 63
        59: .line 2377
      StackMap locals: int int
      StackMap stack:
            iload 14 /* tempShapeIndex */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            arraylength
            iconst_1
            isub
            if_icmpeq 62
        60: .line 2379
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            iload 14 /* tempShapeIndex */
            iconst_1
            iadd
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getFigureOffset:()I
            iconst_m1
            if_icmpeq 62
        61: .line 2380
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            iload 14 /* tempShapeIndex */
            iconst_1
            iadd
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getFigureOffset:()I
            istore 5 /* figureIndexEnd */
        62: .line 2382
      StackMap locals:
      StackMap stack:
            iinc 14 /* tempShapeIndex */ 1
        63: .line 2375
      StackMap locals:
      StackMap stack:
            iload 14 /* tempShapeIndex */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            arraylength
            if_icmpge 65
        64: .line 2376
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            iload 14 /* tempShapeIndex */
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getParentOffset:()I
            iload 13 /* thisShapesParentOffset */
            if_icmpne 59
        65: .line 2385
      StackMap locals:
      StackMap stack:
            iload 5 /* figureIndexEnd */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentFigureIndex:I
            isub
            istore 8 /* figureIndexIncrement */
        66: .line 2386
            iload 14 /* tempShapeIndex */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentShapeIndex:I
            isub
            istore 10 /* shapeIndexIncrement */
        67: .line 2387
            iload 14 /* tempShapeIndex */
            istore 7 /* shapeIndexEnd */
        68: .line 2388
            goto 106
        end local 14 // int tempShapeIndex
        end local 13 // int thisShapesParentOffset
        69: .line 2390
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* isd */
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.getTypeName:()Ljava/lang/String;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.appendToWKTBuffers:(Ljava/lang/Object;)V
        70: .line 2393
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentShapeIndex:I
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getFigureOffset:()I
            iconst_m1
            if_icmpne 76
        71: .line 2394
            aload 0 /* this */
            ldc " EMPTY"
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.appendToWKTBuffers:(Ljava/lang/Object;)V
        72: .line 2395
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentShapeIndex:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentShapeIndex:I
        73: .line 2396
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentShapeIndex:I
            iload 1 /* shapeEndIndex */
            if_icmpge 112
        74: .line 2397
            aload 0 /* this */
            ldc ", "
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.appendToWKTBuffers:(Ljava/lang/Object;)V
        75: .line 2399
            goto 112
        76: .line 2402
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "("
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.appendToWKTBuffers:(Ljava/lang/Object;)V
        77: .line 2404
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentShapeIndex:I
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getParentOffset:()I
            istore 15 /* geometryCollectionParentIndex */
        start local 15 // int geometryCollectionParentIndex
        78: .line 2407
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentShapeIndex:I
            istore 12 /* localCurrentShapeIndex */
        79: .line 2409
            goto 81
        80: .line 2411
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype int com.microsoft.sqlserver.jdbc.InternalSpatialDatatype int int int int int int int int int int top top int
      StackMap stack:
            iinc 12 /* localCurrentShapeIndex */ 1
        81: .line 2409
      StackMap locals:
      StackMap stack:
            iload 12 /* localCurrentShapeIndex */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            arraylength
            iconst_1
            isub
            if_icmpge 84
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapes:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;
            iload 12 /* localCurrentShapeIndex */
            iconst_1
            iadd
            aaload
        82: .line 2410
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape.getParentOffset:()I
            iload 15 /* geometryCollectionParentIndex */
        83: .line 2409
            if_icmpgt 80
        84: .line 2416
      StackMap locals:
      StackMap stack:
            iinc 12 /* localCurrentShapeIndex */ 1
        85: .line 2418
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentShapeIndex:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentShapeIndex:I
        86: .line 2419
            aload 0 /* this */
            iload 12 /* localCurrentShapeIndex */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.constructGeometryCollectionWKThelper:(I)V
        87: .line 2421
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentShapeIndex:I
            iload 1 /* shapeEndIndex */
            if_icmpge 90
        88: .line 2422
            aload 0 /* this */
            ldc "), "
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.appendToWKTBuffers:(Ljava/lang/Object;)V
        89: .line 2423
            goto 112
        90: .line 2424
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc ")"
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.appendToWKTBuffers:(Ljava/lang/Object;)V
        91: .line 2427
            goto 112
        end local 15 // int geometryCollectionParentIndex
        92: .line 2429
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype int com.microsoft.sqlserver.jdbc.InternalSpatialDatatype int int int int int int int int int int
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentFigureIndex:I
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figures:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Figure;
            arraylength
            iconst_1
            isub
            if_icmpne 95
        93: .line 2430
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfPoints:I
            istore 4 /* pointIndexEnd */
        94: .line 2431
            goto 96
        95: .line 2432
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figures:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Figure;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentFigureIndex:I
            iconst_1
            iadd
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Figure.getPointOffset:()I
            istore 4 /* pointIndexEnd */
        96: .line 2435
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentSegmentIndex:I
        97: .line 2436
            iload 4 /* pointIndexEnd */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figures:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Figure;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentFigureIndex:I
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Figure.getPointOffset:()I
            isub
        98: .line 2435
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.calculateSegmentIncrement:(II)I
            istore 16 /* increment */
        start local 16 // int increment
        99: .line 2438
            iload 16 /* increment */
            istore 9 /* segmentIndexIncrement */
       100: .line 2439
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentSegmentIndex:I
            iload 16 /* increment */
            iadd
            istore 6 /* segmentIndexEnd */
       101: .line 2440
            iinc 8 /* figureIndexIncrement */ 1
       102: .line 2441
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentShapeIndex:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentShapeIndex:I
       103: .line 2442
            goto 106
        end local 16 // int increment
       104: .line 2444
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "FULLGLOBE"
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.appendToWKTBuffers:(Ljava/lang/Object;)V
       105: .line 2445
            goto 106
       106: .line 2451
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            aload 2 /* isd */
            iload 4 /* pointIndexEnd */
            iload 5 /* figureIndexEnd */
            iload 6 /* segmentIndexEnd */
            iload 7 /* shapeIndexEnd */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.constructWKT:(Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;IIII)V
       107: .line 2452
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentFigureIndex:I
            iload 8 /* figureIndexIncrement */
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentFigureIndex:I
       108: .line 2453
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentSegmentIndex:I
            iload 9 /* segmentIndexIncrement */
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentSegmentIndex:I
       109: .line 2454
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentShapeIndex:I
            iload 10 /* shapeIndexIncrement */
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentShapeIndex:I
       110: .line 2456
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentShapeIndex:I
            iload 1 /* shapeEndIndex */
            if_icmpge 112
       111: .line 2457
            aload 0 /* this */
            ldc ", "
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.appendToWKTBuffers:(Ljava/lang/Object;)V
        end local 12 // int localCurrentShapeIndex
        end local 11 // int localCurrentSegmentIndex
        end local 10 // int shapeIndexIncrement
        end local 9 // int segmentIndexIncrement
        end local 8 // int figureIndexIncrement
        end local 7 // int shapeIndexEnd
        end local 6 // int segmentIndexEnd
        end local 5 // int figureIndexEnd
        end local 4 // int pointIndexEnd
        end local 3 // int figureIndex
        end local 2 // com.microsoft.sqlserver.jdbc.InternalSpatialDatatype isd
       112: .line 2279
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype int
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentShapeIndex:I
            iload 1 /* shapeEndIndex */
            if_icmplt 1
       113: .line 2460
            return
        end local 1 // int shapeEndIndex
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot                           Name  Signature
            0  114     0                           this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            0  114     1                  shapeEndIndex  I
            2  112     2                            isd  Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            3  112     3                    figureIndex  I
            4  112     4                  pointIndexEnd  I
            5  112     5                 figureIndexEnd  I
            6  112     6                segmentIndexEnd  I
            7  112     7                  shapeIndexEnd  I
            8  112     8           figureIndexIncrement  I
            9  112     9          segmentIndexIncrement  I
           10  112    10            shapeIndexIncrement  I
           11  112    11       localCurrentSegmentIndex  I
           12  112    12         localCurrentShapeIndex  I
           40   53    13                              i  I
           44   45    14                 pointOffsetEnd  I
           46   51    14                 pointOffsetEnd  I
           49   51    15                      increment  I
           56   69    13         thisShapesParentOffset  I
           57   69    14                 tempShapeIndex  I
           78   92    15  geometryCollectionParentIndex  I
           99  104    16                      increment  I
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException
    MethodParameters:
               Name  Flags
      shapeEndIndex  

  private int calculateSegmentIncrement(int, int);
    descriptor: (II)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
        start local 1 // int segmentStart
        start local 2 // int pointDifference
         0: .line 2475
            iconst_0
            istore 3 /* segmentIncrement */
        start local 3 // int segmentIncrement
         1: .line 2477
            goto 30
         2: .line 2478
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.segments:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Segment;
            iload 1 /* segmentStart */
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment.getSegmentType:()B
            tableswitch { // 0 - 3
                    0: 3
                    1: 9
                    2: 15
                    3: 21
              default: 27
          }
         3: .line 2480
      StackMap locals:
      StackMap stack:
            iinc 2 /* pointDifference */ -1
         4: .line 2482
            iload 1 /* segmentStart */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.segments:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Segment;
            arraylength
            iconst_1
            isub
            if_icmpeq 28
            iload 2 /* pointDifference */
            iconst_1
            if_icmpge 6
         5: .line 2483
            goto 28
         6: .line 2484
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.segments:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Segment;
            iload 1 /* segmentStart */
            iconst_1
            iadd
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment.getSegmentType:()B
            ifeq 28
         7: .line 2485
            iinc 2 /* pointDifference */ 1
         8: .line 2487
            goto 28
         9: .line 2489
      StackMap locals:
      StackMap stack:
            iinc 2 /* pointDifference */ -2
        10: .line 2491
            iload 1 /* segmentStart */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.segments:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Segment;
            arraylength
            iconst_1
            isub
            if_icmpeq 28
            iload 2 /* pointDifference */
            iconst_1
            if_icmpge 12
        11: .line 2492
            goto 28
        12: .line 2493
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.segments:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Segment;
            iload 1 /* segmentStart */
            iconst_1
            iadd
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment.getSegmentType:()B
            iconst_1
            if_icmpeq 28
        13: .line 2494
            iinc 2 /* pointDifference */ 1
        14: .line 2496
            goto 28
        15: .line 2498
      StackMap locals:
      StackMap stack:
            iinc 2 /* pointDifference */ -2
        16: .line 2500
            iload 1 /* segmentStart */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.segments:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Segment;
            arraylength
            iconst_1
            isub
            if_icmpeq 28
            iload 2 /* pointDifference */
            iconst_1
            if_icmpge 18
        17: .line 2501
            goto 28
        18: .line 2502
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.segments:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Segment;
            iload 1 /* segmentStart */
            iconst_1
            iadd
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment.getSegmentType:()B
            ifeq 28
        19: .line 2503
            iinc 2 /* pointDifference */ 1
        20: .line 2505
            goto 28
        21: .line 2507
      StackMap locals:
      StackMap stack:
            iinc 2 /* pointDifference */ -3
        22: .line 2509
            iload 1 /* segmentStart */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.segments:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Segment;
            arraylength
            iconst_1
            isub
            if_icmpeq 28
            iload 2 /* pointDifference */
            iconst_1
            if_icmpge 24
        23: .line 2510
            goto 28
        24: .line 2511
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.segments:[Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Segment;
            iload 1 /* segmentStart */
            iconst_1
            iadd
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment.getSegmentType:()B
            iconst_1
            if_icmpeq 28
        25: .line 2512
            iinc 2 /* pointDifference */ 1
        26: .line 2514
            goto 28
        27: .line 2516
      StackMap locals:
      StackMap stack:
            iload 3 /* segmentIncrement */
            ireturn
        28: .line 2518
      StackMap locals:
      StackMap stack:
            iinc 1 /* segmentStart */ 1
        29: .line 2519
            iinc 3 /* segmentIncrement */ 1
        30: .line 2477
      StackMap locals:
      StackMap stack:
            iload 2 /* pointDifference */
            ifgt 2
        31: .line 2522
            iload 3 /* segmentIncrement */
            ireturn
        end local 3 // int segmentIncrement
        end local 2 // int pointDifference
        end local 1 // int segmentStart
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   32     0              this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            0   32     1      segmentStart  I
            0   32     2   pointDifference  I
            1   32     3  segmentIncrement  I
    MethodParameters:
                 Name  Flags
      segmentStart     
      pointDifference  

  private void skipFirstPointWkt();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
         0: .line 2526
            iconst_0
            istore 1 /* numOfCoordinates */
        start local 1 // int numOfCoordinates
         1: .line 2528
            goto 18
         2: .line 2529
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.wkt:Ljava/lang/String;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            invokevirtual java.lang.String.charAt:(I)C
            bipush 45
            if_icmpne 4
         3: .line 2530
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
         4: .line 2533
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.wkt:Ljava/lang/String;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            invokevirtual java.lang.String.charAt:(I)C
            bipush 41
            if_icmpne 7
         5: .line 2534
            goto 19
         6: .line 2540
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
         7: .line 2537
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.wkt:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            if_icmpge 10
         8: .line 2538
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.wkt:Ljava/lang/String;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic java.lang.Character.isDigit:(C)Z
            ifne 6
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.wkt:Ljava/lang/String;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            invokevirtual java.lang.String.charAt:(I)C
            bipush 46
            if_icmpeq 6
         9: .line 2539
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.wkt:Ljava/lang/String;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            invokevirtual java.lang.String.charAt:(I)C
            bipush 69
            if_icmpeq 6
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.wkt:Ljava/lang/String;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            invokevirtual java.lang.String.charAt:(I)C
            bipush 101
            if_icmpeq 6
        10: .line 2543
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.skipWhiteSpaces:()V
        11: .line 2544
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.wkt:Ljava/lang/String;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            invokevirtual java.lang.String.charAt:(I)C
            bipush 44
            if_icmpne 16
        12: .line 2545
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
        13: .line 2546
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.skipWhiteSpaces:()V
        14: .line 2547
            iinc 1 /* numOfCoordinates */ 1
        15: .line 2548
            goto 19
        16: .line 2550
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.skipWhiteSpaces:()V
        17: .line 2552
            iinc 1 /* numOfCoordinates */ 1
        18: .line 2528
      StackMap locals:
      StackMap stack:
            iload 1 /* numOfCoordinates */
            iconst_4
            if_icmplt 2
        19: .line 2554
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int numOfCoordinates
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   20     0              this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            1   20     1  numOfCoordinates  I

  private void readComma();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
         0: .line 2557
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.skipWhiteSpaces:()V
         1: .line 2558
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.wkt:Ljava/lang/String;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            invokevirtual java.lang.String.charAt:(I)C
            bipush 44
            if_icmpne 5
         2: .line 2559
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
         3: .line 2560
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.skipWhiteSpaces:()V
         4: .line 2561
            goto 6
         5: .line 2562
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.throwIllegalWKTPosition:()V
         6: .line 2564
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException

  private void skipWhiteSpaces();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
         0: .line 2567
            goto 2
         1: .line 2568
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
         2: .line 2567
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.wkt:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            if_icmpge 3
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.wkt:Ljava/lang/String;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic java.lang.Character.isWhitespace:(C)Z
            ifne 1
         3: .line 2570
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;

  private void checkNegSize(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
        start local 1 // int num
         0: .line 2573
            iload 1 /* num */
            ifge 2
         1: .line 2574
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.throwIllegalByteArray:()V
         2: .line 2576
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int num
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            0    3     1   num  I
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException
    MethodParameters:
      Name  Flags
      num   

  private void readPoints(com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype);
    descriptor: (Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
        start local 1 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype type
         0: .line 2579
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfPoints:I
            newarray 7
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.xValues:[D
         1: .line 2580
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfPoints:I
            newarray 7
            putfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.yValues:[D
         2: .line 2582
            aload 1 /* type */
            instanceof com.microsoft.sqlserver.jdbc.Geometry
            ifeq 10
         3: .line 2583
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         4: goto 8
         5: .line 2584
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.xValues:[D
            iload 2 /* i */
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.readDouble:()D
            dastore
         6: .line 2585
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.yValues:[D
            iload 2 /* i */
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.readDouble:()D
            dastore
         7: .line 2583
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 2 /* i */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfPoints:I
            if_icmplt 5
        end local 2 // int i
         9: .line 2587
            goto 16
        10: .line 2588
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 2 /* i */
        start local 2 // int i
        11: goto 15
        12: .line 2589
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.yValues:[D
            iload 2 /* i */
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.readDouble:()D
            dastore
        13: .line 2590
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.xValues:[D
            iload 2 /* i */
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.readDouble:()D
            dastore
        14: .line 2588
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        15: iload 2 /* i */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.numberOfPoints:I
            if_icmplt 12
        end local 2 // int i
        16: .line 2593
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype type
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   17     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            0   17     1  type  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            4    9     2     i  I
           11   16     2     i  I
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException
    MethodParameters:
      Name  Flags
      type  

  private void checkBuffer(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
        start local 1 // int i
         0: .line 2596
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.buffer:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.remaining:()I
            iload 1 /* i */
            if_icmpge 2
         1: .line 2597
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.throwIllegalByteArray:()V
         2: .line 2599
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int i
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            0    3     1     i  I
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException
    MethodParameters:
      Name  Flags
      i     

  private boolean checkSQLLength(int);
    descriptor: (I)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
        start local 1 // int length
         0: .line 2602
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.wkt:Ljava/lang/String;
            ifnull 1
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.wkt:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            iload 1 /* length */
            if_icmpge 2
         1: .line 2603
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.throwIllegalWKTPosition:()V
         2: .line 2605
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 1 // int length
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            0    3     1  length  I
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException
    MethodParameters:
        Name  Flags
      length  

  private void throwIllegalWKTPosition();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=2, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
         0: .line 2609
            new java.text.MessageFormat
            dup
            ldc "R_illegalWKTposition"
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.text.MessageFormat.<init>:(Ljava/lang/String;)V
            astore 1 /* form */
        start local 1 // java.text.MessageFormat form
         1: .line 2610
            new com.microsoft.sqlserver.jdbc.SQLServerException
            dup
            aload 1 /* form */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.currentWktPos:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokevirtual java.text.MessageFormat.format:(Ljava/lang/Object;)Ljava/lang/String;
            aconst_null
            iconst_0
            aconst_null
            invokespecial com.microsoft.sqlserver.jdbc.SQLServerException.<init>:(Ljava/lang/String;Ljava/lang/String;ILjava/lang/Throwable;)V
            athrow
        end local 1 // java.text.MessageFormat form
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
            1    2     1  form  Ljava/text/MessageFormat;
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException

  protected byte readByte();
    descriptor: ()B
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
         0: .line 2614
            aload 0 /* this */
            iconst_1
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.checkBuffer:(I)V
         1: .line 2615
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.buffer:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.get:()B
            ireturn
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException

  protected int readInt();
    descriptor: ()I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
         0: .line 2619
            aload 0 /* this */
            iconst_4
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.checkBuffer:(I)V
         1: .line 2620
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.buffer:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.getInt:()I
            ireturn
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException

  protected double readDouble();
    descriptor: ()D
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
         0: .line 2624
            aload 0 /* this */
            bipush 8
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.checkBuffer:(I)V
         1: .line 2625
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.buffer:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.getDouble:()D
            dreturn
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException

  public java.util.List<com.microsoft.sqlserver.jdbc.spatialdatatypes.Point> getPointList();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
         0: .line 2630
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.pointList:Ljava/util/List;
            areturn
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
    Signature: ()Ljava/util/List<Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Point;>;

  public java.util.List<com.microsoft.sqlserver.jdbc.spatialdatatypes.Figure> getFigureList();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
         0: .line 2634
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.figureList:Ljava/util/List;
            areturn
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
    Signature: ()Ljava/util/List<Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Figure;>;

  public java.util.List<com.microsoft.sqlserver.jdbc.spatialdatatypes.Shape> getShapeList();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
         0: .line 2638
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.shapeList:Ljava/util/List;
            areturn
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
    Signature: ()Ljava/util/List<Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Shape;>;

  public java.util.List<com.microsoft.sqlserver.jdbc.spatialdatatypes.Segment> getSegmentList();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
         0: .line 2642
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.segmentList:Ljava/util/List;
            areturn
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerSpatialDatatype;
    Signature: ()Ljava/util/List<Lcom/microsoft/sqlserver/jdbc/spatialdatatypes/Segment;>;

  static int[] $SWITCH_TABLE$com$microsoft$sqlserver$jdbc$InternalSpatialDatatype();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 26
            getstatic com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.$SWITCH_TABLE$com$microsoft$sqlserver$jdbc$InternalSpatialDatatype:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.values:()[Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.CIRCULARSTRING:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.ordinal:()I
            bipush 8
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.COMPOUNDCURVE:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.ordinal:()I
            bipush 9
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.CURVEPOLYGON:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.ordinal:()I
            bipush 10
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.FULLGLOBE:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.ordinal:()I
            bipush 11
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.GEOMETRYCOLLECTION:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.ordinal:()I
            bipush 7
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.INVALID_TYPE:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.ordinal:()I
            bipush 12
            iastore
        18: goto 20
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        19: pop
      StackMap locals:
      StackMap stack:
        20: aload 0
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.LINESTRING:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.ordinal:()I
            iconst_2
            iastore
        21: goto 23
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        22: pop
      StackMap locals:
      StackMap stack:
        23: aload 0
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.MULTILINESTRING:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.ordinal:()I
            iconst_5
            iastore
        24: goto 26
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        25: pop
      StackMap locals:
      StackMap stack:
        26: aload 0
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.MULTIPOINT:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.ordinal:()I
            iconst_4
            iastore
        27: goto 29
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        28: pop
      StackMap locals:
      StackMap stack:
        29: aload 0
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.MULTIPOLYGON:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.ordinal:()I
            bipush 6
            iastore
        30: goto 32
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        31: pop
      StackMap locals:
      StackMap stack:
        32: aload 0
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.POINT:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.ordinal:()I
            iconst_1
            iastore
        33: goto 35
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        34: pop
      StackMap locals:
      StackMap stack:
        35: aload 0
            getstatic com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.POLYGON:Lcom/microsoft/sqlserver/jdbc/InternalSpatialDatatype;
            invokevirtual com.microsoft.sqlserver.jdbc.InternalSpatialDatatype.ordinal:()I
            iconst_3
            iastore
        36: goto 38
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        37: pop
      StackMap locals:
      StackMap stack:
        38: aload 0
            dup
            putstatic com.microsoft.sqlserver.jdbc.SQLServerSpatialDatatype.$SWITCH_TABLE$com$microsoft$sqlserver$jdbc$InternalSpatialDatatype:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
          14    15      16  Class java.lang.NoSuchFieldError
          17    18      19  Class java.lang.NoSuchFieldError
          20    21      22  Class java.lang.NoSuchFieldError
          23    24      25  Class java.lang.NoSuchFieldError
          26    27      28  Class java.lang.NoSuchFieldError
          29    30      31  Class java.lang.NoSuchFieldError
          32    33      34  Class java.lang.NoSuchFieldError
          35    36      37  Class java.lang.NoSuchFieldError
}
SourceFile: "SQLServerSpatialDatatype.java"