public final class org.apache.lucene.util.UnicodeUtil
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.apache.lucene.util.UnicodeUtil
  super_class: java.lang.Object
{
  public static final org.apache.lucene.util.BytesRef BIG_TERM;
    descriptor: Lorg/apache/lucene/util/BytesRef;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final int UNI_SUR_HIGH_START;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 55296

  public static final int UNI_SUR_HIGH_END;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 56319

  public static final int UNI_SUR_LOW_START;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 56320

  public static final int UNI_SUR_LOW_END;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 57343

  public static final int UNI_REPLACEMENT_CHAR;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 65533

  private static final long UNI_MAX_BMP;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 65535

  private static final long HALF_SHIFT;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 10

  private static final long HALF_MASK;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1023

  private static final int SURROGATE_OFFSET;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: -56613888

  public static final int MAX_UTF8_BYTES_PER_CHAR;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  static final int[] utf8CodeLength;
    descriptor: [I
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  private static final int LEAD_SURROGATE_SHIFT_;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 10

  private static final int TRAIL_SURROGATE_MASK_;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1023

  private static final int TRAIL_SURROGATE_MIN_VALUE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 56320

  private static final int LEAD_SURROGATE_MIN_VALUE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 55296

  private static final int SUPPLEMENTARY_MIN_VALUE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 65536

  private static final int LEAD_SURROGATE_OFFSET_;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 55232

  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=6, locals=0, args_size=0
         0: .line 97
            ldc Lorg/apache/lucene/util/UnicodeUtil;
            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.UnicodeUtil.$assertionsDisabled:Z
         3: .line 104
            new org.apache.lucene.util.BytesRef
            dup
         4: .line 105
            bipush 10
            newarray 8
            dup
            iconst_0
            iconst_m1
            bastore
            dup
            iconst_1
            iconst_m1
            bastore
            dup
            iconst_2
            iconst_m1
            bastore
            dup
            iconst_3
            iconst_m1
            bastore
            dup
            iconst_4
            iconst_m1
            bastore
            dup
            iconst_5
            iconst_m1
            bastore
            dup
            bipush 6
            iconst_m1
            bastore
            dup
            bipush 7
            iconst_m1
            bastore
            dup
            bipush 8
            iconst_m1
            bastore
            dup
            bipush 9
            iconst_m1
            bastore
         5: .line 104
            invokespecial org.apache.lucene.util.BytesRef.<init>:([B)V
            putstatic org.apache.lucene.util.UnicodeUtil.BIG_TERM:Lorg/apache/lucene/util/BytesRef;
         6: .line 384
            sipush 248
            newarray 10
            dup
            iconst_0
         7: .line 385
            iconst_1
            iastore
            dup
            iconst_1
            iconst_1
            iastore
            dup
            iconst_2
            iconst_1
            iastore
            dup
            iconst_3
            iconst_1
            iastore
            dup
            iconst_4
            iconst_1
            iastore
            dup
            iconst_5
            iconst_1
            iastore
            dup
            bipush 6
            iconst_1
            iastore
            dup
            bipush 7
            iconst_1
            iastore
            dup
            bipush 8
            iconst_1
            iastore
            dup
            bipush 9
            iconst_1
            iastore
            dup
            bipush 10
            iconst_1
            iastore
            dup
            bipush 11
            iconst_1
            iastore
            dup
            bipush 12
            iconst_1
            iastore
            dup
            bipush 13
            iconst_1
            iastore
            dup
            bipush 14
            iconst_1
            iastore
            dup
            bipush 15
            iconst_1
            iastore
            dup
            bipush 16
         8: .line 386
            iconst_1
            iastore
            dup
            bipush 17
            iconst_1
            iastore
            dup
            bipush 18
            iconst_1
            iastore
            dup
            bipush 19
            iconst_1
            iastore
            dup
            bipush 20
            iconst_1
            iastore
            dup
            bipush 21
            iconst_1
            iastore
            dup
            bipush 22
            iconst_1
            iastore
            dup
            bipush 23
            iconst_1
            iastore
            dup
            bipush 24
            iconst_1
            iastore
            dup
            bipush 25
            iconst_1
            iastore
            dup
            bipush 26
            iconst_1
            iastore
            dup
            bipush 27
            iconst_1
            iastore
            dup
            bipush 28
            iconst_1
            iastore
            dup
            bipush 29
            iconst_1
            iastore
            dup
            bipush 30
            iconst_1
            iastore
            dup
            bipush 31
            iconst_1
            iastore
            dup
            bipush 32
         9: .line 387
            iconst_1
            iastore
            dup
            bipush 33
            iconst_1
            iastore
            dup
            bipush 34
            iconst_1
            iastore
            dup
            bipush 35
            iconst_1
            iastore
            dup
            bipush 36
            iconst_1
            iastore
            dup
            bipush 37
            iconst_1
            iastore
            dup
            bipush 38
            iconst_1
            iastore
            dup
            bipush 39
            iconst_1
            iastore
            dup
            bipush 40
            iconst_1
            iastore
            dup
            bipush 41
            iconst_1
            iastore
            dup
            bipush 42
            iconst_1
            iastore
            dup
            bipush 43
            iconst_1
            iastore
            dup
            bipush 44
            iconst_1
            iastore
            dup
            bipush 45
            iconst_1
            iastore
            dup
            bipush 46
            iconst_1
            iastore
            dup
            bipush 47
            iconst_1
            iastore
            dup
            bipush 48
        10: .line 388
            iconst_1
            iastore
            dup
            bipush 49
            iconst_1
            iastore
            dup
            bipush 50
            iconst_1
            iastore
            dup
            bipush 51
            iconst_1
            iastore
            dup
            bipush 52
            iconst_1
            iastore
            dup
            bipush 53
            iconst_1
            iastore
            dup
            bipush 54
            iconst_1
            iastore
            dup
            bipush 55
            iconst_1
            iastore
            dup
            bipush 56
            iconst_1
            iastore
            dup
            bipush 57
            iconst_1
            iastore
            dup
            bipush 58
            iconst_1
            iastore
            dup
            bipush 59
            iconst_1
            iastore
            dup
            bipush 60
            iconst_1
            iastore
            dup
            bipush 61
            iconst_1
            iastore
            dup
            bipush 62
            iconst_1
            iastore
            dup
            bipush 63
            iconst_1
            iastore
            dup
            bipush 64
        11: .line 389
            iconst_1
            iastore
            dup
            bipush 65
            iconst_1
            iastore
            dup
            bipush 66
            iconst_1
            iastore
            dup
            bipush 67
            iconst_1
            iastore
            dup
            bipush 68
            iconst_1
            iastore
            dup
            bipush 69
            iconst_1
            iastore
            dup
            bipush 70
            iconst_1
            iastore
            dup
            bipush 71
            iconst_1
            iastore
            dup
            bipush 72
            iconst_1
            iastore
            dup
            bipush 73
            iconst_1
            iastore
            dup
            bipush 74
            iconst_1
            iastore
            dup
            bipush 75
            iconst_1
            iastore
            dup
            bipush 76
            iconst_1
            iastore
            dup
            bipush 77
            iconst_1
            iastore
            dup
            bipush 78
            iconst_1
            iastore
            dup
            bipush 79
            iconst_1
            iastore
            dup
            bipush 80
        12: .line 390
            iconst_1
            iastore
            dup
            bipush 81
            iconst_1
            iastore
            dup
            bipush 82
            iconst_1
            iastore
            dup
            bipush 83
            iconst_1
            iastore
            dup
            bipush 84
            iconst_1
            iastore
            dup
            bipush 85
            iconst_1
            iastore
            dup
            bipush 86
            iconst_1
            iastore
            dup
            bipush 87
            iconst_1
            iastore
            dup
            bipush 88
            iconst_1
            iastore
            dup
            bipush 89
            iconst_1
            iastore
            dup
            bipush 90
            iconst_1
            iastore
            dup
            bipush 91
            iconst_1
            iastore
            dup
            bipush 92
            iconst_1
            iastore
            dup
            bipush 93
            iconst_1
            iastore
            dup
            bipush 94
            iconst_1
            iastore
            dup
            bipush 95
            iconst_1
            iastore
            dup
            bipush 96
        13: .line 391
            iconst_1
            iastore
            dup
            bipush 97
            iconst_1
            iastore
            dup
            bipush 98
            iconst_1
            iastore
            dup
            bipush 99
            iconst_1
            iastore
            dup
            bipush 100
            iconst_1
            iastore
            dup
            bipush 101
            iconst_1
            iastore
            dup
            bipush 102
            iconst_1
            iastore
            dup
            bipush 103
            iconst_1
            iastore
            dup
            bipush 104
            iconst_1
            iastore
            dup
            bipush 105
            iconst_1
            iastore
            dup
            bipush 106
            iconst_1
            iastore
            dup
            bipush 107
            iconst_1
            iastore
            dup
            bipush 108
            iconst_1
            iastore
            dup
            bipush 109
            iconst_1
            iastore
            dup
            bipush 110
            iconst_1
            iastore
            dup
            bipush 111
            iconst_1
            iastore
            dup
            bipush 112
        14: .line 392
            iconst_1
            iastore
            dup
            bipush 113
            iconst_1
            iastore
            dup
            bipush 114
            iconst_1
            iastore
            dup
            bipush 115
            iconst_1
            iastore
            dup
            bipush 116
            iconst_1
            iastore
            dup
            bipush 117
            iconst_1
            iastore
            dup
            bipush 118
            iconst_1
            iastore
            dup
            bipush 119
            iconst_1
            iastore
            dup
            bipush 120
            iconst_1
            iastore
            dup
            bipush 121
            iconst_1
            iastore
            dup
            bipush 122
            iconst_1
            iastore
            dup
            bipush 123
            iconst_1
            iastore
            dup
            bipush 124
            iconst_1
            iastore
            dup
            bipush 125
            iconst_1
            iastore
            dup
            bipush 126
            iconst_1
            iastore
            dup
            bipush 127
            iconst_1
            iastore
            dup
            sipush 128
        15: .line 393
            ldc -2147483648
            iastore
            dup
            sipush 129
            ldc -2147483648
            iastore
            dup
            sipush 130
            ldc -2147483648
            iastore
            dup
            sipush 131
            ldc -2147483648
            iastore
            dup
            sipush 132
            ldc -2147483648
            iastore
            dup
            sipush 133
            ldc -2147483648
            iastore
            dup
            sipush 134
            ldc -2147483648
            iastore
            dup
            sipush 135
            ldc -2147483648
            iastore
            dup
            sipush 136
            ldc -2147483648
            iastore
            dup
            sipush 137
            ldc -2147483648
            iastore
            dup
            sipush 138
            ldc -2147483648
            iastore
            dup
            sipush 139
            ldc -2147483648
            iastore
            dup
            sipush 140
            ldc -2147483648
            iastore
            dup
            sipush 141
            ldc -2147483648
            iastore
            dup
            sipush 142
            ldc -2147483648
            iastore
            dup
            sipush 143
            ldc -2147483648
            iastore
            dup
            sipush 144
        16: .line 394
            ldc -2147483648
            iastore
            dup
            sipush 145
            ldc -2147483648
            iastore
            dup
            sipush 146
            ldc -2147483648
            iastore
            dup
            sipush 147
            ldc -2147483648
            iastore
            dup
            sipush 148
            ldc -2147483648
            iastore
            dup
            sipush 149
            ldc -2147483648
            iastore
            dup
            sipush 150
            ldc -2147483648
            iastore
            dup
            sipush 151
            ldc -2147483648
            iastore
            dup
            sipush 152
            ldc -2147483648
            iastore
            dup
            sipush 153
            ldc -2147483648
            iastore
            dup
            sipush 154
            ldc -2147483648
            iastore
            dup
            sipush 155
            ldc -2147483648
            iastore
            dup
            sipush 156
            ldc -2147483648
            iastore
            dup
            sipush 157
            ldc -2147483648
            iastore
            dup
            sipush 158
            ldc -2147483648
            iastore
            dup
            sipush 159
            ldc -2147483648
            iastore
            dup
            sipush 160
        17: .line 395
            ldc -2147483648
            iastore
            dup
            sipush 161
            ldc -2147483648
            iastore
            dup
            sipush 162
            ldc -2147483648
            iastore
            dup
            sipush 163
            ldc -2147483648
            iastore
            dup
            sipush 164
            ldc -2147483648
            iastore
            dup
            sipush 165
            ldc -2147483648
            iastore
            dup
            sipush 166
            ldc -2147483648
            iastore
            dup
            sipush 167
            ldc -2147483648
            iastore
            dup
            sipush 168
            ldc -2147483648
            iastore
            dup
            sipush 169
            ldc -2147483648
            iastore
            dup
            sipush 170
            ldc -2147483648
            iastore
            dup
            sipush 171
            ldc -2147483648
            iastore
            dup
            sipush 172
            ldc -2147483648
            iastore
            dup
            sipush 173
            ldc -2147483648
            iastore
            dup
            sipush 174
            ldc -2147483648
            iastore
            dup
            sipush 175
            ldc -2147483648
            iastore
            dup
            sipush 176
        18: .line 396
            ldc -2147483648
            iastore
            dup
            sipush 177
            ldc -2147483648
            iastore
            dup
            sipush 178
            ldc -2147483648
            iastore
            dup
            sipush 179
            ldc -2147483648
            iastore
            dup
            sipush 180
            ldc -2147483648
            iastore
            dup
            sipush 181
            ldc -2147483648
            iastore
            dup
            sipush 182
            ldc -2147483648
            iastore
            dup
            sipush 183
            ldc -2147483648
            iastore
            dup
            sipush 184
            ldc -2147483648
            iastore
            dup
            sipush 185
            ldc -2147483648
            iastore
            dup
            sipush 186
            ldc -2147483648
            iastore
            dup
            sipush 187
            ldc -2147483648
            iastore
            dup
            sipush 188
            ldc -2147483648
            iastore
            dup
            sipush 189
            ldc -2147483648
            iastore
            dup
            sipush 190
            ldc -2147483648
            iastore
            dup
            sipush 191
            ldc -2147483648
            iastore
            dup
            sipush 192
        19: .line 397
            iconst_2
            iastore
            dup
            sipush 193
            iconst_2
            iastore
            dup
            sipush 194
            iconst_2
            iastore
            dup
            sipush 195
            iconst_2
            iastore
            dup
            sipush 196
            iconst_2
            iastore
            dup
            sipush 197
            iconst_2
            iastore
            dup
            sipush 198
            iconst_2
            iastore
            dup
            sipush 199
            iconst_2
            iastore
            dup
            sipush 200
            iconst_2
            iastore
            dup
            sipush 201
            iconst_2
            iastore
            dup
            sipush 202
            iconst_2
            iastore
            dup
            sipush 203
            iconst_2
            iastore
            dup
            sipush 204
            iconst_2
            iastore
            dup
            sipush 205
            iconst_2
            iastore
            dup
            sipush 206
            iconst_2
            iastore
            dup
            sipush 207
            iconst_2
            iastore
            dup
            sipush 208
        20: .line 398
            iconst_2
            iastore
            dup
            sipush 209
            iconst_2
            iastore
            dup
            sipush 210
            iconst_2
            iastore
            dup
            sipush 211
            iconst_2
            iastore
            dup
            sipush 212
            iconst_2
            iastore
            dup
            sipush 213
            iconst_2
            iastore
            dup
            sipush 214
            iconst_2
            iastore
            dup
            sipush 215
            iconst_2
            iastore
            dup
            sipush 216
            iconst_2
            iastore
            dup
            sipush 217
            iconst_2
            iastore
            dup
            sipush 218
            iconst_2
            iastore
            dup
            sipush 219
            iconst_2
            iastore
            dup
            sipush 220
            iconst_2
            iastore
            dup
            sipush 221
            iconst_2
            iastore
            dup
            sipush 222
            iconst_2
            iastore
            dup
            sipush 223
            iconst_2
            iastore
            dup
            sipush 224
        21: .line 399
            iconst_3
            iastore
            dup
            sipush 225
            iconst_3
            iastore
            dup
            sipush 226
            iconst_3
            iastore
            dup
            sipush 227
            iconst_3
            iastore
            dup
            sipush 228
            iconst_3
            iastore
            dup
            sipush 229
            iconst_3
            iastore
            dup
            sipush 230
            iconst_3
            iastore
            dup
            sipush 231
            iconst_3
            iastore
            dup
            sipush 232
            iconst_3
            iastore
            dup
            sipush 233
            iconst_3
            iastore
            dup
            sipush 234
            iconst_3
            iastore
            dup
            sipush 235
            iconst_3
            iastore
            dup
            sipush 236
            iconst_3
            iastore
            dup
            sipush 237
            iconst_3
            iastore
            dup
            sipush 238
            iconst_3
            iastore
            dup
            sipush 239
            iconst_3
            iastore
            dup
            sipush 240
        22: .line 400
            iconst_4
            iastore
            dup
            sipush 241
            iconst_4
            iastore
            dup
            sipush 242
            iconst_4
            iastore
            dup
            sipush 243
            iconst_4
            iastore
            dup
            sipush 244
            iconst_4
            iastore
            dup
            sipush 245
            iconst_4
            iastore
            dup
            sipush 246
            iconst_4
            iastore
            dup
            sipush 247
            iconst_4
            iastore
        23: .line 384
            putstatic org.apache.lucene.util.UnicodeUtil.utf8CodeLength:[I
        24: .line 503
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

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

  public static int UTF16toUTF8(char[], int, int, byte[]);
    descriptor: ([CII[B)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=9, args_size=4
        start local 0 // char[] source
        start local 1 // int offset
        start local 2 // int length
        start local 3 // byte[] out
         0: .line 134
            iconst_0
            istore 4 /* upto */
        start local 4 // int upto
         1: .line 135
            iload 1 /* offset */
            istore 5 /* i */
        start local 5 // int i
         2: .line 136
            iload 1 /* offset */
            iload 2 /* length */
            iadd
            istore 6 /* end */
        start local 6 // int end
         3: .line 138
            goto 29
         4: .line 140
      StackMap locals: int int int
      StackMap stack:
            aload 0 /* source */
            iload 5 /* i */
            iinc 5 /* i */ 1
            caload
            istore 7 /* code */
        start local 7 // int code
         5: .line 142
            iload 7 /* code */
            sipush 128
            if_icmpge 7
         6: .line 143
            aload 3 /* out */
            iload 4 /* upto */
            iinc 4 /* upto */ 1
            iload 7 /* code */
            i2b
            bastore
            goto 29
         7: .line 144
      StackMap locals: int
      StackMap stack:
            iload 7 /* code */
            sipush 2048
            if_icmpge 11
         8: .line 145
            aload 3 /* out */
            iload 4 /* upto */
            iinc 4 /* upto */ 1
            sipush 192
            iload 7 /* code */
            bipush 6
            ishr
            ior
            i2b
            bastore
         9: .line 146
            aload 3 /* out */
            iload 4 /* upto */
            iinc 4 /* upto */ 1
            sipush 128
            iload 7 /* code */
            bipush 63
            iand
            ior
            i2b
            bastore
        10: .line 147
            goto 29
      StackMap locals:
      StackMap stack:
        11: iload 7 /* code */
            ldc 55296
            if_icmplt 12
            iload 7 /* code */
            ldc 57343
            if_icmple 16
        12: .line 148
      StackMap locals:
      StackMap stack:
            aload 3 /* out */
            iload 4 /* upto */
            iinc 4 /* upto */ 1
            sipush 224
            iload 7 /* code */
            bipush 12
            ishr
            ior
            i2b
            bastore
        13: .line 149
            aload 3 /* out */
            iload 4 /* upto */
            iinc 4 /* upto */ 1
            sipush 128
            iload 7 /* code */
            bipush 6
            ishr
            bipush 63
            iand
            ior
            i2b
            bastore
        14: .line 150
            aload 3 /* out */
            iload 4 /* upto */
            iinc 4 /* upto */ 1
            sipush 128
            iload 7 /* code */
            bipush 63
            iand
            ior
            i2b
            bastore
        15: .line 151
            goto 29
        16: .line 154
      StackMap locals:
      StackMap stack:
            iload 7 /* code */
            ldc 56320
            if_icmpge 26
            iload 5 /* i */
            iload 6 /* end */
            if_icmpge 26
        17: .line 155
            aload 0 /* source */
            iload 5 /* i */
            caload
            istore 8 /* utf32 */
        start local 8 // int utf32
        18: .line 157
            iload 8 /* utf32 */
            ldc 56320
            if_icmplt 26
            iload 8 /* utf32 */
            ldc 57343
            if_icmpgt 26
        19: .line 158
            iload 7 /* code */
            bipush 10
            ishl
            iload 8 /* utf32 */
            iadd
            ldc -56613888
            iadd
            istore 8 /* utf32 */
        20: .line 159
            iinc 5 /* i */ 1
        21: .line 160
            aload 3 /* out */
            iload 4 /* upto */
            iinc 4 /* upto */ 1
            sipush 240
            iload 8 /* utf32 */
            bipush 18
            ishr
            ior
            i2b
            bastore
        22: .line 161
            aload 3 /* out */
            iload 4 /* upto */
            iinc 4 /* upto */ 1
            sipush 128
            iload 8 /* utf32 */
            bipush 12
            ishr
            bipush 63
            iand
            ior
            i2b
            bastore
        23: .line 162
            aload 3 /* out */
            iload 4 /* upto */
            iinc 4 /* upto */ 1
            sipush 128
            iload 8 /* utf32 */
            bipush 6
            ishr
            bipush 63
            iand
            ior
            i2b
            bastore
        24: .line 163
            aload 3 /* out */
            iload 4 /* upto */
            iinc 4 /* upto */ 1
            sipush 128
            iload 8 /* utf32 */
            bipush 63
            iand
            ior
            i2b
            bastore
        25: .line 164
            goto 29
        end local 8 // int utf32
        26: .line 169
      StackMap locals:
      StackMap stack:
            aload 3 /* out */
            iload 4 /* upto */
            iinc 4 /* upto */ 1
            bipush -17
            bastore
        27: .line 170
            aload 3 /* out */
            iload 4 /* upto */
            iinc 4 /* upto */ 1
            bipush -65
            bastore
        28: .line 171
            aload 3 /* out */
            iload 4 /* upto */
            iinc 4 /* upto */ 1
            bipush -67
            bastore
        end local 7 // int code
        29: .line 138
      StackMap locals:
      StackMap stack:
            iload 5 /* i */
            iload 6 /* end */
            if_icmplt 4
        30: .line 175
            iload 4 /* upto */
            ireturn
        end local 6 // int end
        end local 5 // int i
        end local 4 // int upto
        end local 3 // byte[] out
        end local 2 // int length
        end local 1 // int offset
        end local 0 // char[] source
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   31     0  source  [C
            0   31     1  offset  I
            0   31     2  length  I
            0   31     3     out  [B
            1   31     4    upto  I
            2   31     5       i  I
            3   31     6     end  I
            5   29     7    code  I
           18   26     8   utf32  I
    MethodParameters:
        Name  Flags
      source  final
      offset  final
      length  final
      out     

  public static int UTF16toUTF8(java.lang.CharSequence, int, int, byte[]);
    descriptor: (Ljava/lang/CharSequence;II[B)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // java.lang.CharSequence s
        start local 1 // int offset
        start local 2 // int length
        start local 3 // byte[] out
         0: .line 183
            aload 0 /* s */
            iload 1 /* offset */
            iload 2 /* length */
            aload 3 /* out */
            iconst_0
            invokestatic org.apache.lucene.util.UnicodeUtil.UTF16toUTF8:(Ljava/lang/CharSequence;II[BI)I
            ireturn
        end local 3 // byte[] out
        end local 2 // int length
        end local 1 // int offset
        end local 0 // java.lang.CharSequence s
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0       s  Ljava/lang/CharSequence;
            0    1     1  offset  I
            0    1     2  length  I
            0    1     3     out  [B
    MethodParameters:
        Name  Flags
      s       final
      offset  final
      length  final
      out     

  public static int UTF16toUTF8(java.lang.CharSequence, int, int, byte[], int);
    descriptor: (Ljava/lang/CharSequence;II[BI)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=10, args_size=5
        start local 0 // java.lang.CharSequence s
        start local 1 // int offset
        start local 2 // int length
        start local 3 // byte[] out
        start local 4 // int outOffset
         0: .line 194
            iload 1 /* offset */
            iload 2 /* length */
            iadd
            istore 5 /* end */
        start local 5 // int end
         1: .line 196
            iload 4 /* outOffset */
            istore 6 /* upto */
        start local 6 // int upto
         2: .line 197
            iload 1 /* offset */
            istore 7 /* i */
        start local 7 // int i
         3: goto 30
         4: .line 198
      StackMap locals: int int int
      StackMap stack:
            aload 0 /* s */
            iload 7 /* i */
            invokeinterface java.lang.CharSequence.charAt:(I)C
            istore 8 /* code */
        start local 8 // int code
         5: .line 200
            iload 8 /* code */
            sipush 128
            if_icmpge 7
         6: .line 201
            aload 3 /* out */
            iload 6 /* upto */
            iinc 6 /* upto */ 1
            iload 8 /* code */
            i2b
            bastore
            goto 29
         7: .line 202
      StackMap locals: int
      StackMap stack:
            iload 8 /* code */
            sipush 2048
            if_icmpge 11
         8: .line 203
            aload 3 /* out */
            iload 6 /* upto */
            iinc 6 /* upto */ 1
            sipush 192
            iload 8 /* code */
            bipush 6
            ishr
            ior
            i2b
            bastore
         9: .line 204
            aload 3 /* out */
            iload 6 /* upto */
            iinc 6 /* upto */ 1
            sipush 128
            iload 8 /* code */
            bipush 63
            iand
            ior
            i2b
            bastore
        10: .line 205
            goto 29
      StackMap locals:
      StackMap stack:
        11: iload 8 /* code */
            ldc 55296
            if_icmplt 12
            iload 8 /* code */
            ldc 57343
            if_icmple 16
        12: .line 206
      StackMap locals:
      StackMap stack:
            aload 3 /* out */
            iload 6 /* upto */
            iinc 6 /* upto */ 1
            sipush 224
            iload 8 /* code */
            bipush 12
            ishr
            ior
            i2b
            bastore
        13: .line 207
            aload 3 /* out */
            iload 6 /* upto */
            iinc 6 /* upto */ 1
            sipush 128
            iload 8 /* code */
            bipush 6
            ishr
            bipush 63
            iand
            ior
            i2b
            bastore
        14: .line 208
            aload 3 /* out */
            iload 6 /* upto */
            iinc 6 /* upto */ 1
            sipush 128
            iload 8 /* code */
            bipush 63
            iand
            ior
            i2b
            bastore
        15: .line 209
            goto 29
        16: .line 212
      StackMap locals:
      StackMap stack:
            iload 8 /* code */
            ldc 56320
            if_icmpge 26
            iload 7 /* i */
            iload 5 /* end */
            iconst_1
            isub
            if_icmpge 26
        17: .line 213
            aload 0 /* s */
            iload 7 /* i */
            iconst_1
            iadd
            invokeinterface java.lang.CharSequence.charAt:(I)C
            istore 9 /* utf32 */
        start local 9 // int utf32
        18: .line 215
            iload 9 /* utf32 */
            ldc 56320
            if_icmplt 26
            iload 9 /* utf32 */
            ldc 57343
            if_icmpgt 26
        19: .line 216
            iload 8 /* code */
            bipush 10
            ishl
            iload 9 /* utf32 */
            iadd
            ldc -56613888
            iadd
            istore 9 /* utf32 */
        20: .line 217
            iinc 7 /* i */ 1
        21: .line 218
            aload 3 /* out */
            iload 6 /* upto */
            iinc 6 /* upto */ 1
            sipush 240
            iload 9 /* utf32 */
            bipush 18
            ishr
            ior
            i2b
            bastore
        22: .line 219
            aload 3 /* out */
            iload 6 /* upto */
            iinc 6 /* upto */ 1
            sipush 128
            iload 9 /* utf32 */
            bipush 12
            ishr
            bipush 63
            iand
            ior
            i2b
            bastore
        23: .line 220
            aload 3 /* out */
            iload 6 /* upto */
            iinc 6 /* upto */ 1
            sipush 128
            iload 9 /* utf32 */
            bipush 6
            ishr
            bipush 63
            iand
            ior
            i2b
            bastore
        24: .line 221
            aload 3 /* out */
            iload 6 /* upto */
            iinc 6 /* upto */ 1
            sipush 128
            iload 9 /* utf32 */
            bipush 63
            iand
            ior
            i2b
            bastore
        25: .line 222
            goto 29
        end local 9 // int utf32
        26: .line 227
      StackMap locals:
      StackMap stack:
            aload 3 /* out */
            iload 6 /* upto */
            iinc 6 /* upto */ 1
            bipush -17
            bastore
        27: .line 228
            aload 3 /* out */
            iload 6 /* upto */
            iinc 6 /* upto */ 1
            bipush -65
            bastore
        28: .line 229
            aload 3 /* out */
            iload 6 /* upto */
            iinc 6 /* upto */ 1
            bipush -67
            bastore
        end local 8 // int code
        29: .line 197
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        30: iload 7 /* i */
            iload 5 /* end */
            if_icmplt 4
        end local 7 // int i
        31: .line 233
            iload 6 /* upto */
            ireturn
        end local 6 // int upto
        end local 5 // int end
        end local 4 // int outOffset
        end local 3 // byte[] out
        end local 2 // int length
        end local 1 // int offset
        end local 0 // java.lang.CharSequence s
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   32     0          s  Ljava/lang/CharSequence;
            0   32     1     offset  I
            0   32     2     length  I
            0   32     3        out  [B
            0   32     4  outOffset  I
            1   32     5        end  I
            2   32     6       upto  I
            3   31     7          i  I
            5   29     8       code  I
           18   26     9      utf32  I
    MethodParameters:
           Name  Flags
      s          final
      offset     final
      length     final
      out        
      outOffset  

  public static int calcUTF16toUTF8Length(java.lang.CharSequence, int, int);
    descriptor: (Ljava/lang/CharSequence;II)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=8, args_size=3
        start local 0 // java.lang.CharSequence s
        start local 1 // int offset
        start local 2 // int len
         0: .line 242
            iload 1 /* offset */
            iload 2 /* len */
            iadd
            istore 3 /* end */
        start local 3 // int end
         1: .line 244
            iconst_0
            istore 4 /* res */
        start local 4 // int res
         2: .line 245
            iload 1 /* offset */
            istore 5 /* i */
        start local 5 // int i
         3: goto 21
         4: .line 246
      StackMap locals: int int int
      StackMap stack:
            aload 0 /* s */
            iload 5 /* i */
            invokeinterface java.lang.CharSequence.charAt:(I)C
            istore 6 /* code */
        start local 6 // int code
         5: .line 248
            iload 6 /* code */
            sipush 128
            if_icmpge 7
         6: .line 249
            iinc 4 /* res */ 1
            goto 20
         7: .line 250
      StackMap locals: int
      StackMap stack:
            iload 6 /* code */
            sipush 2048
            if_icmpge 10
         8: .line 251
            iinc 4 /* res */ 2
         9: .line 252
            goto 20
      StackMap locals:
      StackMap stack:
        10: iload 6 /* code */
            ldc 55296
            if_icmplt 11
            iload 6 /* code */
            ldc 57343
            if_icmple 13
        11: .line 253
      StackMap locals:
      StackMap stack:
            iinc 4 /* res */ 3
        12: .line 254
            goto 20
        13: .line 257
      StackMap locals:
      StackMap stack:
            iload 6 /* code */
            ldc 56320
            if_icmpge 19
            iload 5 /* i */
            iload 3 /* end */
            iconst_1
            isub
            if_icmpge 19
        14: .line 258
            aload 0 /* s */
            iload 5 /* i */
            iconst_1
            iadd
            invokeinterface java.lang.CharSequence.charAt:(I)C
            istore 7 /* utf32 */
        start local 7 // int utf32
        15: .line 260
            iload 7 /* utf32 */
            ldc 56320
            if_icmplt 19
            iload 7 /* utf32 */
            ldc 57343
            if_icmpgt 19
        16: .line 261
            iinc 5 /* i */ 1
        17: .line 262
            iinc 4 /* res */ 4
        18: .line 263
            goto 20
        end local 7 // int utf32
        19: .line 266
      StackMap locals:
      StackMap stack:
            iinc 4 /* res */ 3
        end local 6 // int code
        20: .line 245
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        21: iload 5 /* i */
            iload 3 /* end */
            if_icmplt 4
        end local 5 // int i
        22: .line 270
            iload 4 /* res */
            ireturn
        end local 4 // int res
        end local 3 // int end
        end local 2 // int len
        end local 1 // int offset
        end local 0 // java.lang.CharSequence s
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   23     0       s  Ljava/lang/CharSequence;
            0   23     1  offset  I
            0   23     2     len  I
            1   23     3     end  I
            2   23     4     res  I
            3   22     5       i  I
            5   20     6    code  I
           15   19     7   utf32  I
    MethodParameters:
        Name  Flags
      s       final
      offset  final
      len     final

  public static boolean validUTF16String(java.lang.CharSequence);
    descriptor: (Ljava/lang/CharSequence;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=1
        start local 0 // java.lang.CharSequence s
         0: .line 329
            aload 0 /* s */
            invokeinterface java.lang.CharSequence.length:()I
            istore 1 /* size */
        start local 1 // int size
         1: .line 330
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 14
         3: .line 331
      StackMap locals: int int
      StackMap stack:
            aload 0 /* s */
            iload 2 /* i */
            invokeinterface java.lang.CharSequence.charAt:(I)C
            istore 3 /* ch */
        start local 3 // char ch
         4: .line 332
            iload 3 /* ch */
            ldc 55296
            if_icmplt 11
            iload 3 /* ch */
            ldc 56319
            if_icmpgt 11
         5: .line 333
            iload 2 /* i */
            iload 1 /* size */
            iconst_1
            isub
            if_icmpge 10
         6: .line 334
            iinc 2 /* i */ 1
         7: .line 335
            aload 0 /* s */
            iload 2 /* i */
            invokeinterface java.lang.CharSequence.charAt:(I)C
            istore 4 /* nextCH */
        start local 4 // char nextCH
         8: .line 336
            iload 4 /* nextCH */
            ldc 56320
            if_icmplt 9
            iload 4 /* nextCH */
            ldc 57343
            if_icmple 13
         9: .line 340
      StackMap locals: int int
      StackMap stack:
            iconst_0
            ireturn
        end local 4 // char nextCH
        10: .line 343
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        11: .line 344
      StackMap locals:
      StackMap stack:
            iload 3 /* ch */
            ldc 56320
            if_icmplt 13
            iload 3 /* ch */
            ldc 57343
            if_icmpgt 13
        12: .line 346
            iconst_0
            ireturn
        end local 3 // char ch
        13: .line 330
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 2 /* i */
            iload 1 /* size */
            if_icmplt 3
        end local 2 // int i
        15: .line 349
            iconst_1
            ireturn
        end local 1 // int size
        end local 0 // java.lang.CharSequence s
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   16     0       s  Ljava/lang/CharSequence;
            1   16     1    size  I
            2   15     2       i  I
            4   13     3      ch  C
            8   10     4  nextCH  C
    MethodParameters:
      Name  Flags
      s     

  public static boolean validUTF16String(char[], int);
    descriptor: ([CI)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // char[] s
        start local 1 // int size
         0: .line 353
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         1: goto 13
         2: .line 354
      StackMap locals: int
      StackMap stack:
            aload 0 /* s */
            iload 2 /* i */
            caload
            istore 3 /* ch */
        start local 3 // char ch
         3: .line 355
            iload 3 /* ch */
            ldc 55296
            if_icmplt 10
            iload 3 /* ch */
            ldc 56319
            if_icmpgt 10
         4: .line 356
            iload 2 /* i */
            iload 1 /* size */
            iconst_1
            isub
            if_icmpge 9
         5: .line 357
            iinc 2 /* i */ 1
         6: .line 358
            aload 0 /* s */
            iload 2 /* i */
            caload
            istore 4 /* nextCH */
        start local 4 // char nextCH
         7: .line 359
            iload 4 /* nextCH */
            ldc 56320
            if_icmplt 8
            iload 4 /* nextCH */
            ldc 57343
            if_icmple 12
         8: .line 362
      StackMap locals: int int
      StackMap stack:
            iconst_0
            ireturn
        end local 4 // char nextCH
         9: .line 364
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        10: .line 365
      StackMap locals:
      StackMap stack:
            iload 3 /* ch */
            ldc 56320
            if_icmplt 12
            iload 3 /* ch */
            ldc 57343
            if_icmpgt 12
        11: .line 367
            iconst_0
            ireturn
        end local 3 // char ch
        12: .line 353
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        13: iload 2 /* i */
            iload 1 /* size */
            if_icmplt 2
        end local 2 // int i
        14: .line 370
            iconst_1
            ireturn
        end local 1 // int size
        end local 0 // char[] s
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   15     0       s  [C
            0   15     1    size  I
            1   14     2       i  I
            3   12     3      ch  C
            7    9     4  nextCH  C
    MethodParameters:
      Name  Flags
      s     
      size  

  public static int codePointCount(org.apache.lucene.util.BytesRef);
    descriptor: (Lorg/apache/lucene/util/BytesRef;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=6, args_size=1
        start local 0 // org.apache.lucene.util.BytesRef utf8
         0: .line 416
            aload 0 /* utf8 */
            getfield org.apache.lucene.util.BytesRef.offset:I
            istore 1 /* pos */
        start local 1 // int pos
         1: .line 417
            iload 1 /* pos */
            aload 0 /* utf8 */
            getfield org.apache.lucene.util.BytesRef.length:I
            iadd
            istore 2 /* limit */
        start local 2 // int limit
         2: .line 418
            aload 0 /* utf8 */
            getfield org.apache.lucene.util.BytesRef.bytes:[B
            astore 3 /* bytes */
        start local 3 // byte[] bytes
         3: .line 420
            iconst_0
            istore 4 /* codePointCount */
        start local 4 // int codePointCount
         4: .line 421
            goto 13
         5: .line 422
      StackMap locals: org.apache.lucene.util.BytesRef int int byte[] int
      StackMap stack:
            aload 3 /* bytes */
            iload 1 /* pos */
            baload
            sipush 255
            iand
            istore 5 /* v */
        start local 5 // int v
         6: .line 423
            iload 5 /* v */
            sipush 128
            if_icmpge 7
            iinc 1 /* pos */ 1
            goto 12
         7: .line 424
      StackMap locals: int
      StackMap stack:
            iload 5 /* v */
            sipush 192
            if_icmplt 11
         8: .line 425
            iload 5 /* v */
            sipush 224
            if_icmpge 9
            iinc 1 /* pos */ 2
            goto 12
         9: .line 426
      StackMap locals:
      StackMap stack:
            iload 5 /* v */
            sipush 240
            if_icmpge 10
            iinc 1 /* pos */ 3
            goto 12
        10: .line 427
      StackMap locals:
      StackMap stack:
            iload 5 /* v */
            sipush 248
            if_icmpge 11
            iinc 1 /* pos */ 4
            goto 12
        11: .line 432
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
        end local 5 // int v
        12: .line 421
      StackMap locals:
      StackMap stack:
            iinc 4 /* codePointCount */ 1
      StackMap locals:
      StackMap stack:
        13: iload 1 /* pos */
            iload 2 /* limit */
            if_icmplt 5
        14: .line 436
            iload 1 /* pos */
            iload 2 /* limit */
            if_icmple 15
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
        15: .line 438
      StackMap locals:
      StackMap stack:
            iload 4 /* codePointCount */
            ireturn
        end local 4 // int codePointCount
        end local 3 // byte[] bytes
        end local 2 // int limit
        end local 1 // int pos
        end local 0 // org.apache.lucene.util.BytesRef utf8
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   16     0            utf8  Lorg/apache/lucene/util/BytesRef;
            1   16     1             pos  I
            2   16     2           limit  I
            3   16     3           bytes  [B
            4   16     4  codePointCount  I
            6   12     5               v  I
    MethodParameters:
      Name  Flags
      utf8  

  public static int UTF8toUTF32(org.apache.lucene.util.BytesRef, int[]);
    descriptor: (Lorg/apache/lucene/util/BytesRef;[I)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=9, args_size=2
        start local 0 // org.apache.lucene.util.BytesRef utf8
        start local 1 // int[] ints
         0: .line 453
            iconst_0
            istore 2 /* utf32Count */
        start local 2 // int utf32Count
         1: .line 454
            aload 0 /* utf8 */
            getfield org.apache.lucene.util.BytesRef.offset:I
            istore 3 /* utf8Upto */
        start local 3 // int utf8Upto
         2: .line 455
            aload 0 /* utf8 */
            getfield org.apache.lucene.util.BytesRef.bytes:[B
            astore 4 /* bytes */
        start local 4 // byte[] bytes
         3: .line 456
            aload 0 /* utf8 */
            getfield org.apache.lucene.util.BytesRef.offset:I
            aload 0 /* utf8 */
            getfield org.apache.lucene.util.BytesRef.length:I
            iadd
            istore 5 /* utf8Limit */
        start local 5 // int utf8Limit
         4: .line 457
            goto 22
         5: .line 458
      StackMap locals: org.apache.lucene.util.BytesRef int[] int int byte[] int
      StackMap stack:
            getstatic org.apache.lucene.util.UnicodeUtil.utf8CodeLength:[I
            aload 4 /* bytes */
            iload 3 /* utf8Upto */
            baload
            sipush 255
            iand
            iaload
            istore 6 /* numBytes */
        start local 6 // int numBytes
         6: .line 459
            iconst_0
            istore 7 /* v */
        start local 7 // int v
         7: .line 460
            iload 6 /* numBytes */
            tableswitch { // 1 - 4
                    1: 8
                    2: 10
                    3: 12
                    4: 14
              default: 16
          }
         8: .line 462
      StackMap locals: int int
      StackMap stack:
            aload 1 /* ints */
            iload 2 /* utf32Count */
            iinc 2 /* utf32Count */ 1
            aload 4 /* bytes */
            iload 3 /* utf8Upto */
            iinc 3 /* utf8Upto */ 1
            baload
            iastore
         9: .line 463
            goto 22
        10: .line 466
      StackMap locals:
      StackMap stack:
            aload 4 /* bytes */
            iload 3 /* utf8Upto */
            iinc 3 /* utf8Upto */ 1
            baload
            bipush 31
            iand
            istore 7 /* v */
        11: .line 467
            goto 17
        12: .line 470
      StackMap locals:
      StackMap stack:
            aload 4 /* bytes */
            iload 3 /* utf8Upto */
            iinc 3 /* utf8Upto */ 1
            baload
            bipush 15
            iand
            istore 7 /* v */
        13: .line 471
            goto 17
        14: .line 474
      StackMap locals:
      StackMap stack:
            aload 4 /* bytes */
            iload 3 /* utf8Upto */
            iinc 3 /* utf8Upto */ 1
            baload
            bipush 7
            iand
            istore 7 /* v */
        15: .line 475
            goto 17
        16: .line 477
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "invalid utf8"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        17: .line 481
      StackMap locals:
      StackMap stack:
            iload 3 /* utf8Upto */
            iload 6 /* numBytes */
            iadd
            iconst_1
            isub
            istore 8 /* limit */
        start local 8 // int limit
        18: .line 482
            goto 20
        19: .line 483
      StackMap locals: int
      StackMap stack:
            iload 7 /* v */
            bipush 6
            ishl
            aload 4 /* bytes */
            iload 3 /* utf8Upto */
            iinc 3 /* utf8Upto */ 1
            baload
            bipush 63
            iand
            ior
            istore 7 /* v */
        20: .line 482
      StackMap locals:
      StackMap stack:
            iload 3 /* utf8Upto */
            iload 8 /* limit */
            if_icmplt 19
        21: .line 485
            aload 1 /* ints */
            iload 2 /* utf32Count */
            iinc 2 /* utf32Count */ 1
            iload 7 /* v */
            iastore
        end local 8 // int limit
        end local 7 // int v
        end local 6 // int numBytes
        22: .line 457
      StackMap locals:
      StackMap stack:
            iload 3 /* utf8Upto */
            iload 5 /* utf8Limit */
            if_icmplt 5
        23: .line 488
            iload 2 /* utf32Count */
            ireturn
        end local 5 // int utf8Limit
        end local 4 // byte[] bytes
        end local 3 // int utf8Upto
        end local 2 // int utf32Count
        end local 1 // int[] ints
        end local 0 // org.apache.lucene.util.BytesRef utf8
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   24     0        utf8  Lorg/apache/lucene/util/BytesRef;
            0   24     1        ints  [I
            1   24     2  utf32Count  I
            2   24     3    utf8Upto  I
            3   24     4       bytes  [B
            4   24     5   utf8Limit  I
            6   22     6    numBytes  I
            7   22     7           v  I
           18   22     8       limit  I
    MethodParameters:
      Name  Flags
      utf8  final
      ints  final

  public static java.lang.String newString(int[], int, int);
    descriptor: ([III)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=10, args_size=3
        start local 0 // int[] codePoints
        start local 1 // int offset
        start local 2 // int count
         0: .line 516
            iload 2 /* count */
            ifge 2
         1: .line 517
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
         2: .line 519
      StackMap locals:
      StackMap stack:
            iload 2 /* count */
            newarray 5
            astore 3 /* chars */
        start local 3 // char[] chars
         3: .line 520
            iconst_0
            istore 4 /* w */
        start local 4 // int w
         4: .line 521
            iload 1 /* offset */
            istore 5 /* r */
        start local 5 // int r
         5: iload 1 /* offset */
            iload 2 /* count */
            iadd
            istore 6 /* e */
        start local 6 // int e
         6: goto 27
         7: .line 522
      StackMap locals: int[] int int char[] int int int
      StackMap stack:
            aload 0 /* codePoints */
            iload 5 /* r */
            iaload
            istore 7 /* cp */
        start local 7 // int cp
         8: .line 523
            iload 7 /* cp */
            iflt 9
            iload 7 /* cp */
            ldc 1114111
            if_icmple 10
         9: .line 524
      StackMap locals: int
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
        10: .line 528
      StackMap locals:
      StackMap stack:
            iload 7 /* cp */
            ldc 65536
            if_icmpge 14
        11: .line 529
            aload 3 /* chars */
            iload 4 /* w */
            iload 7 /* cp */
            i2c
            castore
        12: .line 530
            iinc 4 /* w */ 1
        13: .line 531
            goto 26
        14: .line 532
      StackMap locals:
      StackMap stack:
            aload 3 /* chars */
            iload 4 /* w */
            ldc 55232
            iload 7 /* cp */
            bipush 10
            ishr
            iadd
            i2c
            castore
        15: .line 533
            aload 3 /* chars */
            iload 4 /* w */
            iconst_1
            iadd
            ldc 56320
            iload 7 /* cp */
            sipush 1023
            iand
            iadd
            i2c
            castore
        16: .line 534
            iinc 4 /* w */ 2
        17: .line 536
            goto 26
        18: .line 537
      StackMap locals:
      StackMap stack: java.lang.IndexOutOfBoundsException
            pop
        19: .line 538
            aload 0 /* codePoints */
            arraylength
            i2d
            iload 4 /* w */
            iconst_2
            iadd
            i2d
            dmul
        20: .line 539
            iload 5 /* r */
            iload 1 /* offset */
            isub
            iconst_1
            iadd
            i2d
        21: .line 538
            ddiv
            invokestatic java.lang.Math.ceil:(D)D
            d2i
            istore 8 /* newlen */
        start local 8 // int newlen
        22: .line 540
            iload 8 /* newlen */
            newarray 5
            astore 9 /* temp */
        start local 9 // char[] temp
        23: .line 541
            aload 3 /* chars */
            iconst_0
            aload 9 /* temp */
            iconst_0
            iload 4 /* w */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        24: .line 542
            aload 9 /* temp */
            astore 3 /* chars */
        end local 9 // char[] temp
        end local 8 // int newlen
        25: .line 526
            goto 10
        end local 7 // int cp
        26: .line 521
      StackMap locals:
      StackMap stack:
            iinc 5 /* r */ 1
      StackMap locals:
      StackMap stack:
        27: iload 5 /* r */
            iload 6 /* e */
            if_icmplt 7
        end local 6 // int e
        end local 5 // int r
        28: .line 546
            new java.lang.String
            dup
            aload 3 /* chars */
            iconst_0
            iload 4 /* w */
            invokespecial java.lang.String.<init>:([CII)V
            areturn
        end local 4 // int w
        end local 3 // char[] chars
        end local 2 // int count
        end local 1 // int offset
        end local 0 // int[] codePoints
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   29     0  codePoints  [I
            0   29     1      offset  I
            0   29     2       count  I
            3   29     3       chars  [C
            4   29     4           w  I
            5   28     5           r  I
            6   28     6           e  I
            8   26     7          cp  I
           22   25     8      newlen  I
           23   25     9        temp  [C
      Exception table:
        from    to  target  type
          10    17      18  Class java.lang.IndexOutOfBoundsException
    MethodParameters:
            Name  Flags
      codePoints  
      offset      
      count       

  public static java.lang.String toHexString(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // java.lang.String s
         0: .line 551
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 1 /* sb */
        start local 1 // java.lang.StringBuilder sb
         1: .line 552
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 22
         3: .line 553
      StackMap locals: java.lang.StringBuilder int
      StackMap stack:
            aload 0 /* s */
            iload 2 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            istore 3 /* ch */
        start local 3 // char ch
         4: .line 554
            iload 2 /* i */
            ifle 6
         5: .line 555
            aload 1 /* sb */
            bipush 32
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         6: .line 557
      StackMap locals: int
      StackMap stack:
            iload 3 /* ch */
            sipush 128
            if_icmpge 9
         7: .line 558
            aload 1 /* sb */
            iload 3 /* ch */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         8: .line 559
            goto 21
         9: .line 560
      StackMap locals:
      StackMap stack:
            iload 3 /* ch */
            ldc 55296
            if_icmplt 12
            iload 3 /* ch */
            ldc 56319
            if_icmpgt 12
        10: .line 561
            aload 1 /* sb */
            ldc "H:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        11: .line 562
            goto 20
      StackMap locals:
      StackMap stack:
        12: iload 3 /* ch */
            ldc 56320
            if_icmplt 15
            iload 3 /* ch */
            ldc 57343
            if_icmpgt 15
        13: .line 563
            aload 1 /* sb */
            ldc "L:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        14: .line 564
            goto 20
      StackMap locals:
      StackMap stack:
        15: iload 3 /* ch */
            ldc 57343
            if_icmple 20
        16: .line 565
            iload 3 /* ch */
            ldc 65535
            if_icmpne 19
        17: .line 566
            aload 1 /* sb */
            ldc "F:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        18: .line 567
            goto 20
        19: .line 568
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            ldc "E:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        20: .line 572
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            ldc "0x"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 3 /* ch */
            invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 3 // char ch
        21: .line 552
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        22: iload 2 /* i */
            aload 0 /* s */
            invokevirtual java.lang.String.length:()I
            if_icmplt 3
        end local 2 // int i
        23: .line 575
            aload 1 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuilder sb
        end local 0 // java.lang.String s
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   24     0     s  Ljava/lang/String;
            1   24     1    sb  Ljava/lang/StringBuilder;
            2   23     2     i  I
            4   21     3    ch  C
    MethodParameters:
      Name  Flags
      s     

  public static int UTF8toUTF16(byte[], int, int, char[]);
    descriptor: ([BII[C)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=9, args_size=4
        start local 0 // byte[] utf8
        start local 1 // int offset
        start local 2 // int length
        start local 3 // char[] out
         0: .line 588
            iconst_0
            istore 4 /* out_offset */
        start local 4 // int out_offset
         1: .line 589
            iload 1 /* offset */
            iload 2 /* length */
            iadd
            istore 5 /* limit */
        start local 5 // int limit
         2: .line 590
            goto 24
         3: .line 591
      StackMap locals: int int
      StackMap stack:
            aload 0 /* utf8 */
            iload 1 /* offset */
            iinc 1 /* offset */ 1
            baload
            sipush 255
            iand
            istore 6 /* b */
        start local 6 // int b
         4: .line 592
            iload 6 /* b */
            sipush 192
            if_icmpge 8
         5: .line 593
            getstatic org.apache.lucene.util.UnicodeUtil.$assertionsDisabled:Z
            ifne 6
            iload 6 /* b */
            sipush 128
            if_icmplt 6
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         6: .line 594
      StackMap locals: int
      StackMap stack:
            aload 3 /* out */
            iload 4 /* out_offset */
            iinc 4 /* out_offset */ 1
            iload 6 /* b */
            i2c
            castore
         7: .line 595
            goto 24
      StackMap locals:
      StackMap stack:
         8: iload 6 /* b */
            sipush 224
            if_icmpge 11
         9: .line 596
            aload 3 /* out */
            iload 4 /* out_offset */
            iinc 4 /* out_offset */ 1
            iload 6 /* b */
            bipush 31
            iand
            bipush 6
            ishl
            aload 0 /* utf8 */
            iload 1 /* offset */
            iinc 1 /* offset */ 1
            baload
            bipush 63
            iand
            iadd
            i2c
            castore
        10: .line 597
            goto 24
      StackMap locals:
      StackMap stack:
        11: iload 6 /* b */
            sipush 240
            if_icmpge 15
        12: .line 598
            aload 3 /* out */
            iload 4 /* out_offset */
            iinc 4 /* out_offset */ 1
            iload 6 /* b */
            bipush 15
            iand
            bipush 12
            ishl
            aload 0 /* utf8 */
            iload 1 /* offset */
            baload
            bipush 63
            iand
            bipush 6
            ishl
            iadd
            aload 0 /* utf8 */
            iload 1 /* offset */
            iconst_1
            iadd
            baload
            bipush 63
            iand
            iadd
            i2c
            castore
        13: .line 599
            iinc 1 /* offset */ 2
        14: .line 600
            goto 24
        15: .line 601
      StackMap locals:
      StackMap stack:
            getstatic org.apache.lucene.util.UnicodeUtil.$assertionsDisabled:Z
            ifne 16
            iload 6 /* b */
            sipush 248
            if_icmplt 16
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "b = 0x"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 6 /* b */
            invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        16: .line 602
      StackMap locals:
      StackMap stack:
            iload 6 /* b */
            bipush 7
            iand
            bipush 18
            ishl
            aload 0 /* utf8 */
            iload 1 /* offset */
            baload
            bipush 63
            iand
            bipush 12
            ishl
            iadd
            aload 0 /* utf8 */
            iload 1 /* offset */
            iconst_1
            iadd
            baload
            bipush 63
            iand
            bipush 6
            ishl
            iadd
            aload 0 /* utf8 */
            iload 1 /* offset */
            iconst_2
            iadd
            baload
            bipush 63
            iand
            iadd
            istore 7 /* ch */
        start local 7 // int ch
        17: .line 603
            iinc 1 /* offset */ 3
        18: .line 604
            iload 7 /* ch */
            i2l
            ldc 65535
            lcmp
            ifge 21
        19: .line 605
            aload 3 /* out */
            iload 4 /* out_offset */
            iinc 4 /* out_offset */ 1
            iload 7 /* ch */
            i2c
            castore
        20: .line 606
            goto 24
        21: .line 607
      StackMap locals: int
      StackMap stack:
            iload 7 /* ch */
            ldc 65536
            isub
            istore 8 /* chHalf */
        start local 8 // int chHalf
        22: .line 608
            aload 3 /* out */
            iload 4 /* out_offset */
            iinc 4 /* out_offset */ 1
            iload 8 /* chHalf */
            bipush 10
            ishr
            ldc 55296
            iadd
            i2c
            castore
        23: .line 609
            aload 3 /* out */
            iload 4 /* out_offset */
            iinc 4 /* out_offset */ 1
            iload 8 /* chHalf */
            i2l
            ldc 1023
            land
            ldc 56320
            ladd
            l2i
            i2c
            castore
        end local 8 // int chHalf
        end local 7 // int ch
        end local 6 // int b
        24: .line 590
      StackMap locals:
      StackMap stack:
            iload 1 /* offset */
            iload 5 /* limit */
            if_icmplt 3
        25: .line 613
            iload 4 /* out_offset */
            ireturn
        end local 5 // int limit
        end local 4 // int out_offset
        end local 3 // char[] out
        end local 2 // int length
        end local 1 // int offset
        end local 0 // byte[] utf8
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   26     0        utf8  [B
            0   26     1      offset  I
            0   26     2      length  I
            0   26     3         out  [C
            1   26     4  out_offset  I
            2   26     5       limit  I
            4   24     6           b  I
           17   24     7          ch  I
           22   24     8      chHalf  I
    MethodParameters:
        Name  Flags
      utf8    
      offset  
      length  
      out     

  public static int maxUTF8Length(int);
    descriptor: (I)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // int utf16Length
         0: .line 618
            iload 0 /* utf16Length */
            iconst_3
            invokestatic java.lang.Math.multiplyExact:(II)I
            ireturn
        end local 0 // int utf16Length
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0  utf16Length  I
    MethodParameters:
             Name  Flags
      utf16Length  

  public static int UTF8toUTF16(org.apache.lucene.util.BytesRef, char[]);
    descriptor: (Lorg/apache/lucene/util/BytesRef;[C)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.apache.lucene.util.BytesRef bytesRef
        start local 1 // char[] chars
         0: .line 626
            aload 0 /* bytesRef */
            getfield org.apache.lucene.util.BytesRef.bytes:[B
            aload 0 /* bytesRef */
            getfield org.apache.lucene.util.BytesRef.offset:I
            aload 0 /* bytesRef */
            getfield org.apache.lucene.util.BytesRef.length:I
            aload 1 /* chars */
            invokestatic org.apache.lucene.util.UnicodeUtil.UTF8toUTF16:([BII[C)I
            ireturn
        end local 1 // char[] chars
        end local 0 // org.apache.lucene.util.BytesRef bytesRef
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  bytesRef  Lorg/apache/lucene/util/BytesRef;
            0    1     1     chars  [C
    MethodParameters:
          Name  Flags
      bytesRef  
      chars     
}
SourceFile: "UnicodeUtil.java"