final class com.google.protobuf.Utf8$UnsafeProcessor extends com.google.protobuf.Utf8$Processor
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.google.protobuf.Utf8$UnsafeProcessor
  super_class: com.google.protobuf.Utf8$Processor
{
  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.google.protobuf.Utf8$UnsafeProcessor this
         0: .line 1169
            aload 0 /* this */
            invokespecial com.google.protobuf.Utf8$Processor.<init>:()V
            return
        end local 0 // com.google.protobuf.Utf8$UnsafeProcessor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/protobuf/Utf8$UnsafeProcessor;

  static boolean isAvailable();
    descriptor: ()Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 1172
            invokestatic com.google.protobuf.UnsafeUtil.hasUnsafeArrayOperations:()Z
            ifeq 1
            invokestatic com.google.protobuf.UnsafeUtil.hasUnsafeByteBufferOperations:()Z
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  int partialIsValidUtf8(int, byte[], int, int);
    descriptor: (I[BII)I
    flags: (0x0000) 
    Code:
      stack=7, locals=12, args_size=5
        start local 0 // com.google.protobuf.Utf8$UnsafeProcessor this
        start local 1 // int state
        start local 2 // byte[] bytes
        start local 3 // int index
        start local 4 // int limit
         0: .line 1178
            iload 3 /* index */
            iload 4 /* limit */
            ior
            aload 2 /* bytes */
            arraylength
            iload 4 /* limit */
            isub
            ior
            ifge 4
         1: .line 1179
            new java.lang.ArrayIndexOutOfBoundsException
            dup
         2: .line 1180
            ldc "Array length=%d, index=%d, limit=%d"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* bytes */
            arraylength
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            iload 3 /* index */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            iload 4 /* limit */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
         3: .line 1179
            invokespecial java.lang.ArrayIndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 1182
      StackMap locals:
      StackMap stack:
            iload 3 /* index */
            i2l
            lstore 5 /* offset */
        start local 5 // long offset
         5: .line 1183
            iload 4 /* limit */
            i2l
            lstore 7 /* offsetLimit */
        start local 7 // long offsetLimit
         6: .line 1184
            iload 1 /* state */
            ifeq 41
         7: .line 1192
            lload 5 /* offset */
            lload 7 /* offsetLimit */
            lcmp
            iflt 9
         8: .line 1193
            iload 1 /* state */
            ireturn
         9: .line 1195
      StackMap locals: long long
      StackMap stack:
            iload 1 /* state */
            i2b
            istore 9 /* byte1 */
        start local 9 // int byte1
        10: .line 1197
            iload 9 /* byte1 */
            bipush -32
            if_icmpge 14
        11: .line 1202
            iload 9 /* byte1 */
            bipush -62
            if_icmplt 13
        12: .line 1204
            aload 2 /* bytes */
            lload 5 /* offset */
            dup2
            lconst_1
            ladd
            lstore 5 /* offset */
            invokestatic com.google.protobuf.UnsafeUtil.getByte:([BJ)B
            bipush -65
            if_icmple 41
        13: .line 1205
      StackMap locals: int
      StackMap stack:
            iconst_m1
            ireturn
        14: .line 1207
      StackMap locals:
      StackMap stack:
            iload 9 /* byte1 */
            bipush -16
            if_icmpge 25
        15: .line 1211
            iload 1 /* state */
            bipush 8
            ishr
            iconst_m1
            ixor
            i2b
            istore 10 /* byte2 */
        start local 10 // int byte2
        16: .line 1212
            iload 10 /* byte2 */
            ifne 20
        17: .line 1213
            aload 2 /* bytes */
            lload 5 /* offset */
            dup2
            lconst_1
            ladd
            lstore 5 /* offset */
            invokestatic com.google.protobuf.UnsafeUtil.getByte:([BJ)B
            istore 10 /* byte2 */
        18: .line 1214
            lload 5 /* offset */
            lload 7 /* offsetLimit */
            lcmp
            iflt 20
        19: .line 1215
            iload 9 /* byte1 */
            iload 10 /* byte2 */
            invokestatic com.google.protobuf.Utf8.incompleteStateFor:(II)I
            ireturn
        20: .line 1218
      StackMap locals: int
      StackMap stack:
            iload 10 /* byte2 */
            bipush -65
            if_icmpgt 24
        21: .line 1220
            iload 9 /* byte1 */
            bipush -32
            if_icmpne 22
            iload 10 /* byte2 */
            bipush -96
            if_icmplt 24
        22: .line 1222
      StackMap locals:
      StackMap stack:
            iload 9 /* byte1 */
            bipush -19
            if_icmpne 23
            iload 10 /* byte2 */
            bipush -96
            if_icmpge 24
        23: .line 1224
      StackMap locals:
      StackMap stack:
            aload 2 /* bytes */
            lload 5 /* offset */
            dup2
            lconst_1
            ladd
            lstore 5 /* offset */
            invokestatic com.google.protobuf.UnsafeUtil.getByte:([BJ)B
            bipush -65
            if_icmple 41
        24: .line 1225
      StackMap locals:
      StackMap stack:
            iconst_m1
            ireturn
        end local 10 // int byte2
        25: .line 1231
      StackMap locals:
      StackMap stack:
            iload 1 /* state */
            bipush 8
            ishr
            iconst_m1
            ixor
            i2b
            istore 10 /* byte2 */
        start local 10 // int byte2
        26: .line 1232
            iconst_0
            istore 11 /* byte3 */
        start local 11 // int byte3
        27: .line 1233
            iload 10 /* byte2 */
            ifne 31
        28: .line 1234
            aload 2 /* bytes */
            lload 5 /* offset */
            dup2
            lconst_1
            ladd
            lstore 5 /* offset */
            invokestatic com.google.protobuf.UnsafeUtil.getByte:([BJ)B
            istore 10 /* byte2 */
        29: .line 1235
            lload 5 /* offset */
            lload 7 /* offsetLimit */
            lcmp
            iflt 32
        30: .line 1236
            iload 9 /* byte1 */
            iload 10 /* byte2 */
            invokestatic com.google.protobuf.Utf8.incompleteStateFor:(II)I
            ireturn
        31: .line 1239
      StackMap locals: int int
      StackMap stack:
            iload 1 /* state */
            bipush 16
            ishr
            i2b
            istore 11 /* byte3 */
        32: .line 1241
      StackMap locals:
      StackMap stack:
            iload 11 /* byte3 */
            ifne 36
        33: .line 1242
            aload 2 /* bytes */
            lload 5 /* offset */
            dup2
            lconst_1
            ladd
            lstore 5 /* offset */
            invokestatic com.google.protobuf.UnsafeUtil.getByte:([BJ)B
            istore 11 /* byte3 */
        34: .line 1243
            lload 5 /* offset */
            lload 7 /* offsetLimit */
            lcmp
            iflt 36
        35: .line 1244
            iload 9 /* byte1 */
            iload 10 /* byte2 */
            iload 11 /* byte3 */
            invokestatic com.google.protobuf.Utf8.incompleteStateFor:(III)I
            ireturn
        36: .line 1252
      StackMap locals:
      StackMap stack:
            iload 10 /* byte2 */
            bipush -65
            if_icmpgt 40
        37: .line 1257
            iload 9 /* byte1 */
            bipush 28
            ishl
            iload 10 /* byte2 */
            bipush -112
            isub
            iadd
            bipush 30
            ishr
            ifne 40
        38: .line 1259
            iload 11 /* byte3 */
            bipush -65
            if_icmpgt 40
        39: .line 1261
            aload 2 /* bytes */
            lload 5 /* offset */
            dup2
            lconst_1
            ladd
            lstore 5 /* offset */
            invokestatic com.google.protobuf.UnsafeUtil.getByte:([BJ)B
            bipush -65
            if_icmple 41
        40: .line 1262
      StackMap locals:
      StackMap stack:
            iconst_m1
            ireturn
        end local 11 // int byte3
        end local 10 // int byte2
        end local 9 // int byte1
        41: .line 1267
      StackMap locals:
      StackMap stack:
            aload 2 /* bytes */
            lload 5 /* offset */
            lload 7 /* offsetLimit */
            lload 5 /* offset */
            lsub
            l2i
            invokestatic com.google.protobuf.Utf8$UnsafeProcessor.partialIsValidUtf8:([BJI)I
            ireturn
        end local 7 // long offsetLimit
        end local 5 // long offset
        end local 4 // int limit
        end local 3 // int index
        end local 2 // byte[] bytes
        end local 1 // int state
        end local 0 // com.google.protobuf.Utf8$UnsafeProcessor this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   42     0         this  Lcom/google/protobuf/Utf8$UnsafeProcessor;
            0   42     1        state  I
            0   42     2        bytes  [B
            0   42     3        index  I
            0   42     4        limit  I
            5   42     5       offset  J
            6   42     7  offsetLimit  J
           10   41     9        byte1  I
           16   25    10        byte2  I
           26   41    10        byte2  I
           27   41    11        byte3  I
    MethodParameters:
       Name  Flags
      state  
      bytes  
      index  final
      limit  final

  int partialIsValidUtf8Direct(int, java.nio.ByteBuffer, int, int);
    descriptor: (ILjava/nio/ByteBuffer;II)I
    flags: (0x0000) 
    Code:
      stack=7, locals=12, args_size=5
        start local 0 // com.google.protobuf.Utf8$UnsafeProcessor this
        start local 1 // int state
        start local 2 // java.nio.ByteBuffer buffer
        start local 3 // int index
        start local 4 // int limit
         0: .line 1274
            iload 3 /* index */
            iload 4 /* limit */
            ior
            aload 2 /* buffer */
            invokevirtual java.nio.ByteBuffer.limit:()I
            iload 4 /* limit */
            isub
            ior
            ifge 4
         1: .line 1275
            new java.lang.ArrayIndexOutOfBoundsException
            dup
         2: .line 1276
            ldc "buffer limit=%d, index=%d, limit=%d"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* buffer */
            invokevirtual java.nio.ByteBuffer.limit:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            iload 3 /* index */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            iload 4 /* limit */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
         3: .line 1275
            invokespecial java.lang.ArrayIndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 1278
      StackMap locals:
      StackMap stack:
            aload 2 /* buffer */
            invokestatic com.google.protobuf.UnsafeUtil.addressOffset:(Ljava/nio/ByteBuffer;)J
            iload 3 /* index */
            i2l
            ladd
            lstore 5 /* address */
        start local 5 // long address
         5: .line 1279
            lload 5 /* address */
            iload 4 /* limit */
            iload 3 /* index */
            isub
            i2l
            ladd
            lstore 7 /* addressLimit */
        start local 7 // long addressLimit
         6: .line 1280
            iload 1 /* state */
            ifeq 41
         7: .line 1288
            lload 5 /* address */
            lload 7 /* addressLimit */
            lcmp
            iflt 9
         8: .line 1289
            iload 1 /* state */
            ireturn
         9: .line 1292
      StackMap locals: long long
      StackMap stack:
            iload 1 /* state */
            i2b
            istore 9 /* byte1 */
        start local 9 // int byte1
        10: .line 1294
            iload 9 /* byte1 */
            bipush -32
            if_icmpge 14
        11: .line 1299
            iload 9 /* byte1 */
            bipush -62
            if_icmplt 13
        12: .line 1301
            lload 5 /* address */
            dup2
            lconst_1
            ladd
            lstore 5 /* address */
            invokestatic com.google.protobuf.UnsafeUtil.getByte:(J)B
            bipush -65
            if_icmple 41
        13: .line 1302
      StackMap locals: int
      StackMap stack:
            iconst_m1
            ireturn
        14: .line 1304
      StackMap locals:
      StackMap stack:
            iload 9 /* byte1 */
            bipush -16
            if_icmpge 25
        15: .line 1308
            iload 1 /* state */
            bipush 8
            ishr
            iconst_m1
            ixor
            i2b
            istore 10 /* byte2 */
        start local 10 // int byte2
        16: .line 1309
            iload 10 /* byte2 */
            ifne 20
        17: .line 1310
            lload 5 /* address */
            dup2
            lconst_1
            ladd
            lstore 5 /* address */
            invokestatic com.google.protobuf.UnsafeUtil.getByte:(J)B
            istore 10 /* byte2 */
        18: .line 1311
            lload 5 /* address */
            lload 7 /* addressLimit */
            lcmp
            iflt 20
        19: .line 1312
            iload 9 /* byte1 */
            iload 10 /* byte2 */
            invokestatic com.google.protobuf.Utf8.incompleteStateFor:(II)I
            ireturn
        20: .line 1315
      StackMap locals: int
      StackMap stack:
            iload 10 /* byte2 */
            bipush -65
            if_icmpgt 24
        21: .line 1317
            iload 9 /* byte1 */
            bipush -32
            if_icmpne 22
            iload 10 /* byte2 */
            bipush -96
            if_icmplt 24
        22: .line 1319
      StackMap locals:
      StackMap stack:
            iload 9 /* byte1 */
            bipush -19
            if_icmpne 23
            iload 10 /* byte2 */
            bipush -96
            if_icmpge 24
        23: .line 1321
      StackMap locals:
      StackMap stack:
            lload 5 /* address */
            dup2
            lconst_1
            ladd
            lstore 5 /* address */
            invokestatic com.google.protobuf.UnsafeUtil.getByte:(J)B
            bipush -65
            if_icmple 41
        24: .line 1322
      StackMap locals:
      StackMap stack:
            iconst_m1
            ireturn
        end local 10 // int byte2
        25: .line 1328
      StackMap locals:
      StackMap stack:
            iload 1 /* state */
            bipush 8
            ishr
            iconst_m1
            ixor
            i2b
            istore 10 /* byte2 */
        start local 10 // int byte2
        26: .line 1329
            iconst_0
            istore 11 /* byte3 */
        start local 11 // int byte3
        27: .line 1330
            iload 10 /* byte2 */
            ifne 31
        28: .line 1331
            lload 5 /* address */
            dup2
            lconst_1
            ladd
            lstore 5 /* address */
            invokestatic com.google.protobuf.UnsafeUtil.getByte:(J)B
            istore 10 /* byte2 */
        29: .line 1332
            lload 5 /* address */
            lload 7 /* addressLimit */
            lcmp
            iflt 32
        30: .line 1333
            iload 9 /* byte1 */
            iload 10 /* byte2 */
            invokestatic com.google.protobuf.Utf8.incompleteStateFor:(II)I
            ireturn
        31: .line 1336
      StackMap locals: int int
      StackMap stack:
            iload 1 /* state */
            bipush 16
            ishr
            i2b
            istore 11 /* byte3 */
        32: .line 1338
      StackMap locals:
      StackMap stack:
            iload 11 /* byte3 */
            ifne 36
        33: .line 1339
            lload 5 /* address */
            dup2
            lconst_1
            ladd
            lstore 5 /* address */
            invokestatic com.google.protobuf.UnsafeUtil.getByte:(J)B
            istore 11 /* byte3 */
        34: .line 1340
            lload 5 /* address */
            lload 7 /* addressLimit */
            lcmp
            iflt 36
        35: .line 1341
            iload 9 /* byte1 */
            iload 10 /* byte2 */
            iload 11 /* byte3 */
            invokestatic com.google.protobuf.Utf8.incompleteStateFor:(III)I
            ireturn
        36: .line 1349
      StackMap locals:
      StackMap stack:
            iload 10 /* byte2 */
            bipush -65
            if_icmpgt 40
        37: .line 1354
            iload 9 /* byte1 */
            bipush 28
            ishl
            iload 10 /* byte2 */
            bipush -112
            isub
            iadd
            bipush 30
            ishr
            ifne 40
        38: .line 1356
            iload 11 /* byte3 */
            bipush -65
            if_icmpgt 40
        39: .line 1358
            lload 5 /* address */
            dup2
            lconst_1
            ladd
            lstore 5 /* address */
            invokestatic com.google.protobuf.UnsafeUtil.getByte:(J)B
            bipush -65
            if_icmple 41
        40: .line 1359
      StackMap locals:
      StackMap stack:
            iconst_m1
            ireturn
        end local 11 // int byte3
        end local 10 // int byte2
        end local 9 // int byte1
        41: .line 1364
      StackMap locals:
      StackMap stack:
            lload 5 /* address */
            lload 7 /* addressLimit */
            lload 5 /* address */
            lsub
            l2i
            invokestatic com.google.protobuf.Utf8$UnsafeProcessor.partialIsValidUtf8:(JI)I
            ireturn
        end local 7 // long addressLimit
        end local 5 // long address
        end local 4 // int limit
        end local 3 // int index
        end local 2 // java.nio.ByteBuffer buffer
        end local 1 // int state
        end local 0 // com.google.protobuf.Utf8$UnsafeProcessor this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   42     0          this  Lcom/google/protobuf/Utf8$UnsafeProcessor;
            0   42     1         state  I
            0   42     2        buffer  Ljava/nio/ByteBuffer;
            0   42     3         index  I
            0   42     4         limit  I
            5   42     5       address  J
            6   42     7  addressLimit  J
           10   41     9         byte1  I
           16   25    10         byte2  I
           26   41    10         byte2  I
           27   41    11         byte3  I
    MethodParameters:
        Name  Flags
      state   final
      buffer  
      index   final
      limit   final

  java.lang.String decodeUtf8(byte[], int, int);
    descriptor: ([BII)Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=7, locals=10, args_size=4
        start local 0 // com.google.protobuf.Utf8$UnsafeProcessor this
        start local 1 // byte[] bytes
        start local 2 // int index
        start local 3 // int size
         0: .line 1369
            iload 2 /* index */
            iload 3 /* size */
            ior
            aload 1 /* bytes */
            arraylength
            iload 2 /* index */
            isub
            iload 3 /* size */
            isub
            ior
            ifge 4
         1: .line 1370
            new java.lang.ArrayIndexOutOfBoundsException
            dup
         2: .line 1371
            ldc "buffer length=%d, index=%d, size=%d"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* bytes */
            arraylength
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            iload 2 /* index */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            iload 3 /* size */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
         3: .line 1370
            invokespecial java.lang.ArrayIndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 1374
      StackMap locals:
      StackMap stack:
            iload 2 /* index */
            istore 4 /* offset */
        start local 4 // int offset
         5: .line 1375
            iload 4 /* offset */
            iload 3 /* size */
            iadd
            istore 5 /* limit */
        start local 5 // int limit
         6: .line 1379
            iload 3 /* size */
            newarray 5
            astore 6 /* resultArr */
        start local 6 // char[] resultArr
         7: .line 1380
            iconst_0
            istore 7 /* resultPos */
        start local 7 // int resultPos
         8: .line 1384
            goto 14
         9: .line 1385
      StackMap locals: com.google.protobuf.Utf8$UnsafeProcessor byte[] int int int int char[] int
      StackMap stack:
            aload 1 /* bytes */
            iload 4 /* offset */
            i2l
            invokestatic com.google.protobuf.UnsafeUtil.getByte:([BJ)B
            istore 8 /* b */
        start local 8 // byte b
        10: .line 1386
            iload 8 /* b */
            invokestatic com.google.protobuf.Utf8$DecodeUtil.isOneByte:(B)Z
            ifne 12
        11: .line 1387
            goto 53
        12: .line 1389
      StackMap locals: int
      StackMap stack:
            iinc 4 /* offset */ 1
        13: .line 1390
            iload 8 /* b */
            aload 6 /* resultArr */
            iload 7 /* resultPos */
            iinc 7 /* resultPos */ 1
            invokestatic com.google.protobuf.Utf8$DecodeUtil.handleOneByte:(B[CI)V
        end local 8 // byte b
        14: .line 1384
      StackMap locals:
      StackMap stack:
            iload 4 /* offset */
            iload 5 /* limit */
            if_icmplt 9
        15: .line 1393
            goto 53
        16: .line 1394
      StackMap locals:
      StackMap stack:
            aload 1 /* bytes */
            iload 4 /* offset */
            iinc 4 /* offset */ 1
            i2l
            invokestatic com.google.protobuf.UnsafeUtil.getByte:([BJ)B
            istore 8 /* byte1 */
        start local 8 // byte byte1
        17: .line 1395
            iload 8 /* byte1 */
            invokestatic com.google.protobuf.Utf8$DecodeUtil.isOneByte:(B)Z
            ifeq 27
        18: .line 1396
            iload 8 /* byte1 */
            aload 6 /* resultArr */
            iload 7 /* resultPos */
            iinc 7 /* resultPos */ 1
            invokestatic com.google.protobuf.Utf8$DecodeUtil.handleOneByte:(B[CI)V
        19: .line 1399
            goto 25
        20: .line 1400
      StackMap locals: int
      StackMap stack:
            aload 1 /* bytes */
            iload 4 /* offset */
            i2l
            invokestatic com.google.protobuf.UnsafeUtil.getByte:([BJ)B
            istore 9 /* b */
        start local 9 // byte b
        21: .line 1401
            iload 9 /* b */
            invokestatic com.google.protobuf.Utf8$DecodeUtil.isOneByte:(B)Z
            ifne 23
        22: .line 1402
            goto 53
        23: .line 1404
      StackMap locals: int
      StackMap stack:
            iinc 4 /* offset */ 1
        24: .line 1405
            iload 9 /* b */
            aload 6 /* resultArr */
            iload 7 /* resultPos */
            iinc 7 /* resultPos */ 1
            invokestatic com.google.protobuf.Utf8$DecodeUtil.handleOneByte:(B[CI)V
        end local 9 // byte b
        25: .line 1399
      StackMap locals:
      StackMap stack:
            iload 4 /* offset */
            iload 5 /* limit */
            if_icmplt 20
        26: .line 1407
            goto 53
      StackMap locals:
      StackMap stack:
        27: iload 8 /* byte1 */
            invokestatic com.google.protobuf.Utf8$DecodeUtil.isTwoBytes:(B)Z
            ifeq 33
        28: .line 1408
            iload 4 /* offset */
            iload 5 /* limit */
            if_icmplt 30
        29: .line 1409
            invokestatic com.google.protobuf.InvalidProtocolBufferException.invalidUtf8:()Lcom/google/protobuf/InvalidProtocolBufferException;
            athrow
        30: .line 1412
      StackMap locals:
      StackMap stack:
            iload 8 /* byte1 */
            aload 1 /* bytes */
            iload 4 /* offset */
            iinc 4 /* offset */ 1
            i2l
            invokestatic com.google.protobuf.UnsafeUtil.getByte:([BJ)B
            aload 6 /* resultArr */
            iload 7 /* resultPos */
            iinc 7 /* resultPos */ 1
        31: .line 1411
            invokestatic com.google.protobuf.Utf8$DecodeUtil.handleTwoBytes:(BB[CI)V
        32: .line 1413
            goto 53
      StackMap locals:
      StackMap stack:
        33: iload 8 /* byte1 */
            invokestatic com.google.protobuf.Utf8$DecodeUtil.isThreeBytes:(B)Z
            ifeq 43
        34: .line 1414
            iload 4 /* offset */
            iload 5 /* limit */
            iconst_1
            isub
            if_icmplt 36
        35: .line 1415
            invokestatic com.google.protobuf.InvalidProtocolBufferException.invalidUtf8:()Lcom/google/protobuf/InvalidProtocolBufferException;
            athrow
        36: .line 1418
      StackMap locals:
      StackMap stack:
            iload 8 /* byte1 */
        37: .line 1419
            aload 1 /* bytes */
            iload 4 /* offset */
            iinc 4 /* offset */ 1
            i2l
            invokestatic com.google.protobuf.UnsafeUtil.getByte:([BJ)B
        38: .line 1420
            aload 1 /* bytes */
            iload 4 /* offset */
            iinc 4 /* offset */ 1
            i2l
            invokestatic com.google.protobuf.UnsafeUtil.getByte:([BJ)B
        39: .line 1421
            aload 6 /* resultArr */
        40: .line 1422
            iload 7 /* resultPos */
            iinc 7 /* resultPos */ 1
        41: .line 1417
            invokestatic com.google.protobuf.Utf8$DecodeUtil.handleThreeBytes:(BBB[CI)V
        42: .line 1423
            goto 53
        43: .line 1424
      StackMap locals:
      StackMap stack:
            iload 4 /* offset */
            iload 5 /* limit */
            iconst_2
            isub
            if_icmplt 45
        44: .line 1425
            invokestatic com.google.protobuf.InvalidProtocolBufferException.invalidUtf8:()Lcom/google/protobuf/InvalidProtocolBufferException;
            athrow
        45: .line 1428
      StackMap locals:
      StackMap stack:
            iload 8 /* byte1 */
        46: .line 1429
            aload 1 /* bytes */
            iload 4 /* offset */
            iinc 4 /* offset */ 1
            i2l
            invokestatic com.google.protobuf.UnsafeUtil.getByte:([BJ)B
        47: .line 1430
            aload 1 /* bytes */
            iload 4 /* offset */
            iinc 4 /* offset */ 1
            i2l
            invokestatic com.google.protobuf.UnsafeUtil.getByte:([BJ)B
        48: .line 1431
            aload 1 /* bytes */
            iload 4 /* offset */
            iinc 4 /* offset */ 1
            i2l
            invokestatic com.google.protobuf.UnsafeUtil.getByte:([BJ)B
        49: .line 1432
            aload 6 /* resultArr */
        50: .line 1433
            iload 7 /* resultPos */
            iinc 7 /* resultPos */ 1
        51: .line 1427
            invokestatic com.google.protobuf.Utf8$DecodeUtil.handleFourBytes:(BBBB[CI)V
        52: .line 1435
            iinc 7 /* resultPos */ 1
        end local 8 // byte byte1
        53: .line 1393
      StackMap locals:
      StackMap stack:
            iload 4 /* offset */
            iload 5 /* limit */
            if_icmplt 16
        54: .line 1439
            new java.lang.String
            dup
            aload 6 /* resultArr */
            iconst_0
            iload 7 /* resultPos */
            invokespecial java.lang.String.<init>:([CII)V
            areturn
        end local 7 // int resultPos
        end local 6 // char[] resultArr
        end local 5 // int limit
        end local 4 // int offset
        end local 3 // int size
        end local 2 // int index
        end local 1 // byte[] bytes
        end local 0 // com.google.protobuf.Utf8$UnsafeProcessor this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   55     0       this  Lcom/google/protobuf/Utf8$UnsafeProcessor;
            0   55     1      bytes  [B
            0   55     2      index  I
            0   55     3       size  I
            5   55     4     offset  I
            6   55     5      limit  I
            7   55     6  resultArr  [C
            8   55     7  resultPos  I
           10   14     8          b  B
           17   53     8      byte1  B
           21   25     9          b  B
    Exceptions:
      throws com.google.protobuf.InvalidProtocolBufferException
    MethodParameters:
       Name  Flags
      bytes  
      index  
      size   

  java.lang.String decodeUtf8Direct(java.nio.ByteBuffer, int, int);
    descriptor: (Ljava/nio/ByteBuffer;II)Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=9, locals=12, args_size=4
        start local 0 // com.google.protobuf.Utf8$UnsafeProcessor this
        start local 1 // java.nio.ByteBuffer buffer
        start local 2 // int index
        start local 3 // int size
         0: .line 1446
            iload 2 /* index */
            iload 3 /* size */
            ior
            aload 1 /* buffer */
            invokevirtual java.nio.ByteBuffer.limit:()I
            iload 2 /* index */
            isub
            iload 3 /* size */
            isub
            ior
            ifge 4
         1: .line 1447
            new java.lang.ArrayIndexOutOfBoundsException
            dup
         2: .line 1448
            ldc "buffer limit=%d, index=%d, limit=%d"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* buffer */
            invokevirtual java.nio.ByteBuffer.limit:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            iload 2 /* index */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            iload 3 /* size */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
         3: .line 1447
            invokespecial java.lang.ArrayIndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 1450
      StackMap locals:
      StackMap stack:
            aload 1 /* buffer */
            invokestatic com.google.protobuf.UnsafeUtil.addressOffset:(Ljava/nio/ByteBuffer;)J
            iload 2 /* index */
            i2l
            ladd
            lstore 4 /* address */
        start local 4 // long address
         5: .line 1451
            lload 4 /* address */
            iload 3 /* size */
            i2l
            ladd
            lstore 6 /* addressLimit */
        start local 6 // long addressLimit
         6: .line 1455
            iload 3 /* size */
            newarray 5
            astore 8 /* resultArr */
        start local 8 // char[] resultArr
         7: .line 1456
            iconst_0
            istore 9 /* resultPos */
        start local 9 // int resultPos
         8: .line 1460
            goto 14
         9: .line 1461
      StackMap locals: com.google.protobuf.Utf8$UnsafeProcessor java.nio.ByteBuffer int int long long char[] int
      StackMap stack:
            lload 4 /* address */
            invokestatic com.google.protobuf.UnsafeUtil.getByte:(J)B
            istore 10 /* b */
        start local 10 // byte b
        10: .line 1462
            iload 10 /* b */
            invokestatic com.google.protobuf.Utf8$DecodeUtil.isOneByte:(B)Z
            ifne 12
        11: .line 1463
            goto 53
        12: .line 1465
      StackMap locals: int
      StackMap stack:
            lload 4 /* address */
            lconst_1
            ladd
            lstore 4 /* address */
        13: .line 1466
            iload 10 /* b */
            aload 8 /* resultArr */
            iload 9 /* resultPos */
            iinc 9 /* resultPos */ 1
            invokestatic com.google.protobuf.Utf8$DecodeUtil.handleOneByte:(B[CI)V
        end local 10 // byte b
        14: .line 1460
      StackMap locals:
      StackMap stack:
            lload 4 /* address */
            lload 6 /* addressLimit */
            lcmp
            iflt 9
        15: .line 1469
            goto 53
        16: .line 1470
      StackMap locals:
      StackMap stack:
            lload 4 /* address */
            dup2
            lconst_1
            ladd
            lstore 4 /* address */
            invokestatic com.google.protobuf.UnsafeUtil.getByte:(J)B
            istore 10 /* byte1 */
        start local 10 // byte byte1
        17: .line 1471
            iload 10 /* byte1 */
            invokestatic com.google.protobuf.Utf8$DecodeUtil.isOneByte:(B)Z
            ifeq 27
        18: .line 1472
            iload 10 /* byte1 */
            aload 8 /* resultArr */
            iload 9 /* resultPos */
            iinc 9 /* resultPos */ 1
            invokestatic com.google.protobuf.Utf8$DecodeUtil.handleOneByte:(B[CI)V
        19: .line 1475
            goto 25
        20: .line 1476
      StackMap locals: int
      StackMap stack:
            lload 4 /* address */
            invokestatic com.google.protobuf.UnsafeUtil.getByte:(J)B
            istore 11 /* b */
        start local 11 // byte b
        21: .line 1477
            iload 11 /* b */
            invokestatic com.google.protobuf.Utf8$DecodeUtil.isOneByte:(B)Z
            ifne 23
        22: .line 1478
            goto 53
        23: .line 1480
      StackMap locals: int
      StackMap stack:
            lload 4 /* address */
            lconst_1
            ladd
            lstore 4 /* address */
        24: .line 1481
            iload 11 /* b */
            aload 8 /* resultArr */
            iload 9 /* resultPos */
            iinc 9 /* resultPos */ 1
            invokestatic com.google.protobuf.Utf8$DecodeUtil.handleOneByte:(B[CI)V
        end local 11 // byte b
        25: .line 1475
      StackMap locals:
      StackMap stack:
            lload 4 /* address */
            lload 6 /* addressLimit */
            lcmp
            iflt 20
        26: .line 1483
            goto 53
      StackMap locals:
      StackMap stack:
        27: iload 10 /* byte1 */
            invokestatic com.google.protobuf.Utf8$DecodeUtil.isTwoBytes:(B)Z
            ifeq 33
        28: .line 1484
            lload 4 /* address */
            lload 6 /* addressLimit */
            lcmp
            iflt 30
        29: .line 1485
            invokestatic com.google.protobuf.InvalidProtocolBufferException.invalidUtf8:()Lcom/google/protobuf/InvalidProtocolBufferException;
            athrow
        30: .line 1488
      StackMap locals:
      StackMap stack:
            iload 10 /* byte1 */
            lload 4 /* address */
            dup2
            lconst_1
            ladd
            lstore 4 /* address */
            invokestatic com.google.protobuf.UnsafeUtil.getByte:(J)B
            aload 8 /* resultArr */
            iload 9 /* resultPos */
            iinc 9 /* resultPos */ 1
        31: .line 1487
            invokestatic com.google.protobuf.Utf8$DecodeUtil.handleTwoBytes:(BB[CI)V
        32: .line 1489
            goto 53
      StackMap locals:
      StackMap stack:
        33: iload 10 /* byte1 */
            invokestatic com.google.protobuf.Utf8$DecodeUtil.isThreeBytes:(B)Z
            ifeq 43
        34: .line 1490
            lload 4 /* address */
            lload 6 /* addressLimit */
            lconst_1
            lsub
            lcmp
            iflt 36
        35: .line 1491
            invokestatic com.google.protobuf.InvalidProtocolBufferException.invalidUtf8:()Lcom/google/protobuf/InvalidProtocolBufferException;
            athrow
        36: .line 1494
      StackMap locals:
      StackMap stack:
            iload 10 /* byte1 */
        37: .line 1495
            lload 4 /* address */
            dup2
            lconst_1
            ladd
            lstore 4 /* address */
            invokestatic com.google.protobuf.UnsafeUtil.getByte:(J)B
        38: .line 1496
            lload 4 /* address */
            dup2
            lconst_1
            ladd
            lstore 4 /* address */
            invokestatic com.google.protobuf.UnsafeUtil.getByte:(J)B
        39: .line 1497
            aload 8 /* resultArr */
        40: .line 1498
            iload 9 /* resultPos */
            iinc 9 /* resultPos */ 1
        41: .line 1493
            invokestatic com.google.protobuf.Utf8$DecodeUtil.handleThreeBytes:(BBB[CI)V
        42: .line 1499
            goto 53
        43: .line 1500
      StackMap locals:
      StackMap stack:
            lload 4 /* address */
            lload 6 /* addressLimit */
            ldc 2
            lsub
            lcmp
            iflt 45
        44: .line 1501
            invokestatic com.google.protobuf.InvalidProtocolBufferException.invalidUtf8:()Lcom/google/protobuf/InvalidProtocolBufferException;
            athrow
        45: .line 1504
      StackMap locals:
      StackMap stack:
            iload 10 /* byte1 */
        46: .line 1505
            lload 4 /* address */
            dup2
            lconst_1
            ladd
            lstore 4 /* address */
            invokestatic com.google.protobuf.UnsafeUtil.getByte:(J)B
        47: .line 1506
            lload 4 /* address */
            dup2
            lconst_1
            ladd
            lstore 4 /* address */
            invokestatic com.google.protobuf.UnsafeUtil.getByte:(J)B
        48: .line 1507
            lload 4 /* address */
            dup2
            lconst_1
            ladd
            lstore 4 /* address */
            invokestatic com.google.protobuf.UnsafeUtil.getByte:(J)B
        49: .line 1508
            aload 8 /* resultArr */
        50: .line 1509
            iload 9 /* resultPos */
            iinc 9 /* resultPos */ 1
        51: .line 1503
            invokestatic com.google.protobuf.Utf8$DecodeUtil.handleFourBytes:(BBBB[CI)V
        52: .line 1511
            iinc 9 /* resultPos */ 1
        end local 10 // byte byte1
        53: .line 1469
      StackMap locals:
      StackMap stack:
            lload 4 /* address */
            lload 6 /* addressLimit */
            lcmp
            iflt 16
        54: .line 1515
            new java.lang.String
            dup
            aload 8 /* resultArr */
            iconst_0
            iload 9 /* resultPos */
            invokespecial java.lang.String.<init>:([CII)V
            areturn
        end local 9 // int resultPos
        end local 8 // char[] resultArr
        end local 6 // long addressLimit
        end local 4 // long address
        end local 3 // int size
        end local 2 // int index
        end local 1 // java.nio.ByteBuffer buffer
        end local 0 // com.google.protobuf.Utf8$UnsafeProcessor this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   55     0          this  Lcom/google/protobuf/Utf8$UnsafeProcessor;
            0   55     1        buffer  Ljava/nio/ByteBuffer;
            0   55     2         index  I
            0   55     3          size  I
            5   55     4       address  J
            6   55     6  addressLimit  J
            7   55     8     resultArr  [C
            8   55     9     resultPos  I
           10   14    10             b  B
           17   53    10         byte1  B
           21   25    11             b  B
    Exceptions:
      throws com.google.protobuf.InvalidProtocolBufferException
    MethodParameters:
        Name  Flags
      buffer  
      index   
      size    

  int encodeUtf8(java.lang.CharSequence, byte[], int, int);
    descriptor: (Ljava/lang/CharSequence;[BII)I
    flags: (0x0000) 
    Code:
      stack=7, locals=14, args_size=5
        start local 0 // com.google.protobuf.Utf8$UnsafeProcessor this
        start local 1 // java.lang.CharSequence in
        start local 2 // byte[] out
        start local 3 // int offset
        start local 4 // int length
         0: .line 1520
            iload 3 /* offset */
            i2l
            lstore 5 /* outIx */
        start local 5 // long outIx
         1: .line 1521
            lload 5 /* outIx */
            iload 4 /* length */
            i2l
            ladd
            lstore 7 /* outLimit */
        start local 7 // long outLimit
         2: .line 1522
            aload 1 /* in */
            invokeinterface java.lang.CharSequence.length:()I
            istore 9 /* inLimit */
        start local 9 // int inLimit
         3: .line 1523
            iload 9 /* inLimit */
            iload 4 /* length */
            if_icmpgt 4
            aload 2 /* out */
            arraylength
            iload 4 /* length */
            isub
            iload 3 /* offset */
            if_icmpge 7
         4: .line 1525
      StackMap locals: long long int
      StackMap stack:
            new java.lang.ArrayIndexOutOfBoundsException
            dup
         5: .line 1526
            new java.lang.StringBuilder
            dup
            ldc "Failed writing "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* in */
            iload 9 /* inLimit */
            iconst_1
            isub
            invokeinterface java.lang.CharSequence.charAt:(I)C
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            ldc " at index "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 3 /* offset */
            iload 4 /* length */
            iadd
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         6: .line 1525
            invokespecial java.lang.ArrayIndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 1531
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 10 /* inIx */
        start local 10 // int inIx
         8: .line 1532
            goto 11
        start local 11 // char c
         9: .line 1533
      StackMap locals: int int
      StackMap stack:
            aload 2 /* out */
            lload 5 /* outIx */
            dup2
            lconst_1
            ladd
            lstore 5 /* outIx */
            iload 11 /* c */
            i2b
            invokestatic com.google.protobuf.UnsafeUtil.putByte:([BJB)V
        10: .line 1532
            iinc 10 /* inIx */ 1
        end local 11 // char c
      StackMap locals:
      StackMap stack:
        11: iload 10 /* inIx */
            iload 9 /* inLimit */
            if_icmpge 13
            aload 1 /* in */
            iload 10 /* inIx */
            invokeinterface java.lang.CharSequence.charAt:(I)C
            dup
            istore 11 /* c */
        start local 11 // char c
        12: sipush 128
            if_icmplt 9
        end local 11 // char c
        13: .line 1535
      StackMap locals:
      StackMap stack:
            iload 10 /* inIx */
            iload 9 /* inLimit */
            if_icmpne 44
        14: .line 1537
            lload 5 /* outIx */
            l2i
            ireturn
        15: .line 1541
      StackMap locals:
      StackMap stack:
            aload 1 /* in */
            iload 10 /* inIx */
            invokeinterface java.lang.CharSequence.charAt:(I)C
            istore 11 /* c */
        start local 11 // char c
        16: .line 1542
            iload 11 /* c */
            sipush 128
            if_icmpge 19
            lload 5 /* outIx */
            lload 7 /* outLimit */
            lcmp
            ifge 19
        17: .line 1543
            aload 2 /* out */
            lload 5 /* outIx */
            dup2
            lconst_1
            ladd
            lstore 5 /* outIx */
            iload 11 /* c */
            i2b
            invokestatic com.google.protobuf.UnsafeUtil.putByte:([BJB)V
        18: .line 1544
            goto 43
      StackMap locals: int
      StackMap stack:
        19: iload 11 /* c */
            sipush 2048
            if_icmpge 23
            lload 5 /* outIx */
            lload 7 /* outLimit */
            ldc 2
            lsub
            lcmp
            ifgt 23
        20: .line 1545
            aload 2 /* out */
            lload 5 /* outIx */
            dup2
            lconst_1
            ladd
            lstore 5 /* outIx */
            sipush 960
            iload 11 /* c */
            bipush 6
            iushr
            ior
            i2b
            invokestatic com.google.protobuf.UnsafeUtil.putByte:([BJB)V
        21: .line 1546
            aload 2 /* out */
            lload 5 /* outIx */
            dup2
            lconst_1
            ladd
            lstore 5 /* outIx */
            sipush 128
            bipush 63
            iload 11 /* c */
            iand
            ior
            i2b
            invokestatic com.google.protobuf.UnsafeUtil.putByte:([BJB)V
        22: .line 1547
            goto 43
      StackMap locals:
      StackMap stack:
        23: iload 11 /* c */
            ldc 55296
            if_icmplt 24
            ldc 57343
            iload 11 /* c */
            if_icmpge 29
      StackMap locals:
      StackMap stack:
        24: lload 5 /* outIx */
            lload 7 /* outLimit */
            ldc 3
            lsub
            lcmp
            ifgt 29
        25: .line 1549
            aload 2 /* out */
            lload 5 /* outIx */
            dup2
            lconst_1
            ladd
            lstore 5 /* outIx */
            sipush 480
            iload 11 /* c */
            bipush 12
            iushr
            ior
            i2b
            invokestatic com.google.protobuf.UnsafeUtil.putByte:([BJB)V
        26: .line 1550
            aload 2 /* out */
            lload 5 /* outIx */
            dup2
            lconst_1
            ladd
            lstore 5 /* outIx */
            sipush 128
            bipush 63
            iload 11 /* c */
            bipush 6
            iushr
            iand
            ior
            i2b
            invokestatic com.google.protobuf.UnsafeUtil.putByte:([BJB)V
        27: .line 1551
            aload 2 /* out */
            lload 5 /* outIx */
            dup2
            lconst_1
            ladd
            lstore 5 /* outIx */
            sipush 128
            bipush 63
            iload 11 /* c */
            iand
            ior
            i2b
            invokestatic com.google.protobuf.UnsafeUtil.putByte:([BJB)V
        28: .line 1552
            goto 43
      StackMap locals:
      StackMap stack:
        29: lload 5 /* outIx */
            lload 7 /* outLimit */
            ldc 4
            lsub
            lcmp
            ifgt 39
        30: .line 1556
            iload 10 /* inIx */
            iconst_1
            iadd
            iload 9 /* inLimit */
            if_icmpeq 32
            iload 11 /* c */
            aload 1 /* in */
            iinc 10 /* inIx */ 1
            iload 10 /* inIx */
            invokeinterface java.lang.CharSequence.charAt:(I)C
            dup
            istore 12 /* low */
        start local 12 // char low
        31: invokestatic java.lang.Character.isSurrogatePair:(CC)Z
            ifne 33
        end local 12 // char low
        32: .line 1557
      StackMap locals:
      StackMap stack:
            new com.google.protobuf.Utf8$UnpairedSurrogateException
            dup
            iload 10 /* inIx */
            iconst_1
            isub
            iload 9 /* inLimit */
            invokespecial com.google.protobuf.Utf8$UnpairedSurrogateException.<init>:(II)V
            athrow
        start local 12 // char low
        33: .line 1559
      StackMap locals: int
      StackMap stack:
            iload 11 /* c */
            iload 12 /* low */
            invokestatic java.lang.Character.toCodePoint:(CC)I
            istore 13 /* codePoint */
        start local 13 // int codePoint
        34: .line 1560
            aload 2 /* out */
            lload 5 /* outIx */
            dup2
            lconst_1
            ladd
            lstore 5 /* outIx */
            sipush 240
            iload 13 /* codePoint */
            bipush 18
            iushr
            ior
            i2b
            invokestatic com.google.protobuf.UnsafeUtil.putByte:([BJB)V
        35: .line 1561
            aload 2 /* out */
            lload 5 /* outIx */
            dup2
            lconst_1
            ladd
            lstore 5 /* outIx */
            sipush 128
            bipush 63
            iload 13 /* codePoint */
            bipush 12
            iushr
            iand
            ior
            i2b
            invokestatic com.google.protobuf.UnsafeUtil.putByte:([BJB)V
        36: .line 1562
            aload 2 /* out */
            lload 5 /* outIx */
            dup2
            lconst_1
            ladd
            lstore 5 /* outIx */
            sipush 128
            bipush 63
            iload 13 /* codePoint */
            bipush 6
            iushr
            iand
            ior
            i2b
            invokestatic com.google.protobuf.UnsafeUtil.putByte:([BJB)V
        37: .line 1563
            aload 2 /* out */
            lload 5 /* outIx */
            dup2
            lconst_1
            ladd
            lstore 5 /* outIx */
            sipush 128
            bipush 63
            iload 13 /* codePoint */
            iand
            ior
            i2b
            invokestatic com.google.protobuf.UnsafeUtil.putByte:([BJB)V
        end local 13 // int codePoint
        end local 12 // char low
        38: .line 1564
            goto 43
        39: .line 1565
      StackMap locals:
      StackMap stack:
            ldc 55296
            iload 11 /* c */
            if_icmpgt 42
            iload 11 /* c */
            ldc 57343
            if_icmpgt 42
        40: .line 1566
            iload 10 /* inIx */
            iconst_1
            iadd
            iload 9 /* inLimit */
            if_icmpeq 41
            iload 11 /* c */
            aload 1 /* in */
            iload 10 /* inIx */
            iconst_1
            iadd
            invokeinterface java.lang.CharSequence.charAt:(I)C
            invokestatic java.lang.Character.isSurrogatePair:(CC)Z
            ifne 42
        41: .line 1568
      StackMap locals:
      StackMap stack:
            new com.google.protobuf.Utf8$UnpairedSurrogateException
            dup
            iload 10 /* inIx */
            iload 9 /* inLimit */
            invokespecial com.google.protobuf.Utf8$UnpairedSurrogateException.<init>:(II)V
            athrow
        42: .line 1571
      StackMap locals:
      StackMap stack:
            new java.lang.ArrayIndexOutOfBoundsException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Failed writing "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 11 /* c */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            ldc " at index "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            lload 5 /* outIx */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.ArrayIndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
            athrow
        43: .line 1540
      StackMap locals:
      StackMap stack:
            iinc 10 /* inIx */ 1
        end local 11 // char c
      StackMap locals:
      StackMap stack:
        44: iload 10 /* inIx */
            iload 9 /* inLimit */
            if_icmplt 15
        45: .line 1576
            lload 5 /* outIx */
            l2i
            ireturn
        end local 10 // int inIx
        end local 9 // int inLimit
        end local 7 // long outLimit
        end local 5 // long outIx
        end local 4 // int length
        end local 3 // int offset
        end local 2 // byte[] out
        end local 1 // java.lang.CharSequence in
        end local 0 // com.google.protobuf.Utf8$UnsafeProcessor this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   46     0       this  Lcom/google/protobuf/Utf8$UnsafeProcessor;
            0   46     1         in  Ljava/lang/CharSequence;
            0   46     2        out  [B
            0   46     3     offset  I
            0   46     4     length  I
            1   46     5      outIx  J
            2   46     7   outLimit  J
            3   46     9    inLimit  I
            8   46    10       inIx  I
            9   11    11          c  C
           12   13    11          c  C
           16   44    11          c  C
           31   32    12        low  C
           33   38    12        low  C
           34   38    13  codePoint  I
    MethodParameters:
        Name  Flags
      in      final
      out     final
      offset  final
      length  final

  void encodeUtf8Direct(java.lang.CharSequence, java.nio.ByteBuffer);
    descriptor: (Ljava/lang/CharSequence;Ljava/nio/ByteBuffer;)V
    flags: (0x0000) 
    Code:
      stack=6, locals=14, args_size=3
        start local 0 // com.google.protobuf.Utf8$UnsafeProcessor this
        start local 1 // java.lang.CharSequence in
        start local 2 // java.nio.ByteBuffer out
         0: .line 1581
            aload 2 /* out */
            invokestatic com.google.protobuf.UnsafeUtil.addressOffset:(Ljava/nio/ByteBuffer;)J
            lstore 3 /* address */
        start local 3 // long address
         1: .line 1582
            lload 3 /* address */
            aload 2 /* out */
            invokevirtual java.nio.ByteBuffer.position:()I
            i2l
            ladd
            lstore 5 /* outIx */
        start local 5 // long outIx
         2: .line 1583
            lload 3 /* address */
            aload 2 /* out */
            invokevirtual java.nio.ByteBuffer.limit:()I
            i2l
            ladd
            lstore 7 /* outLimit */
        start local 7 // long outLimit
         3: .line 1584
            aload 1 /* in */
            invokeinterface java.lang.CharSequence.length:()I
            istore 9 /* inLimit */
        start local 9 // int inLimit
         4: .line 1585
            iload 9 /* inLimit */
            i2l
            lload 7 /* outLimit */
            lload 5 /* outIx */
            lsub
            lcmp
            ifle 8
         5: .line 1587
            new java.lang.ArrayIndexOutOfBoundsException
            dup
         6: .line 1588
            new java.lang.StringBuilder
            dup
            ldc "Failed writing "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* in */
            iload 9 /* inLimit */
            iconst_1
            isub
            invokeinterface java.lang.CharSequence.charAt:(I)C
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            ldc " at index "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* out */
            invokevirtual java.nio.ByteBuffer.limit:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         7: .line 1587
            invokespecial java.lang.ArrayIndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 1593
      StackMap locals: com.google.protobuf.Utf8$UnsafeProcessor java.lang.CharSequence java.nio.ByteBuffer long long long int
      StackMap stack:
            iconst_0
            istore 10 /* inIx */
        start local 10 // int inIx
         9: .line 1594
            goto 12
        start local 11 // char c
        10: .line 1595
      StackMap locals: int int
      StackMap stack:
            lload 5 /* outIx */
            dup2
            lconst_1
            ladd
            lstore 5 /* outIx */
            iload 11 /* c */
            i2b
            invokestatic com.google.protobuf.UnsafeUtil.putByte:(JB)V
        11: .line 1594
            iinc 10 /* inIx */ 1
        end local 11 // char c
      StackMap locals:
      StackMap stack:
        12: iload 10 /* inIx */
            iload 9 /* inLimit */
            if_icmpge 14
            aload 1 /* in */
            iload 10 /* inIx */
            invokeinterface java.lang.CharSequence.charAt:(I)C
            dup
            istore 11 /* c */
        start local 11 // char c
        13: sipush 128
            if_icmplt 10
        end local 11 // char c
        14: .line 1597
      StackMap locals:
      StackMap stack:
            iload 10 /* inIx */
            iload 9 /* inLimit */
            if_icmpne 46
        15: .line 1599
            aload 2 /* out */
            lload 5 /* outIx */
            lload 3 /* address */
            lsub
            l2i
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
            pop
        16: .line 1600
            return
        17: .line 1604
      StackMap locals:
      StackMap stack:
            aload 1 /* in */
            iload 10 /* inIx */
            invokeinterface java.lang.CharSequence.charAt:(I)C
            istore 11 /* c */
        start local 11 // char c
        18: .line 1605
            iload 11 /* c */
            sipush 128
            if_icmpge 21
            lload 5 /* outIx */
            lload 7 /* outLimit */
            lcmp
            ifge 21
        19: .line 1606
            lload 5 /* outIx */
            dup2
            lconst_1
            ladd
            lstore 5 /* outIx */
            iload 11 /* c */
            i2b
            invokestatic com.google.protobuf.UnsafeUtil.putByte:(JB)V
        20: .line 1607
            goto 45
      StackMap locals: int
      StackMap stack:
        21: iload 11 /* c */
            sipush 2048
            if_icmpge 25
            lload 5 /* outIx */
            lload 7 /* outLimit */
            ldc 2
            lsub
            lcmp
            ifgt 25
        22: .line 1608
            lload 5 /* outIx */
            dup2
            lconst_1
            ladd
            lstore 5 /* outIx */
            sipush 960
            iload 11 /* c */
            bipush 6
            iushr
            ior
            i2b
            invokestatic com.google.protobuf.UnsafeUtil.putByte:(JB)V
        23: .line 1609
            lload 5 /* outIx */
            dup2
            lconst_1
            ladd
            lstore 5 /* outIx */
            sipush 128
            bipush 63
            iload 11 /* c */
            iand
            ior
            i2b
            invokestatic com.google.protobuf.UnsafeUtil.putByte:(JB)V
        24: .line 1610
            goto 45
      StackMap locals:
      StackMap stack:
        25: iload 11 /* c */
            ldc 55296
            if_icmplt 26
            ldc 57343
            iload 11 /* c */
            if_icmpge 31
      StackMap locals:
      StackMap stack:
        26: lload 5 /* outIx */
            lload 7 /* outLimit */
            ldc 3
            lsub
            lcmp
            ifgt 31
        27: .line 1612
            lload 5 /* outIx */
            dup2
            lconst_1
            ladd
            lstore 5 /* outIx */
            sipush 480
            iload 11 /* c */
            bipush 12
            iushr
            ior
            i2b
            invokestatic com.google.protobuf.UnsafeUtil.putByte:(JB)V
        28: .line 1613
            lload 5 /* outIx */
            dup2
            lconst_1
            ladd
            lstore 5 /* outIx */
            sipush 128
            bipush 63
            iload 11 /* c */
            bipush 6
            iushr
            iand
            ior
            i2b
            invokestatic com.google.protobuf.UnsafeUtil.putByte:(JB)V
        29: .line 1614
            lload 5 /* outIx */
            dup2
            lconst_1
            ladd
            lstore 5 /* outIx */
            sipush 128
            bipush 63
            iload 11 /* c */
            iand
            ior
            i2b
            invokestatic com.google.protobuf.UnsafeUtil.putByte:(JB)V
        30: .line 1615
            goto 45
      StackMap locals:
      StackMap stack:
        31: lload 5 /* outIx */
            lload 7 /* outLimit */
            ldc 4
            lsub
            lcmp
            ifgt 41
        32: .line 1619
            iload 10 /* inIx */
            iconst_1
            iadd
            iload 9 /* inLimit */
            if_icmpeq 34
            iload 11 /* c */
            aload 1 /* in */
            iinc 10 /* inIx */ 1
            iload 10 /* inIx */
            invokeinterface java.lang.CharSequence.charAt:(I)C
            dup
            istore 12 /* low */
        start local 12 // char low
        33: invokestatic java.lang.Character.isSurrogatePair:(CC)Z
            ifne 35
        end local 12 // char low
        34: .line 1620
      StackMap locals:
      StackMap stack:
            new com.google.protobuf.Utf8$UnpairedSurrogateException
            dup
            iload 10 /* inIx */
            iconst_1
            isub
            iload 9 /* inLimit */
            invokespecial com.google.protobuf.Utf8$UnpairedSurrogateException.<init>:(II)V
            athrow
        start local 12 // char low
        35: .line 1622
      StackMap locals: int
      StackMap stack:
            iload 11 /* c */
            iload 12 /* low */
            invokestatic java.lang.Character.toCodePoint:(CC)I
            istore 13 /* codePoint */
        start local 13 // int codePoint
        36: .line 1623
            lload 5 /* outIx */
            dup2
            lconst_1
            ladd
            lstore 5 /* outIx */
            sipush 240
            iload 13 /* codePoint */
            bipush 18
            iushr
            ior
            i2b
            invokestatic com.google.protobuf.UnsafeUtil.putByte:(JB)V
        37: .line 1624
            lload 5 /* outIx */
            dup2
            lconst_1
            ladd
            lstore 5 /* outIx */
            sipush 128
            bipush 63
            iload 13 /* codePoint */
            bipush 12
            iushr
            iand
            ior
            i2b
            invokestatic com.google.protobuf.UnsafeUtil.putByte:(JB)V
        38: .line 1625
            lload 5 /* outIx */
            dup2
            lconst_1
            ladd
            lstore 5 /* outIx */
            sipush 128
            bipush 63
            iload 13 /* codePoint */
            bipush 6
            iushr
            iand
            ior
            i2b
            invokestatic com.google.protobuf.UnsafeUtil.putByte:(JB)V
        39: .line 1626
            lload 5 /* outIx */
            dup2
            lconst_1
            ladd
            lstore 5 /* outIx */
            sipush 128
            bipush 63
            iload 13 /* codePoint */
            iand
            ior
            i2b
            invokestatic com.google.protobuf.UnsafeUtil.putByte:(JB)V
        end local 13 // int codePoint
        end local 12 // char low
        40: .line 1627
            goto 45
        41: .line 1628
      StackMap locals:
      StackMap stack:
            ldc 55296
            iload 11 /* c */
            if_icmpgt 44
            iload 11 /* c */
            ldc 57343
            if_icmpgt 44
        42: .line 1629
            iload 10 /* inIx */
            iconst_1
            iadd
            iload 9 /* inLimit */
            if_icmpeq 43
            iload 11 /* c */
            aload 1 /* in */
            iload 10 /* inIx */
            iconst_1
            iadd
            invokeinterface java.lang.CharSequence.charAt:(I)C
            invokestatic java.lang.Character.isSurrogatePair:(CC)Z
            ifne 44
        43: .line 1631
      StackMap locals:
      StackMap stack:
            new com.google.protobuf.Utf8$UnpairedSurrogateException
            dup
            iload 10 /* inIx */
            iload 9 /* inLimit */
            invokespecial com.google.protobuf.Utf8$UnpairedSurrogateException.<init>:(II)V
            athrow
        44: .line 1634
      StackMap locals:
      StackMap stack:
            new java.lang.ArrayIndexOutOfBoundsException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Failed writing "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 11 /* c */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            ldc " at index "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            lload 5 /* outIx */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.ArrayIndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
            athrow
        45: .line 1603
      StackMap locals:
      StackMap stack:
            iinc 10 /* inIx */ 1
        end local 11 // char c
      StackMap locals:
      StackMap stack:
        46: iload 10 /* inIx */
            iload 9 /* inLimit */
            if_icmplt 17
        47: .line 1639
            aload 2 /* out */
            lload 5 /* outIx */
            lload 3 /* address */
            lsub
            l2i
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
            pop
        48: .line 1640
            return
        end local 10 // int inIx
        end local 9 // int inLimit
        end local 7 // long outLimit
        end local 5 // long outIx
        end local 3 // long address
        end local 2 // java.nio.ByteBuffer out
        end local 1 // java.lang.CharSequence in
        end local 0 // com.google.protobuf.Utf8$UnsafeProcessor this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   49     0       this  Lcom/google/protobuf/Utf8$UnsafeProcessor;
            0   49     1         in  Ljava/lang/CharSequence;
            0   49     2        out  Ljava/nio/ByteBuffer;
            1   49     3    address  J
            2   49     5      outIx  J
            3   49     7   outLimit  J
            4   49     9    inLimit  I
            9   49    10       inIx  I
           10   12    11          c  C
           13   14    11          c  C
           18   46    11          c  C
           33   34    12        low  C
           35   40    12        low  C
           36   40    13  codePoint  I
    MethodParameters:
      Name  Flags
      in    
      out   

  private static int unsafeEstimateConsecutiveAscii(byte[], long, int);
    descriptor: ([BJI)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=5, args_size=3
        start local 0 // byte[] bytes
        start local 1 // long offset
        start local 3 // int maxChars
         0: .line 1654
            iload 3 /* maxChars */
            bipush 16
            if_icmpge 2
         1: .line 1656
            iconst_0
            ireturn
         2: .line 1659
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         3: goto 7
         4: .line 1660
      StackMap locals: int
      StackMap stack:
            aload 0 /* bytes */
            lload 1 /* offset */
            dup2
            lconst_1
            ladd
            lstore 1 /* offset */
            invokestatic com.google.protobuf.UnsafeUtil.getByte:([BJ)B
            ifge 6
         5: .line 1661
            iload 4 /* i */
            ireturn
         6: .line 1659
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 4 /* i */
            iload 3 /* maxChars */
            if_icmplt 4
        end local 4 // int i
         8: .line 1664
            iload 3 /* maxChars */
            ireturn
        end local 3 // int maxChars
        end local 1 // long offset
        end local 0 // byte[] bytes
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0     bytes  [B
            0    9     1    offset  J
            0    9     3  maxChars  I
            3    8     4         i  I
    MethodParameters:
          Name  Flags
      bytes     
      offset    
      maxChars  final

  private static int unsafeEstimateConsecutiveAscii(long, int);
    descriptor: (JI)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=6, args_size=2
        start local 0 // long address
        start local 2 // int maxChars
         0: .line 1672
            iload 2 /* maxChars */
            istore 3 /* remaining */
        start local 3 // int remaining
         1: .line 1673
            iload 3 /* remaining */
            bipush 16
            if_icmpge 3
         2: .line 1675
            iconst_0
            ireturn
         3: .line 1681
      StackMap locals: int
      StackMap stack:
            bipush 8
            lload 0 /* address */
            l2i
            bipush 7
            iand
            isub
            istore 4 /* unaligned */
        start local 4 // int unaligned
         4: .line 1682
            iload 4 /* unaligned */
            istore 5 /* j */
        start local 5 // int j
         5: goto 9
         6: .line 1683
      StackMap locals: int int
      StackMap stack:
            lload 0 /* address */
            dup2
            lconst_1
            ladd
            lstore 0 /* address */
            invokestatic com.google.protobuf.UnsafeUtil.getByte:(J)B
            ifge 8
         7: .line 1684
            iload 4 /* unaligned */
            iload 5 /* j */
            isub
            ireturn
         8: .line 1682
      StackMap locals:
      StackMap stack:
            iinc 5 /* j */ -1
      StackMap locals:
      StackMap stack:
         9: iload 5 /* j */
            ifgt 6
        end local 5 // int j
        10: .line 1691
            iload 3 /* remaining */
            iload 4 /* unaligned */
            isub
            istore 3 /* remaining */
        11: .line 1693
            goto 13
        12: .line 1694
      StackMap locals:
      StackMap stack:
            lload 0 /* address */
            ldc 8
            ladd
            lstore 0 /* address */
            iinc 3 /* remaining */ -8
        13: .line 1693
      StackMap locals:
      StackMap stack:
            iload 3 /* remaining */
            bipush 8
            if_icmplt 14
            lload 0 /* address */
            invokestatic com.google.protobuf.UnsafeUtil.getLong:(J)J
            ldc -9187201950435737472
            land
            lconst_0
            lcmp
            ifeq 12
        14: .line 1695
      StackMap locals:
      StackMap stack:
            iload 2 /* maxChars */
            iload 3 /* remaining */
            isub
            ireturn
        end local 4 // int unaligned
        end local 3 // int remaining
        end local 2 // int maxChars
        end local 0 // long address
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   15     0    address  J
            0   15     2   maxChars  I
            1   15     3  remaining  I
            4   15     4  unaligned  I
            5   10     5          j  I
    MethodParameters:
          Name  Flags
      address   
      maxChars  final

  private static int partialIsValidUtf8(byte[], long, int);
    descriptor: ([BJI)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=7, args_size=3
        start local 0 // byte[] bytes
        start local 1 // long offset
        start local 3 // int remaining
         0: .line 1700
            aload 0 /* bytes */
            lload 1 /* offset */
            iload 3 /* remaining */
            invokestatic com.google.protobuf.Utf8$UnsafeProcessor.unsafeEstimateConsecutiveAscii:([BJI)I
            istore 4 /* skipped */
        start local 4 // int skipped
         1: .line 1701
            iload 3 /* remaining */
            iload 4 /* skipped */
            isub
            istore 3 /* remaining */
         2: .line 1702
            lload 1 /* offset */
            iload 4 /* skipped */
            i2l
            ladd
            lstore 1 /* offset */
         3: .line 1708
      StackMap locals: int
      StackMap stack:
            iconst_0
            istore 5 /* byte1 */
        start local 5 // int byte1
         4: .line 1709
            goto 6
      StackMap locals: int
      StackMap stack:
         5: iinc 3 /* remaining */ -1
      StackMap locals:
      StackMap stack:
         6: iload 3 /* remaining */
            ifle 7
            aload 0 /* bytes */
            lload 1 /* offset */
            dup2
            lconst_1
            ladd
            lstore 1 /* offset */
            invokestatic com.google.protobuf.UnsafeUtil.getByte:([BJ)B
            dup
            istore 5 /* byte1 */
            ifge 5
         7: .line 1710
      StackMap locals:
      StackMap stack:
            iload 3 /* remaining */
            ifne 9
         8: .line 1711
            iconst_0
            ireturn
         9: .line 1713
      StackMap locals:
      StackMap stack:
            iinc 3 /* remaining */ -1
        10: .line 1716
            iload 5 /* byte1 */
            bipush -32
            if_icmpge 16
        11: .line 1718
            iload 3 /* remaining */
            ifne 13
        12: .line 1720
            iload 5 /* byte1 */
            ireturn
        13: .line 1722
      StackMap locals:
      StackMap stack:
            iinc 3 /* remaining */ -1
        14: .line 1726
            iload 5 /* byte1 */
            bipush -62
            if_icmplt 15
            aload 0 /* bytes */
            lload 1 /* offset */
            dup2
            lconst_1
            ladd
            lstore 1 /* offset */
            invokestatic com.google.protobuf.UnsafeUtil.getByte:([BJ)B
            bipush -65
            if_icmple 3
        15: .line 1727
      StackMap locals:
      StackMap stack:
            iconst_m1
            ireturn
        16: .line 1729
      StackMap locals:
      StackMap stack:
            iload 5 /* byte1 */
            bipush -16
            if_icmpge 26
        17: .line 1731
            iload 3 /* remaining */
            iconst_2
            if_icmpge 19
        18: .line 1733
            aload 0 /* bytes */
            iload 5 /* byte1 */
            lload 1 /* offset */
            iload 3 /* remaining */
            invokestatic com.google.protobuf.Utf8$UnsafeProcessor.unsafeIncompleteStateFor:([BIJI)I
            ireturn
        19: .line 1735
      StackMap locals:
      StackMap stack:
            iinc 3 /* remaining */ -2
        20: .line 1738
            aload 0 /* bytes */
            lload 1 /* offset */
            dup2
            lconst_1
            ladd
            lstore 1 /* offset */
            invokestatic com.google.protobuf.UnsafeUtil.getByte:([BJ)B
            dup
            istore 6 /* byte2 */
        start local 6 // int byte2
        21: bipush -65
            if_icmpgt 25
        22: .line 1740
            iload 5 /* byte1 */
            bipush -32
            if_icmpne 23
            iload 6 /* byte2 */
            bipush -96
            if_icmplt 25
        23: .line 1742
      StackMap locals: int
      StackMap stack:
            iload 5 /* byte1 */
            bipush -19
            if_icmpne 24
            iload 6 /* byte2 */
            bipush -96
            if_icmpge 25
        24: .line 1744
      StackMap locals:
      StackMap stack:
            aload 0 /* bytes */
            lload 1 /* offset */
            dup2
            lconst_1
            ladd
            lstore 1 /* offset */
            invokestatic com.google.protobuf.UnsafeUtil.getByte:([BJ)B
            bipush -65
            if_icmple 3
        25: .line 1745
      StackMap locals:
      StackMap stack:
            iconst_m1
            ireturn
        end local 6 // int byte2
        26: .line 1749
      StackMap locals:
      StackMap stack:
            iload 3 /* remaining */
            iconst_3
            if_icmpge 28
        27: .line 1751
            aload 0 /* bytes */
            iload 5 /* byte1 */
            lload 1 /* offset */
            iload 3 /* remaining */
            invokestatic com.google.protobuf.Utf8$UnsafeProcessor.unsafeIncompleteStateFor:([BIJI)I
            ireturn
        28: .line 1753
      StackMap locals:
      StackMap stack:
            iinc 3 /* remaining */ -3
        29: .line 1756
            aload 0 /* bytes */
            lload 1 /* offset */
            dup2
            lconst_1
            ladd
            lstore 1 /* offset */
            invokestatic com.google.protobuf.UnsafeUtil.getByte:([BJ)B
            dup
            istore 6 /* byte2 */
        start local 6 // int byte2
        30: bipush -65
            if_icmpgt 34
        31: .line 1761
            iload 5 /* byte1 */
            bipush 28
            ishl
            iload 6 /* byte2 */
            bipush -112
            isub
            iadd
            bipush 30
            ishr
            ifne 34
        32: .line 1763
            aload 0 /* bytes */
            lload 1 /* offset */
            dup2
            lconst_1
            ladd
            lstore 1 /* offset */
            invokestatic com.google.protobuf.UnsafeUtil.getByte:([BJ)B
            bipush -65
            if_icmpgt 34
        33: .line 1765
            aload 0 /* bytes */
            lload 1 /* offset */
            dup2
            lconst_1
            ladd
            lstore 1 /* offset */
            invokestatic com.google.protobuf.UnsafeUtil.getByte:([BJ)B
            bipush -65
            if_icmple 3
        34: .line 1766
      StackMap locals: int
      StackMap stack:
            iconst_m1
            ireturn
        end local 6 // int byte2
        end local 5 // int byte1
        end local 4 // int skipped
        end local 3 // int remaining
        end local 1 // long offset
        end local 0 // byte[] bytes
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   35     0      bytes  [B
            0   35     1     offset  J
            0   35     3  remaining  I
            1   35     4    skipped  I
            4   35     5      byte1  I
           21   26     6      byte2  I
           30   35     6      byte2  I
    MethodParameters:
           Name  Flags
      bytes      final
      offset     
      remaining  

  private static int partialIsValidUtf8(long, int);
    descriptor: (JI)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=6, args_size=2
        start local 0 // long address
        start local 2 // int remaining
         0: .line 1774
            lload 0 /* address */
            iload 2 /* remaining */
            invokestatic com.google.protobuf.Utf8$UnsafeProcessor.unsafeEstimateConsecutiveAscii:(JI)I
            istore 3 /* skipped */
        start local 3 // int skipped
         1: .line 1775
            lload 0 /* address */
            iload 3 /* skipped */
            i2l
            ladd
            lstore 0 /* address */
         2: .line 1776
            iload 2 /* remaining */
            iload 3 /* skipped */
            isub
            istore 2 /* remaining */
         3: .line 1782
      StackMap locals: int
      StackMap stack:
            iconst_0
            istore 4 /* byte1 */
        start local 4 // int byte1
         4: .line 1783
            goto 6
      StackMap locals: int
      StackMap stack:
         5: iinc 2 /* remaining */ -1
      StackMap locals:
      StackMap stack:
         6: iload 2 /* remaining */
            ifle 7
            lload 0 /* address */
            dup2
            lconst_1
            ladd
            lstore 0 /* address */
            invokestatic com.google.protobuf.UnsafeUtil.getByte:(J)B
            dup
            istore 4 /* byte1 */
            ifge 5
         7: .line 1784
      StackMap locals:
      StackMap stack:
            iload 2 /* remaining */
            ifne 9
         8: .line 1785
            iconst_0
            ireturn
         9: .line 1787
      StackMap locals:
      StackMap stack:
            iinc 2 /* remaining */ -1
        10: .line 1789
            iload 4 /* byte1 */
            bipush -32
            if_icmpge 16
        11: .line 1792
            iload 2 /* remaining */
            ifne 13
        12: .line 1794
            iload 4 /* byte1 */
            ireturn
        13: .line 1796
      StackMap locals:
      StackMap stack:
            iinc 2 /* remaining */ -1
        14: .line 1800
            iload 4 /* byte1 */
            bipush -62
            if_icmplt 15
            lload 0 /* address */
            dup2
            lconst_1
            ladd
            lstore 0 /* address */
            invokestatic com.google.protobuf.UnsafeUtil.getByte:(J)B
            bipush -65
            if_icmple 3
        15: .line 1801
      StackMap locals:
      StackMap stack:
            iconst_m1
            ireturn
        16: .line 1803
      StackMap locals:
      StackMap stack:
            iload 4 /* byte1 */
            bipush -16
            if_icmpge 26
        17: .line 1806
            iload 2 /* remaining */
            iconst_2
            if_icmpge 19
        18: .line 1808
            lload 0 /* address */
            iload 4 /* byte1 */
            iload 2 /* remaining */
            invokestatic com.google.protobuf.Utf8$UnsafeProcessor.unsafeIncompleteStateFor:(JII)I
            ireturn
        19: .line 1810
      StackMap locals:
      StackMap stack:
            iinc 2 /* remaining */ -2
        20: .line 1812
            lload 0 /* address */
            dup2
            lconst_1
            ladd
            lstore 0 /* address */
            invokestatic com.google.protobuf.UnsafeUtil.getByte:(J)B
            istore 5 /* byte2 */
        start local 5 // byte byte2
        21: .line 1813
            iload 5 /* byte2 */
            bipush -65
            if_icmpgt 25
        22: .line 1815
            iload 4 /* byte1 */
            bipush -32
            if_icmpne 23
            iload 5 /* byte2 */
            bipush -96
            if_icmplt 25
        23: .line 1817
      StackMap locals: int
      StackMap stack:
            iload 4 /* byte1 */
            bipush -19
            if_icmpne 24
            iload 5 /* byte2 */
            bipush -96
            if_icmpge 25
        24: .line 1819
      StackMap locals:
      StackMap stack:
            lload 0 /* address */
            dup2
            lconst_1
            ladd
            lstore 0 /* address */
            invokestatic com.google.protobuf.UnsafeUtil.getByte:(J)B
            bipush -65
            if_icmple 3
        25: .line 1820
      StackMap locals:
      StackMap stack:
            iconst_m1
            ireturn
        end local 5 // byte byte2
        26: .line 1825
      StackMap locals:
      StackMap stack:
            iload 2 /* remaining */
            iconst_3
            if_icmpge 28
        27: .line 1827
            lload 0 /* address */
            iload 4 /* byte1 */
            iload 2 /* remaining */
            invokestatic com.google.protobuf.Utf8$UnsafeProcessor.unsafeIncompleteStateFor:(JII)I
            ireturn
        28: .line 1829
      StackMap locals:
      StackMap stack:
            iinc 2 /* remaining */ -3
        29: .line 1831
            lload 0 /* address */
            dup2
            lconst_1
            ladd
            lstore 0 /* address */
            invokestatic com.google.protobuf.UnsafeUtil.getByte:(J)B
            istore 5 /* byte2 */
        start local 5 // byte byte2
        30: .line 1832
            iload 5 /* byte2 */
            bipush -65
            if_icmpgt 34
        31: .line 1837
            iload 4 /* byte1 */
            bipush 28
            ishl
            iload 5 /* byte2 */
            bipush -112
            isub
            iadd
            bipush 30
            ishr
            ifne 34
        32: .line 1839
            lload 0 /* address */
            dup2
            lconst_1
            ladd
            lstore 0 /* address */
            invokestatic com.google.protobuf.UnsafeUtil.getByte:(J)B
            bipush -65
            if_icmpgt 34
        33: .line 1841
            lload 0 /* address */
            dup2
            lconst_1
            ladd
            lstore 0 /* address */
            invokestatic com.google.protobuf.UnsafeUtil.getByte:(J)B
            bipush -65
            if_icmple 3
        34: .line 1842
      StackMap locals: int
      StackMap stack:
            iconst_m1
            ireturn
        end local 5 // byte byte2
        end local 4 // int byte1
        end local 3 // int skipped
        end local 2 // int remaining
        end local 0 // long address
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   35     0    address  J
            0   35     2  remaining  I
            1   35     3    skipped  I
            4   35     4      byte1  I
           21   26     5      byte2  B
           30   35     5      byte2  B
    MethodParameters:
           Name  Flags
      address    
      remaining  

  private static int unsafeIncompleteStateFor(byte[], int, long, int);
    descriptor: ([BIJI)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=5, args_size=4
        start local 0 // byte[] bytes
        start local 1 // int byte1
        start local 2 // long offset
        start local 4 // int remaining
         0: .line 1850
            iload 4 /* remaining */
            tableswitch { // 0 - 2
                    0: 1
                    1: 2
                    2: 3
              default: 5
          }
         1: .line 1852
      StackMap locals:
      StackMap stack:
            iload 1 /* byte1 */
            invokestatic com.google.protobuf.Utf8.incompleteStateFor:(I)I
            ireturn
         2: .line 1854
      StackMap locals:
      StackMap stack:
            iload 1 /* byte1 */
            aload 0 /* bytes */
            lload 2 /* offset */
            invokestatic com.google.protobuf.UnsafeUtil.getByte:([BJ)B
            invokestatic com.google.protobuf.Utf8.incompleteStateFor:(II)I
            ireturn
         3: .line 1857
      StackMap locals:
      StackMap stack:
            iload 1 /* byte1 */
            aload 0 /* bytes */
            lload 2 /* offset */
            invokestatic com.google.protobuf.UnsafeUtil.getByte:([BJ)B
            aload 0 /* bytes */
            lload 2 /* offset */
            lconst_1
            ladd
            invokestatic com.google.protobuf.UnsafeUtil.getByte:([BJ)B
         4: .line 1856
            invokestatic com.google.protobuf.Utf8.incompleteStateFor:(III)I
            ireturn
         5: .line 1859
      StackMap locals:
      StackMap stack:
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        end local 4 // int remaining
        end local 2 // long offset
        end local 1 // int byte1
        end local 0 // byte[] bytes
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0      bytes  [B
            0    6     1      byte1  I
            0    6     2     offset  J
            0    6     4  remaining  I
    MethodParameters:
           Name  Flags
      bytes      
      byte1      
      offset     
      remaining  

  private static int unsafeIncompleteStateFor(long, int, int);
    descriptor: (JII)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // long address
        start local 2 // int byte1
        start local 3 // int remaining
         0: .line 1864
            iload 3 /* remaining */
            tableswitch { // 0 - 2
                    0: 1
                    1: 2
                    2: 3
              default: 5
          }
         1: .line 1866
      StackMap locals:
      StackMap stack:
            iload 2 /* byte1 */
            invokestatic com.google.protobuf.Utf8.incompleteStateFor:(I)I
            ireturn
         2: .line 1868
      StackMap locals:
      StackMap stack:
            iload 2 /* byte1 */
            lload 0 /* address */
            invokestatic com.google.protobuf.UnsafeUtil.getByte:(J)B
            invokestatic com.google.protobuf.Utf8.incompleteStateFor:(II)I
            ireturn
         3: .line 1871
      StackMap locals:
      StackMap stack:
            iload 2 /* byte1 */
            lload 0 /* address */
            invokestatic com.google.protobuf.UnsafeUtil.getByte:(J)B
            lload 0 /* address */
            lconst_1
            ladd
            invokestatic com.google.protobuf.UnsafeUtil.getByte:(J)B
         4: .line 1870
            invokestatic com.google.protobuf.Utf8.incompleteStateFor:(III)I
            ireturn
         5: .line 1873
      StackMap locals:
      StackMap stack:
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        end local 3 // int remaining
        end local 2 // int byte1
        end local 0 // long address
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0    address  J
            0    6     2      byte1  I
            0    6     3  remaining  I
    MethodParameters:
           Name  Flags
      address    
      byte1      final
      remaining  
}
SourceFile: "Utf8.java"
NestHost: com.google.protobuf.Utf8
InnerClasses:
  private DecodeUtil = com.google.protobuf.Utf8$DecodeUtil of com.google.protobuf.Utf8
  abstract Processor = com.google.protobuf.Utf8$Processor of com.google.protobuf.Utf8
  UnpairedSurrogateException = com.google.protobuf.Utf8$UnpairedSurrogateException of com.google.protobuf.Utf8
  final UnsafeProcessor = com.google.protobuf.Utf8$UnsafeProcessor of com.google.protobuf.Utf8