public abstract class org.apache.lucene.util.Sorter
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.apache.lucene.util.Sorter
  super_class: java.lang.Object
{
  static final int BINARY_SORT_THRESHOLD;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 20

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

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 24
            ldc Lorg/apache/lucene/util/Sorter;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic org.apache.lucene.util.Sorter.$assertionsDisabled:Z
         3: .line 26
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected void <init>();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.lucene.util.Sorter this
         0: .line 29
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.apache.lucene.util.Sorter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/lucene/util/Sorter;

  protected abstract int compare(int, int);
    descriptor: (II)I
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      i     
      j     

  protected abstract void swap(int, int);
    descriptor: (II)V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      i     
      j     

  protected void setPivot(int);
    descriptor: (I)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.lucene.util.Sorter this
        start local 1 // int i
         0: .line 44
            aload 0 /* this */
            iload 1 /* i */
            putfield org.apache.lucene.util.Sorter.pivotIndex:I
         1: .line 45
            return
        end local 1 // int i
        end local 0 // org.apache.lucene.util.Sorter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/lucene/util/Sorter;
            0    2     1     i  I
    MethodParameters:
      Name  Flags
      i     

  protected int comparePivot(int);
    descriptor: (I)I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.lucene.util.Sorter this
        start local 1 // int j
         0: .line 50
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.lucene.util.Sorter.pivotIndex:I
            iload 1 /* j */
            invokevirtual org.apache.lucene.util.Sorter.compare:(II)I
            ireturn
        end local 1 // int j
        end local 0 // org.apache.lucene.util.Sorter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/lucene/util/Sorter;
            0    1     1     j  I
    MethodParameters:
      Name  Flags
      j     

  public abstract void sort(int, int);
    descriptor: (II)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      from  
      to    

  void checkRange(int, int);
    descriptor: (II)V
    flags: (0x0000) 
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.apache.lucene.util.Sorter this
        start local 1 // int from
        start local 2 // int to
         0: .line 58
            iload 2 /* to */
            iload 1 /* from */
            if_icmpge 2
         1: .line 59
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "'to' must be >= 'from', got from="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* from */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " and to="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 2 /* to */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 61
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int to
        end local 1 // int from
        end local 0 // org.apache.lucene.util.Sorter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/lucene/util/Sorter;
            0    3     1  from  I
            0    3     2    to  I
    MethodParameters:
      Name  Flags
      from  
      to    

  void mergeInPlace(int, int, int);
    descriptor: (III)V
    flags: (0x0000) 
    Code:
      stack=4, locals=9, args_size=4
        start local 0 // org.apache.lucene.util.Sorter this
        start local 1 // int from
        start local 2 // int mid
        start local 3 // int to
         0: .line 64
            iload 1 /* from */
            iload 2 /* mid */
            if_icmpeq 1
            iload 2 /* mid */
            iload 3 /* to */
            if_icmpeq 1
            aload 0 /* this */
            iload 2 /* mid */
            iconst_1
            isub
            iload 2 /* mid */
            invokevirtual org.apache.lucene.util.Sorter.compare:(II)I
            ifgt 2
         1: .line 65
      StackMap locals:
      StackMap stack:
            return
         2: .line 66
      StackMap locals:
      StackMap stack:
            iload 3 /* to */
            iload 1 /* from */
            isub
            iconst_2
            if_icmpne 6
         3: .line 67
            aload 0 /* this */
            iload 2 /* mid */
            iconst_1
            isub
            iload 2 /* mid */
            invokevirtual org.apache.lucene.util.Sorter.swap:(II)V
         4: .line 68
            return
         5: .line 71
      StackMap locals:
      StackMap stack:
            iinc 1 /* from */ 1
         6: .line 70
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* from */
            iload 2 /* mid */
            invokevirtual org.apache.lucene.util.Sorter.compare:(II)I
            ifle 5
         7: .line 73
            goto 9
         8: .line 74
      StackMap locals:
      StackMap stack:
            iinc 3 /* to */ -1
         9: .line 73
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 2 /* mid */
            iconst_1
            isub
            iload 3 /* to */
            iconst_1
            isub
            invokevirtual org.apache.lucene.util.Sorter.compare:(II)I
            ifle 8
        10: .line 78
            iload 2 /* mid */
            iload 1 /* from */
            isub
            iload 3 /* to */
            iload 2 /* mid */
            isub
            if_icmple 16
        11: .line 79
            iload 2 /* mid */
            iload 1 /* from */
            isub
            iconst_1
            iushr
            istore 6 /* len11 */
        start local 6 // int len11
        12: .line 80
            iload 1 /* from */
            iload 6 /* len11 */
            iadd
            istore 4 /* first_cut */
        start local 4 // int first_cut
        13: .line 81
            aload 0 /* this */
            iload 2 /* mid */
            iload 3 /* to */
            iload 4 /* first_cut */
            invokevirtual org.apache.lucene.util.Sorter.lower:(III)I
            istore 5 /* second_cut */
        start local 5 // int second_cut
        14: .line 82
            iload 5 /* second_cut */
            iload 2 /* mid */
            isub
            istore 7 /* len22 */
        start local 7 // int len22
        15: .line 83
            goto 20
        end local 7 // int len22
        end local 6 // int len11
        end local 5 // int second_cut
        end local 4 // int first_cut
        16: .line 84
      StackMap locals:
      StackMap stack:
            iload 3 /* to */
            iload 2 /* mid */
            isub
            iconst_1
            iushr
            istore 7 /* len22 */
        start local 7 // int len22
        17: .line 85
            iload 2 /* mid */
            iload 7 /* len22 */
            iadd
            istore 5 /* second_cut */
        start local 5 // int second_cut
        18: .line 86
            aload 0 /* this */
            iload 1 /* from */
            iload 2 /* mid */
            iload 5 /* second_cut */
            invokevirtual org.apache.lucene.util.Sorter.upper:(III)I
            istore 4 /* first_cut */
        start local 4 // int first_cut
        19: .line 87
            iload 4 /* first_cut */
            iload 1 /* from */
            isub
            istore 6 /* len11 */
        start local 6 // int len11
        20: .line 89
      StackMap locals: org.apache.lucene.util.Sorter int int int int int int int
      StackMap stack:
            aload 0 /* this */
            iload 4 /* first_cut */
            iload 2 /* mid */
            iload 5 /* second_cut */
            invokevirtual org.apache.lucene.util.Sorter.rotate:(III)V
        21: .line 90
            iload 4 /* first_cut */
            iload 7 /* len22 */
            iadd
            istore 8 /* new_mid */
        start local 8 // int new_mid
        22: .line 91
            aload 0 /* this */
            iload 1 /* from */
            iload 4 /* first_cut */
            iload 8 /* new_mid */
            invokevirtual org.apache.lucene.util.Sorter.mergeInPlace:(III)V
        23: .line 92
            aload 0 /* this */
            iload 8 /* new_mid */
            iload 5 /* second_cut */
            iload 3 /* to */
            invokevirtual org.apache.lucene.util.Sorter.mergeInPlace:(III)V
        24: .line 93
            return
        end local 8 // int new_mid
        end local 7 // int len22
        end local 6 // int len11
        end local 5 // int second_cut
        end local 4 // int first_cut
        end local 3 // int to
        end local 2 // int mid
        end local 1 // int from
        end local 0 // org.apache.lucene.util.Sorter this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   25     0        this  Lorg/apache/lucene/util/Sorter;
            0   25     1        from  I
            0   25     2         mid  I
            0   25     3          to  I
           13   16     4   first_cut  I
           19   25     4   first_cut  I
           14   16     5  second_cut  I
           18   25     5  second_cut  I
           12   16     6       len11  I
           20   25     6       len11  I
           15   16     7       len22  I
           17   25     7       len22  I
           22   25     8     new_mid  I
    MethodParameters:
      Name  Flags
      from  
      mid   
      to    

  int lower(int, int, int);
    descriptor: (III)I
    flags: (0x0000) 
    Code:
      stack=3, locals=7, args_size=4
        start local 0 // org.apache.lucene.util.Sorter this
        start local 1 // int from
        start local 2 // int to
        start local 3 // int val
         0: .line 96
            iload 2 /* to */
            iload 1 /* from */
            isub
            istore 4 /* len */
        start local 4 // int len
         1: .line 97
            goto 9
         2: .line 98
      StackMap locals: int
      StackMap stack:
            iload 4 /* len */
            iconst_1
            iushr
            istore 5 /* half */
        start local 5 // int half
         3: .line 99
            iload 1 /* from */
            iload 5 /* half */
            iadd
            istore 6 /* mid */
        start local 6 // int mid
         4: .line 100
            aload 0 /* this */
            iload 6 /* mid */
            iload 3 /* val */
            invokevirtual org.apache.lucene.util.Sorter.compare:(II)I
            ifge 8
         5: .line 101
            iload 6 /* mid */
            iconst_1
            iadd
            istore 1 /* from */
         6: .line 102
            iload 4 /* len */
            iload 5 /* half */
            isub
            iconst_1
            isub
            istore 4 /* len */
         7: .line 103
            goto 9
         8: .line 104
      StackMap locals: int int
      StackMap stack:
            iload 5 /* half */
            istore 4 /* len */
        end local 6 // int mid
        end local 5 // int half
         9: .line 97
      StackMap locals:
      StackMap stack:
            iload 4 /* len */
            ifgt 2
        10: .line 107
            iload 1 /* from */
            ireturn
        end local 4 // int len
        end local 3 // int val
        end local 2 // int to
        end local 1 // int from
        end local 0 // org.apache.lucene.util.Sorter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lorg/apache/lucene/util/Sorter;
            0   11     1  from  I
            0   11     2    to  I
            0   11     3   val  I
            1   11     4   len  I
            3    9     5  half  I
            4    9     6   mid  I
    MethodParameters:
      Name  Flags
      from  
      to    
      val   

  int upper(int, int, int);
    descriptor: (III)I
    flags: (0x0000) 
    Code:
      stack=3, locals=7, args_size=4
        start local 0 // org.apache.lucene.util.Sorter this
        start local 1 // int from
        start local 2 // int to
        start local 3 // int val
         0: .line 111
            iload 2 /* to */
            iload 1 /* from */
            isub
            istore 4 /* len */
        start local 4 // int len
         1: .line 112
            goto 9
         2: .line 113
      StackMap locals: int
      StackMap stack:
            iload 4 /* len */
            iconst_1
            iushr
            istore 5 /* half */
        start local 5 // int half
         3: .line 114
            iload 1 /* from */
            iload 5 /* half */
            iadd
            istore 6 /* mid */
        start local 6 // int mid
         4: .line 115
            aload 0 /* this */
            iload 3 /* val */
            iload 6 /* mid */
            invokevirtual org.apache.lucene.util.Sorter.compare:(II)I
            ifge 7
         5: .line 116
            iload 5 /* half */
            istore 4 /* len */
         6: .line 117
            goto 9
         7: .line 118
      StackMap locals: int int
      StackMap stack:
            iload 6 /* mid */
            iconst_1
            iadd
            istore 1 /* from */
         8: .line 119
            iload 4 /* len */
            iload 5 /* half */
            isub
            iconst_1
            isub
            istore 4 /* len */
        end local 6 // int mid
        end local 5 // int half
         9: .line 112
      StackMap locals:
      StackMap stack:
            iload 4 /* len */
            ifgt 2
        10: .line 122
            iload 1 /* from */
            ireturn
        end local 4 // int len
        end local 3 // int val
        end local 2 // int to
        end local 1 // int from
        end local 0 // org.apache.lucene.util.Sorter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lorg/apache/lucene/util/Sorter;
            0   11     1  from  I
            0   11     2    to  I
            0   11     3   val  I
            1   11     4   len  I
            3    9     5  half  I
            4    9     6   mid  I
    MethodParameters:
      Name  Flags
      from  
      to    
      val   

  int lower2(int, int, int);
    descriptor: (III)I
    flags: (0x0000) 
    Code:
      stack=4, locals=7, args_size=4
        start local 0 // org.apache.lucene.util.Sorter this
        start local 1 // int from
        start local 2 // int to
        start local 3 // int val
         0: .line 127
            iload 2 /* to */
            iconst_1
            isub
            istore 4 /* f */
        start local 4 // int f
         1: iload 2 /* to */
            istore 5 /* t */
        start local 5 // int t
         2: .line 128
            goto 8
         3: .line 129
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            iload 4 /* f */
            iload 3 /* val */
            invokevirtual org.apache.lucene.util.Sorter.compare:(II)I
            ifge 5
         4: .line 130
            aload 0 /* this */
            iload 4 /* f */
            iload 5 /* t */
            iload 3 /* val */
            invokevirtual org.apache.lucene.util.Sorter.lower:(III)I
            ireturn
         5: .line 132
      StackMap locals:
      StackMap stack:
            iload 5 /* t */
            iload 4 /* f */
            isub
            istore 6 /* delta */
        start local 6 // int delta
         6: .line 133
            iload 4 /* f */
            istore 5 /* t */
         7: .line 134
            iload 4 /* f */
            iload 6 /* delta */
            iconst_1
            ishl
            isub
            istore 4 /* f */
        end local 6 // int delta
         8: .line 128
      StackMap locals:
      StackMap stack:
            iload 4 /* f */
            iload 1 /* from */
            if_icmpgt 3
         9: .line 136
            aload 0 /* this */
            iload 1 /* from */
            iload 5 /* t */
            iload 3 /* val */
            invokevirtual org.apache.lucene.util.Sorter.lower:(III)I
            ireturn
        end local 5 // int t
        end local 4 // int f
        end local 3 // int val
        end local 2 // int to
        end local 1 // int from
        end local 0 // org.apache.lucene.util.Sorter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   10     0   this  Lorg/apache/lucene/util/Sorter;
            0   10     1   from  I
            0   10     2     to  I
            0   10     3    val  I
            1   10     4      f  I
            2   10     5      t  I
            6    8     6  delta  I
    MethodParameters:
      Name  Flags
      from  
      to    
      val   

  int upper2(int, int, int);
    descriptor: (III)I
    flags: (0x0000) 
    Code:
      stack=4, locals=7, args_size=4
        start local 0 // org.apache.lucene.util.Sorter this
        start local 1 // int from
        start local 2 // int to
        start local 3 // int val
         0: .line 141
            iload 1 /* from */
            istore 4 /* f */
        start local 4 // int f
         1: iload 4 /* f */
            iconst_1
            iadd
            istore 5 /* t */
        start local 5 // int t
         2: .line 142
            goto 8
         3: .line 143
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            iload 5 /* t */
            iload 3 /* val */
            invokevirtual org.apache.lucene.util.Sorter.compare:(II)I
            ifle 5
         4: .line 144
            aload 0 /* this */
            iload 4 /* f */
            iload 5 /* t */
            iload 3 /* val */
            invokevirtual org.apache.lucene.util.Sorter.upper:(III)I
            ireturn
         5: .line 146
      StackMap locals:
      StackMap stack:
            iload 5 /* t */
            iload 4 /* f */
            isub
            istore 6 /* delta */
        start local 6 // int delta
         6: .line 147
            iload 5 /* t */
            istore 4 /* f */
         7: .line 148
            iload 5 /* t */
            iload 6 /* delta */
            iconst_1
            ishl
            iadd
            istore 5 /* t */
        end local 6 // int delta
         8: .line 142
      StackMap locals:
      StackMap stack:
            iload 5 /* t */
            iload 2 /* to */
            if_icmplt 3
         9: .line 150
            aload 0 /* this */
            iload 4 /* f */
            iload 2 /* to */
            iload 3 /* val */
            invokevirtual org.apache.lucene.util.Sorter.upper:(III)I
            ireturn
        end local 5 // int t
        end local 4 // int f
        end local 3 // int val
        end local 2 // int to
        end local 1 // int from
        end local 0 // org.apache.lucene.util.Sorter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   10     0   this  Lorg/apache/lucene/util/Sorter;
            0   10     1   from  I
            0   10     2     to  I
            0   10     3    val  I
            1   10     4      f  I
            2   10     5      t  I
            6    8     6  delta  I
    MethodParameters:
      Name  Flags
      from  
      to    
      val   

  final void reverse(int, int);
    descriptor: (II)V
    flags: (0x0010) ACC_FINAL
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.apache.lucene.util.Sorter this
        start local 1 // int from
        start local 2 // int to
         0: .line 154
            iinc 2 /* to */ -1
            goto 3
         1: .line 155
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* from */
            iload 2 /* to */
            invokevirtual org.apache.lucene.util.Sorter.swap:(II)V
         2: .line 154
            iinc 1 /* from */ 1
            iinc 2 /* to */ -1
      StackMap locals:
      StackMap stack:
         3: iload 1 /* from */
            iload 2 /* to */
            if_icmplt 1
         4: .line 157
            return
        end local 2 // int to
        end local 1 // int from
        end local 0 // org.apache.lucene.util.Sorter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/apache/lucene/util/Sorter;
            0    5     1  from  I
            0    5     2    to  I
    MethodParameters:
      Name  Flags
      from  
      to    

  final void rotate(int, int, int);
    descriptor: (III)V
    flags: (0x0010) ACC_FINAL
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.apache.lucene.util.Sorter this
        start local 1 // int lo
        start local 2 // int mid
        start local 3 // int hi
         0: .line 160
            getstatic org.apache.lucene.util.Sorter.$assertionsDisabled:Z
            ifne 2
            iload 1 /* lo */
            iload 2 /* mid */
            if_icmpgt 1
            iload 2 /* mid */
            iload 3 /* hi */
            if_icmple 2
      StackMap locals:
      StackMap stack:
         1: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 161
      StackMap locals:
      StackMap stack:
            iload 1 /* lo */
            iload 2 /* mid */
            if_icmpeq 3
            iload 2 /* mid */
            iload 3 /* hi */
            if_icmpne 4
         3: .line 162
      StackMap locals:
      StackMap stack:
            return
         4: .line 164
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* lo */
            iload 2 /* mid */
            iload 3 /* hi */
            invokevirtual org.apache.lucene.util.Sorter.doRotate:(III)V
         5: .line 165
            return
        end local 3 // int hi
        end local 2 // int mid
        end local 1 // int lo
        end local 0 // org.apache.lucene.util.Sorter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/apache/lucene/util/Sorter;
            0    6     1    lo  I
            0    6     2   mid  I
            0    6     3    hi  I
    MethodParameters:
      Name  Flags
      lo    
      mid   
      hi    

  void doRotate(int, int, int);
    descriptor: (III)V
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // org.apache.lucene.util.Sorter this
        start local 1 // int lo
        start local 2 // int mid
        start local 3 // int hi
         0: .line 168
            iload 2 /* mid */
            iload 1 /* lo */
            isub
            iload 3 /* hi */
            iload 2 /* mid */
            isub
            if_icmpne 5
         1: .line 170
            goto 3
         2: .line 171
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* lo */
            iinc 1 /* lo */ 1
            iload 2 /* mid */
            iinc 2 /* mid */ 1
            invokevirtual org.apache.lucene.util.Sorter.swap:(II)V
         3: .line 170
      StackMap locals:
      StackMap stack:
            iload 2 /* mid */
            iload 3 /* hi */
            if_icmplt 2
         4: .line 173
            goto 8
         5: .line 174
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* lo */
            iload 2 /* mid */
            invokevirtual org.apache.lucene.util.Sorter.reverse:(II)V
         6: .line 175
            aload 0 /* this */
            iload 2 /* mid */
            iload 3 /* hi */
            invokevirtual org.apache.lucene.util.Sorter.reverse:(II)V
         7: .line 176
            aload 0 /* this */
            iload 1 /* lo */
            iload 3 /* hi */
            invokevirtual org.apache.lucene.util.Sorter.reverse:(II)V
         8: .line 178
      StackMap locals:
      StackMap stack:
            return
        end local 3 // int hi
        end local 2 // int mid
        end local 1 // int lo
        end local 0 // org.apache.lucene.util.Sorter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lorg/apache/lucene/util/Sorter;
            0    9     1    lo  I
            0    9     2   mid  I
            0    9     3    hi  I
    MethodParameters:
      Name  Flags
      lo    
      mid   
      hi    

  void binarySort(int, int);
    descriptor: (II)V
    flags: (0x0000) 
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.apache.lucene.util.Sorter this
        start local 1 // int from
        start local 2 // int to
         0: .line 187
            aload 0 /* this */
            iload 1 /* from */
            iload 2 /* to */
            iload 1 /* from */
            iconst_1
            iadd
            invokevirtual org.apache.lucene.util.Sorter.binarySort:(III)V
         1: .line 188
            return
        end local 2 // int to
        end local 1 // int from
        end local 0 // org.apache.lucene.util.Sorter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/lucene/util/Sorter;
            0    2     1  from  I
            0    2     2    to  I
    MethodParameters:
      Name  Flags
      from  
      to    

  void binarySort(int, int, int);
    descriptor: (III)V
    flags: (0x0000) 
    Code:
      stack=3, locals=8, args_size=4
        start local 0 // org.apache.lucene.util.Sorter this
        start local 1 // int from
        start local 2 // int to
        start local 3 // int i
         0: .line 191
            goto 18
         1: .line 192
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 3 /* i */
            invokevirtual org.apache.lucene.util.Sorter.setPivot:(I)V
         2: .line 193
            iload 1 /* from */
            istore 4 /* l */
        start local 4 // int l
         3: .line 194
            iload 3 /* i */
            iconst_1
            isub
            istore 5 /* h */
        start local 5 // int h
         4: .line 195
            goto 11
         5: .line 196
      StackMap locals: int int
      StackMap stack:
            iload 4 /* l */
            iload 5 /* h */
            iadd
            iconst_1
            iushr
            istore 6 /* mid */
        start local 6 // int mid
         6: .line 197
            aload 0 /* this */
            iload 6 /* mid */
            invokevirtual org.apache.lucene.util.Sorter.comparePivot:(I)I
            istore 7 /* cmp */
        start local 7 // int cmp
         7: .line 198
            iload 7 /* cmp */
            ifge 10
         8: .line 199
            iload 6 /* mid */
            iconst_1
            isub
            istore 5 /* h */
         9: .line 200
            goto 11
        10: .line 201
      StackMap locals: int int
      StackMap stack:
            iload 6 /* mid */
            iconst_1
            iadd
            istore 4 /* l */
        end local 7 // int cmp
        end local 6 // int mid
        11: .line 195
      StackMap locals:
      StackMap stack:
            iload 4 /* l */
            iload 5 /* h */
            if_icmple 5
        12: .line 204
            iload 3 /* i */
            istore 6 /* j */
        start local 6 // int j
        13: goto 16
        14: .line 205
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iload 6 /* j */
            iconst_1
            isub
            iload 6 /* j */
            invokevirtual org.apache.lucene.util.Sorter.swap:(II)V
        15: .line 204
            iinc 6 /* j */ -1
      StackMap locals:
      StackMap stack:
        16: iload 6 /* j */
            iload 4 /* l */
            if_icmpgt 14
        end local 6 // int j
        end local 5 // int h
        end local 4 // int l
        17: .line 191
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        18: iload 3 /* i */
            iload 2 /* to */
            if_icmplt 1
        19: .line 208
            return
        end local 3 // int i
        end local 2 // int to
        end local 1 // int from
        end local 0 // org.apache.lucene.util.Sorter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   20     0  this  Lorg/apache/lucene/util/Sorter;
            0   20     1  from  I
            0   20     2    to  I
            0   20     3     i  I
            3   17     4     l  I
            4   17     5     h  I
            6   11     6   mid  I
            7   11     7   cmp  I
           13   17     6     j  I
    MethodParameters:
      Name  Flags
      from  
      to    
      i     

  void heapSort(int, int);
    descriptor: (II)V
    flags: (0x0000) 
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.apache.lucene.util.Sorter this
        start local 1 // int from
        start local 2 // int to
         0: .line 216
            iload 2 /* to */
            iload 1 /* from */
            isub
            iconst_1
            if_icmpgt 2
         1: .line 217
            return
         2: .line 219
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* from */
            iload 2 /* to */
            invokevirtual org.apache.lucene.util.Sorter.heapify:(II)V
         3: .line 220
            iload 2 /* to */
            iconst_1
            isub
            istore 3 /* end */
        start local 3 // int end
         4: goto 8
         5: .line 221
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iload 1 /* from */
            iload 3 /* end */
            invokevirtual org.apache.lucene.util.Sorter.swap:(II)V
         6: .line 222
            aload 0 /* this */
            iload 1 /* from */
            iload 1 /* from */
            iload 3 /* end */
            invokevirtual org.apache.lucene.util.Sorter.siftDown:(III)V
         7: .line 220
            iinc 3 /* end */ -1
      StackMap locals:
      StackMap stack:
         8: iload 3 /* end */
            iload 1 /* from */
            if_icmpgt 5
        end local 3 // int end
         9: .line 224
            return
        end local 2 // int to
        end local 1 // int from
        end local 0 // org.apache.lucene.util.Sorter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lorg/apache/lucene/util/Sorter;
            0   10     1  from  I
            0   10     2    to  I
            4    9     3   end  I
    MethodParameters:
      Name  Flags
      from  
      to    

  void heapify(int, int);
    descriptor: (II)V
    flags: (0x0000) 
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.apache.lucene.util.Sorter this
        start local 1 // int from
        start local 2 // int to
         0: .line 227
            iload 1 /* from */
            iload 2 /* to */
            iconst_1
            isub
            invokestatic org.apache.lucene.util.Sorter.heapParent:(II)I
            istore 3 /* i */
        start local 3 // int i
         1: goto 4
         2: .line 228
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iload 3 /* i */
            iload 1 /* from */
            iload 2 /* to */
            invokevirtual org.apache.lucene.util.Sorter.siftDown:(III)V
         3: .line 227
            iinc 3 /* i */ -1
      StackMap locals:
      StackMap stack:
         4: iload 3 /* i */
            iload 1 /* from */
            if_icmpge 2
        end local 3 // int i
         5: .line 230
            return
        end local 2 // int to
        end local 1 // int from
        end local 0 // org.apache.lucene.util.Sorter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/apache/lucene/util/Sorter;
            0    6     1  from  I
            0    6     2    to  I
            1    5     3     i  I
    MethodParameters:
      Name  Flags
      from  
      to    

  void siftDown(int, int, int);
    descriptor: (III)V
    flags: (0x0000) 
    Code:
      stack=3, locals=6, args_size=4
        start local 0 // org.apache.lucene.util.Sorter this
        start local 1 // int i
        start local 2 // int from
        start local 3 // int to
         0: .line 233
            iload 2 /* from */
            iload 1 /* i */
            invokestatic org.apache.lucene.util.Sorter.heapChild:(II)I
            istore 4 /* leftChild */
        start local 4 // int leftChild
         1: goto 15
         2: .line 234
      StackMap locals: int
      StackMap stack:
            iload 4 /* leftChild */
            iconst_1
            iadd
            istore 5 /* rightChild */
        start local 5 // int rightChild
         3: .line 235
            aload 0 /* this */
            iload 1 /* i */
            iload 4 /* leftChild */
            invokevirtual org.apache.lucene.util.Sorter.compare:(II)I
            ifge 11
         4: .line 236
            iload 5 /* rightChild */
            iload 3 /* to */
            if_icmpge 8
            aload 0 /* this */
            iload 4 /* leftChild */
            iload 5 /* rightChild */
            invokevirtual org.apache.lucene.util.Sorter.compare:(II)I
            ifge 8
         5: .line 237
            aload 0 /* this */
            iload 1 /* i */
            iload 5 /* rightChild */
            invokevirtual org.apache.lucene.util.Sorter.swap:(II)V
         6: .line 238
            iload 5 /* rightChild */
            istore 1 /* i */
         7: .line 239
            goto 14
         8: .line 240
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iload 1 /* i */
            iload 4 /* leftChild */
            invokevirtual org.apache.lucene.util.Sorter.swap:(II)V
         9: .line 241
            iload 4 /* leftChild */
            istore 1 /* i */
        10: .line 243
            goto 14
      StackMap locals:
      StackMap stack:
        11: iload 5 /* rightChild */
            iload 3 /* to */
            if_icmpge 16
            aload 0 /* this */
            iload 1 /* i */
            iload 5 /* rightChild */
            invokevirtual org.apache.lucene.util.Sorter.compare:(II)I
            ifge 16
        12: .line 244
            aload 0 /* this */
            iload 1 /* i */
            iload 5 /* rightChild */
            invokevirtual org.apache.lucene.util.Sorter.swap:(II)V
        13: .line 245
            iload 5 /* rightChild */
            istore 1 /* i */
        end local 5 // int rightChild
        14: .line 233
      StackMap locals:
      StackMap stack:
            iload 2 /* from */
            iload 1 /* i */
            invokestatic org.apache.lucene.util.Sorter.heapChild:(II)I
            istore 4 /* leftChild */
      StackMap locals:
      StackMap stack:
        15: iload 4 /* leftChild */
            iload 3 /* to */
            if_icmplt 2
        end local 4 // int leftChild
        16: .line 250
      StackMap locals:
      StackMap stack:
            return
        end local 3 // int to
        end local 2 // int from
        end local 1 // int i
        end local 0 // org.apache.lucene.util.Sorter this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   17     0        this  Lorg/apache/lucene/util/Sorter;
            0   17     1           i  I
            0   17     2        from  I
            0   17     3          to  I
            1   16     4   leftChild  I
            3   14     5  rightChild  I
    MethodParameters:
      Name  Flags
      i     
      from  
      to    

  static int heapParent(int, int);
    descriptor: (II)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // int from
        start local 1 // int i
         0: .line 253
            iload 1 /* i */
            iconst_1
            isub
            iload 0 /* from */
            isub
            iconst_1
            iushr
            iload 0 /* from */
            iadd
            ireturn
        end local 1 // int i
        end local 0 // int from
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  from  I
            0    1     1     i  I
    MethodParameters:
      Name  Flags
      from  
      i     

  static int heapChild(int, int);
    descriptor: (II)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // int from
        start local 1 // int i
         0: .line 257
            iload 1 /* i */
            iload 0 /* from */
            isub
            iconst_1
            ishl
            iconst_1
            iadd
            iload 0 /* from */
            iadd
            ireturn
        end local 1 // int i
        end local 0 // int from
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  from  I
            0    1     1     i  I
    MethodParameters:
      Name  Flags
      from  
      i     
}
SourceFile: "Sorter.java"