final class com.google.protobuf.UnsafeUtil
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.google.protobuf.UnsafeUtil
  super_class: java.lang.Object
{
  private static final java.util.logging.Logger logger;
    descriptor: Ljava/util/logging/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final sun.misc.Unsafe UNSAFE;
    descriptor: Lsun/misc/Unsafe;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.Class<?> MEMORY_CLASS;
    descriptor: Ljava/lang/Class;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/lang/Class<*>;

  private static final boolean IS_ANDROID_64;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final boolean IS_ANDROID_32;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final com.google.protobuf.UnsafeUtil$MemoryAccessor MEMORY_ACCESSOR;
    descriptor: Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final boolean HAS_UNSAFE_BYTEBUFFER_OPERATIONS;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final boolean HAS_UNSAFE_ARRAY_OPERATIONS;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static final long BYTE_ARRAY_BASE_OFFSET;
    descriptor: J
    flags: (0x0018) ACC_STATIC, ACC_FINAL

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  static final boolean IS_BIG_ENDIAN;
    descriptor: Z
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 44
            ldc Lcom/google/protobuf/UnsafeUtil;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic java.util.logging.Logger.getLogger:(Ljava/lang/String;)Ljava/util/logging/Logger;
            putstatic com.google.protobuf.UnsafeUtil.logger:Ljava/util/logging/Logger;
         1: .line 45
            invokestatic com.google.protobuf.UnsafeUtil.getUnsafe:()Lsun/misc/Unsafe;
            putstatic com.google.protobuf.UnsafeUtil.UNSAFE:Lsun/misc/Unsafe;
         2: .line 46
            invokestatic com.google.protobuf.Android.getMemoryClass:()Ljava/lang/Class;
            putstatic com.google.protobuf.UnsafeUtil.MEMORY_CLASS:Ljava/lang/Class;
         3: .line 47
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            invokestatic com.google.protobuf.UnsafeUtil.determineAndroidSupportByAddressSize:(Ljava/lang/Class;)Z
            putstatic com.google.protobuf.UnsafeUtil.IS_ANDROID_64:Z
         4: .line 48
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            invokestatic com.google.protobuf.UnsafeUtil.determineAndroidSupportByAddressSize:(Ljava/lang/Class;)Z
            putstatic com.google.protobuf.UnsafeUtil.IS_ANDROID_32:Z
         5: .line 49
            invokestatic com.google.protobuf.UnsafeUtil.getMemoryAccessor:()Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
            putstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
         6: .line 51
            invokestatic com.google.protobuf.UnsafeUtil.supportsUnsafeByteBufferOperations:()Z
         7: .line 50
            putstatic com.google.protobuf.UnsafeUtil.HAS_UNSAFE_BYTEBUFFER_OPERATIONS:Z
         8: .line 52
            invokestatic com.google.protobuf.UnsafeUtil.supportsUnsafeArrayOperations:()Z
            putstatic com.google.protobuf.UnsafeUtil.HAS_UNSAFE_ARRAY_OPERATIONS:Z
         9: .line 54
            ldc [B
            invokestatic com.google.protobuf.UnsafeUtil.arrayBaseOffset:(Ljava/lang/Class;)I
            i2l
            putstatic com.google.protobuf.UnsafeUtil.BYTE_ARRAY_BASE_OFFSET:J
        10: .line 58
            ldc [Z
            invokestatic com.google.protobuf.UnsafeUtil.arrayBaseOffset:(Ljava/lang/Class;)I
            i2l
            putstatic com.google.protobuf.UnsafeUtil.BOOLEAN_ARRAY_BASE_OFFSET:J
        11: .line 59
            ldc [Z
            invokestatic com.google.protobuf.UnsafeUtil.arrayIndexScale:(Ljava/lang/Class;)I
            i2l
            putstatic com.google.protobuf.UnsafeUtil.BOOLEAN_ARRAY_INDEX_SCALE:J
        12: .line 61
            ldc [I
            invokestatic com.google.protobuf.UnsafeUtil.arrayBaseOffset:(Ljava/lang/Class;)I
            i2l
            putstatic com.google.protobuf.UnsafeUtil.INT_ARRAY_BASE_OFFSET:J
        13: .line 62
            ldc [I
            invokestatic com.google.protobuf.UnsafeUtil.arrayIndexScale:(Ljava/lang/Class;)I
            i2l
            putstatic com.google.protobuf.UnsafeUtil.INT_ARRAY_INDEX_SCALE:J
        14: .line 64
            ldc [J
            invokestatic com.google.protobuf.UnsafeUtil.arrayBaseOffset:(Ljava/lang/Class;)I
            i2l
            putstatic com.google.protobuf.UnsafeUtil.LONG_ARRAY_BASE_OFFSET:J
        15: .line 65
            ldc [J
            invokestatic com.google.protobuf.UnsafeUtil.arrayIndexScale:(Ljava/lang/Class;)I
            i2l
            putstatic com.google.protobuf.UnsafeUtil.LONG_ARRAY_INDEX_SCALE:J
        16: .line 67
            ldc [F
            invokestatic com.google.protobuf.UnsafeUtil.arrayBaseOffset:(Ljava/lang/Class;)I
            i2l
            putstatic com.google.protobuf.UnsafeUtil.FLOAT_ARRAY_BASE_OFFSET:J
        17: .line 68
            ldc [F
            invokestatic com.google.protobuf.UnsafeUtil.arrayIndexScale:(Ljava/lang/Class;)I
            i2l
            putstatic com.google.protobuf.UnsafeUtil.FLOAT_ARRAY_INDEX_SCALE:J
        18: .line 70
            ldc [D
            invokestatic com.google.protobuf.UnsafeUtil.arrayBaseOffset:(Ljava/lang/Class;)I
            i2l
            putstatic com.google.protobuf.UnsafeUtil.DOUBLE_ARRAY_BASE_OFFSET:J
        19: .line 71
            ldc [D
            invokestatic com.google.protobuf.UnsafeUtil.arrayIndexScale:(Ljava/lang/Class;)I
            i2l
            putstatic com.google.protobuf.UnsafeUtil.DOUBLE_ARRAY_INDEX_SCALE:J
        20: .line 73
            ldc [Ljava/lang/Object;
            invokestatic com.google.protobuf.UnsafeUtil.arrayBaseOffset:(Ljava/lang/Class;)I
            i2l
            putstatic com.google.protobuf.UnsafeUtil.OBJECT_ARRAY_BASE_OFFSET:J
        21: .line 74
            ldc [Ljava/lang/Object;
            invokestatic com.google.protobuf.UnsafeUtil.arrayIndexScale:(Ljava/lang/Class;)I
            i2l
            putstatic com.google.protobuf.UnsafeUtil.OBJECT_ARRAY_INDEX_SCALE:J
        22: .line 76
            invokestatic com.google.protobuf.UnsafeUtil.bufferAddressField:()Ljava/lang/reflect/Field;
            invokestatic com.google.protobuf.UnsafeUtil.fieldOffset:(Ljava/lang/reflect/Field;)J
            putstatic com.google.protobuf.UnsafeUtil.BUFFER_ADDRESS_OFFSET:J
        23: .line 81
            getstatic com.google.protobuf.UnsafeUtil.BYTE_ARRAY_BASE_OFFSET:J
            ldc 7
            land
            l2i
        24: .line 80
            putstatic com.google.protobuf.UnsafeUtil.BYTE_ARRAY_ALIGNMENT:I
        25: .line 83
            invokestatic java.nio.ByteOrder.nativeOrder:()Ljava/nio/ByteOrder;
            getstatic java.nio.ByteOrder.BIG_ENDIAN:Ljava/nio/ByteOrder;
            if_acmpne 26
            iconst_1
            goto 27
      StackMap locals:
      StackMap stack:
        26: iconst_0
      StackMap locals:
      StackMap stack: int
        27: putstatic com.google.protobuf.UnsafeUtil.IS_BIG_ENDIAN:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.google.protobuf.UnsafeUtil this
         0: .line 85
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.google.protobuf.UnsafeUtil this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/protobuf/UnsafeUtil;

  static boolean hasUnsafeArrayOperations();
    descriptor: ()Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 88
            getstatic com.google.protobuf.UnsafeUtil.HAS_UNSAFE_ARRAY_OPERATIONS:Z
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  static boolean hasUnsafeByteBufferOperations();
    descriptor: ()Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 92
            getstatic com.google.protobuf.UnsafeUtil.HAS_UNSAFE_BYTEBUFFER_OPERATIONS:Z
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  static boolean isAndroid64();
    descriptor: ()Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 96
            getstatic com.google.protobuf.UnsafeUtil.IS_ANDROID_64:Z
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  static <T> T allocateInstance(java.lang.Class<T>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.lang.Class clazz
         0: .line 102
            getstatic com.google.protobuf.UnsafeUtil.UNSAFE:Lsun/misc/Unsafe;
            aload 0 /* clazz */
            invokevirtual sun.misc.Unsafe.allocateInstance:(Ljava/lang/Class;)Ljava/lang/Object;
         1: areturn
         2: .line 103
      StackMap locals:
      StackMap stack: java.lang.InstantiationException
            astore 1 /* e */
        start local 1 // java.lang.InstantiationException e
         3: .line 104
            new java.lang.IllegalStateException
            dup
            aload 1 /* e */
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.lang.InstantiationException e
        end local 0 // java.lang.Class clazz
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0  clazz  Ljava/lang/Class<TT;>;
            3    4     1      e  Ljava/lang/InstantiationException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.InstantiationException
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;)TT;
    MethodParameters:
       Name  Flags
      clazz  

  static long objectFieldOffset(java.lang.reflect.Field);
    descriptor: (Ljava/lang/reflect/Field;)J
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.reflect.Field field
         0: .line 109
            getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
            aload 0 /* field */
            invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.objectFieldOffset:(Ljava/lang/reflect/Field;)J
            lreturn
        end local 0 // java.lang.reflect.Field field
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  field  Ljava/lang/reflect/Field;
    MethodParameters:
       Name  Flags
      field  

  private static int arrayBaseOffset(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Class clazz
         0: .line 113
            getstatic com.google.protobuf.UnsafeUtil.HAS_UNSAFE_ARRAY_OPERATIONS:Z
            ifeq 1
            getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
            aload 0 /* clazz */
            invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.arrayBaseOffset:(Ljava/lang/Class;)I
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_m1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // java.lang.Class clazz
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0  clazz  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)I
    MethodParameters:
       Name  Flags
      clazz  

  private static int arrayIndexScale(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Class clazz
         0: .line 117
            getstatic com.google.protobuf.UnsafeUtil.HAS_UNSAFE_ARRAY_OPERATIONS:Z
            ifeq 1
            getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
            aload 0 /* clazz */
            invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.arrayIndexScale:(Ljava/lang/Class;)I
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_m1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // java.lang.Class clazz
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0  clazz  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)I
    MethodParameters:
       Name  Flags
      clazz  

  static byte getByte(java.lang.Object, long);
    descriptor: (Ljava/lang/Object;J)B
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // java.lang.Object target
        start local 1 // long offset
         0: .line 121
            getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
            aload 0 /* target */
            lload 1 /* offset */
            invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.getByte:(Ljava/lang/Object;J)B
            ireturn
        end local 1 // long offset
        end local 0 // java.lang.Object target
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  target  Ljava/lang/Object;
            0    1     1  offset  J
    MethodParameters:
        Name  Flags
      target  
      offset  

  static void putByte(java.lang.Object, long, byte);
    descriptor: (Ljava/lang/Object;JB)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // java.lang.Object target
        start local 1 // long offset
        start local 3 // byte value
         0: .line 125
            getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
            aload 0 /* target */
            lload 1 /* offset */
            iload 3 /* value */
            invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.putByte:(Ljava/lang/Object;JB)V
         1: .line 126
            return
        end local 3 // byte value
        end local 1 // long offset
        end local 0 // java.lang.Object target
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0  target  Ljava/lang/Object;
            0    2     1  offset  J
            0    2     3   value  B
    MethodParameters:
        Name  Flags
      target  
      offset  
      value   

  static int getInt(java.lang.Object, long);
    descriptor: (Ljava/lang/Object;J)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // java.lang.Object target
        start local 1 // long offset
         0: .line 129
            getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
            aload 0 /* target */
            lload 1 /* offset */
            invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.getInt:(Ljava/lang/Object;J)I
            ireturn
        end local 1 // long offset
        end local 0 // java.lang.Object target
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  target  Ljava/lang/Object;
            0    1     1  offset  J
    MethodParameters:
        Name  Flags
      target  
      offset  

  static void putInt(java.lang.Object, long, int);
    descriptor: (Ljava/lang/Object;JI)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // java.lang.Object target
        start local 1 // long offset
        start local 3 // int value
         0: .line 133
            getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
            aload 0 /* target */
            lload 1 /* offset */
            iload 3 /* value */
            invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.putInt:(Ljava/lang/Object;JI)V
         1: .line 134
            return
        end local 3 // int value
        end local 1 // long offset
        end local 0 // java.lang.Object target
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0  target  Ljava/lang/Object;
            0    2     1  offset  J
            0    2     3   value  I
    MethodParameters:
        Name  Flags
      target  
      offset  
      value   

  static long getLong(java.lang.Object, long);
    descriptor: (Ljava/lang/Object;J)J
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // java.lang.Object target
        start local 1 // long offset
         0: .line 137
            getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
            aload 0 /* target */
            lload 1 /* offset */
            invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.getLong:(Ljava/lang/Object;J)J
            lreturn
        end local 1 // long offset
        end local 0 // java.lang.Object target
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  target  Ljava/lang/Object;
            0    1     1  offset  J
    MethodParameters:
        Name  Flags
      target  
      offset  

  static void putLong(java.lang.Object, long, long);
    descriptor: (Ljava/lang/Object;JJ)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=5, args_size=3
        start local 0 // java.lang.Object target
        start local 1 // long offset
        start local 3 // long value
         0: .line 141
            getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
            aload 0 /* target */
            lload 1 /* offset */
            lload 3 /* value */
            invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.putLong:(Ljava/lang/Object;JJ)V
         1: .line 142
            return
        end local 3 // long value
        end local 1 // long offset
        end local 0 // java.lang.Object target
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0  target  Ljava/lang/Object;
            0    2     1  offset  J
            0    2     3   value  J
    MethodParameters:
        Name  Flags
      target  
      offset  
      value   

  static boolean getBoolean(java.lang.Object, long);
    descriptor: (Ljava/lang/Object;J)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // java.lang.Object target
        start local 1 // long offset
         0: .line 145
            getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
            aload 0 /* target */
            lload 1 /* offset */
            invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.getBoolean:(Ljava/lang/Object;J)Z
            ireturn
        end local 1 // long offset
        end local 0 // java.lang.Object target
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  target  Ljava/lang/Object;
            0    1     1  offset  J
    MethodParameters:
        Name  Flags
      target  
      offset  

  static void putBoolean(java.lang.Object, long, boolean);
    descriptor: (Ljava/lang/Object;JZ)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // java.lang.Object target
        start local 1 // long offset
        start local 3 // boolean value
         0: .line 149
            getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
            aload 0 /* target */
            lload 1 /* offset */
            iload 3 /* value */
            invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.putBoolean:(Ljava/lang/Object;JZ)V
         1: .line 150
            return
        end local 3 // boolean value
        end local 1 // long offset
        end local 0 // java.lang.Object target
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0  target  Ljava/lang/Object;
            0    2     1  offset  J
            0    2     3   value  Z
    MethodParameters:
        Name  Flags
      target  
      offset  
      value   

  static float getFloat(java.lang.Object, long);
    descriptor: (Ljava/lang/Object;J)F
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // java.lang.Object target
        start local 1 // long offset
         0: .line 153
            getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
            aload 0 /* target */
            lload 1 /* offset */
            invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.getFloat:(Ljava/lang/Object;J)F
            freturn
        end local 1 // long offset
        end local 0 // java.lang.Object target
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  target  Ljava/lang/Object;
            0    1     1  offset  J
    MethodParameters:
        Name  Flags
      target  
      offset  

  static void putFloat(java.lang.Object, long, float);
    descriptor: (Ljava/lang/Object;JF)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // java.lang.Object target
        start local 1 // long offset
        start local 3 // float value
         0: .line 157
            getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
            aload 0 /* target */
            lload 1 /* offset */
            fload 3 /* value */
            invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.putFloat:(Ljava/lang/Object;JF)V
         1: .line 158
            return
        end local 3 // float value
        end local 1 // long offset
        end local 0 // java.lang.Object target
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0  target  Ljava/lang/Object;
            0    2     1  offset  J
            0    2     3   value  F
    MethodParameters:
        Name  Flags
      target  
      offset  
      value   

  static double getDouble(java.lang.Object, long);
    descriptor: (Ljava/lang/Object;J)D
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // java.lang.Object target
        start local 1 // long offset
         0: .line 161
            getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
            aload 0 /* target */
            lload 1 /* offset */
            invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.getDouble:(Ljava/lang/Object;J)D
            dreturn
        end local 1 // long offset
        end local 0 // java.lang.Object target
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  target  Ljava/lang/Object;
            0    1     1  offset  J
    MethodParameters:
        Name  Flags
      target  
      offset  

  static void putDouble(java.lang.Object, long, double);
    descriptor: (Ljava/lang/Object;JD)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=5, args_size=3
        start local 0 // java.lang.Object target
        start local 1 // long offset
        start local 3 // double value
         0: .line 165
            getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
            aload 0 /* target */
            lload 1 /* offset */
            dload 3 /* value */
            invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.putDouble:(Ljava/lang/Object;JD)V
         1: .line 166
            return
        end local 3 // double value
        end local 1 // long offset
        end local 0 // java.lang.Object target
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0  target  Ljava/lang/Object;
            0    2     1  offset  J
            0    2     3   value  D
    MethodParameters:
        Name  Flags
      target  
      offset  
      value   

  static java.lang.Object getObject(java.lang.Object, long);
    descriptor: (Ljava/lang/Object;J)Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // java.lang.Object target
        start local 1 // long offset
         0: .line 169
            getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
            aload 0 /* target */
            lload 1 /* offset */
            invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.getObject:(Ljava/lang/Object;J)Ljava/lang/Object;
            areturn
        end local 1 // long offset
        end local 0 // java.lang.Object target
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  target  Ljava/lang/Object;
            0    1     1  offset  J
    MethodParameters:
        Name  Flags
      target  
      offset  

  static void putObject(java.lang.Object, long, java.lang.Object);
    descriptor: (Ljava/lang/Object;JLjava/lang/Object;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // java.lang.Object target
        start local 1 // long offset
        start local 3 // java.lang.Object value
         0: .line 173
            getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
            aload 0 /* target */
            lload 1 /* offset */
            aload 3 /* value */
            invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.putObject:(Ljava/lang/Object;JLjava/lang/Object;)V
         1: .line 174
            return
        end local 3 // java.lang.Object value
        end local 1 // long offset
        end local 0 // java.lang.Object target
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0  target  Ljava/lang/Object;
            0    2     1  offset  J
            0    2     3   value  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      target  
      offset  
      value   

  static byte getByte(byte[], long);
    descriptor: ([BJ)B
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // byte[] target
        start local 1 // long index
         0: .line 177
            getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
            aload 0 /* target */
            getstatic com.google.protobuf.UnsafeUtil.BYTE_ARRAY_BASE_OFFSET:J
            lload 1 /* index */
            ladd
            invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.getByte:(Ljava/lang/Object;J)B
            ireturn
        end local 1 // long index
        end local 0 // byte[] target
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  target  [B
            0    1     1   index  J
    MethodParameters:
        Name  Flags
      target  
      index   

  static void putByte(byte[], long, byte);
    descriptor: ([BJB)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // byte[] target
        start local 1 // long index
        start local 3 // byte value
         0: .line 181
            getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
            aload 0 /* target */
            getstatic com.google.protobuf.UnsafeUtil.BYTE_ARRAY_BASE_OFFSET:J
            lload 1 /* index */
            ladd
            iload 3 /* value */
            invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.putByte:(Ljava/lang/Object;JB)V
         1: .line 182
            return
        end local 3 // byte value
        end local 1 // long index
        end local 0 // byte[] target
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0  target  [B
            0    2     1   index  J
            0    2     3   value  B
    MethodParameters:
        Name  Flags
      target  
      index   
      value   

  static int getInt(int[], long);
    descriptor: ([IJ)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=8, locals=3, args_size=2
        start local 0 // int[] target
        start local 1 // long index
         0: .line 185
            getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
            aload 0 /* target */
            getstatic com.google.protobuf.UnsafeUtil.INT_ARRAY_BASE_OFFSET:J
            lload 1 /* index */
            getstatic com.google.protobuf.UnsafeUtil.INT_ARRAY_INDEX_SCALE:J
            lmul
            ladd
            invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.getInt:(Ljava/lang/Object;J)I
            ireturn
        end local 1 // long index
        end local 0 // int[] target
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  target  [I
            0    1     1   index  J
    MethodParameters:
        Name  Flags
      target  
      index   

  static void putInt(int[], long, int);
    descriptor: ([IJI)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=8, locals=4, args_size=3
        start local 0 // int[] target
        start local 1 // long index
        start local 3 // int value
         0: .line 189
            getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
            aload 0 /* target */
            getstatic com.google.protobuf.UnsafeUtil.INT_ARRAY_BASE_OFFSET:J
            lload 1 /* index */
            getstatic com.google.protobuf.UnsafeUtil.INT_ARRAY_INDEX_SCALE:J
            lmul
            ladd
            iload 3 /* value */
            invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.putInt:(Ljava/lang/Object;JI)V
         1: .line 190
            return
        end local 3 // int value
        end local 1 // long index
        end local 0 // int[] target
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0  target  [I
            0    2     1   index  J
            0    2     3   value  I
    MethodParameters:
        Name  Flags
      target  
      index   
      value   

  static long getLong(long[], long);
    descriptor: ([JJ)J
    flags: (0x0008) ACC_STATIC
    Code:
      stack=8, locals=3, args_size=2
        start local 0 // long[] target
        start local 1 // long index
         0: .line 193
            getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
         1: .line 194
            aload 0 /* target */
            getstatic com.google.protobuf.UnsafeUtil.LONG_ARRAY_BASE_OFFSET:J
            lload 1 /* index */
            getstatic com.google.protobuf.UnsafeUtil.LONG_ARRAY_INDEX_SCALE:J
            lmul
            ladd
         2: .line 193
            invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.getLong:(Ljava/lang/Object;J)J
            lreturn
        end local 1 // long index
        end local 0 // long[] target
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0  target  [J
            0    3     1   index  J
    MethodParameters:
        Name  Flags
      target  
      index   

  static void putLong(long[], long, long);
    descriptor: ([JJJ)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=8, locals=5, args_size=3
        start local 0 // long[] target
        start local 1 // long index
        start local 3 // long value
         0: .line 198
            getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
         1: .line 199
            aload 0 /* target */
            getstatic com.google.protobuf.UnsafeUtil.LONG_ARRAY_BASE_OFFSET:J
            lload 1 /* index */
            getstatic com.google.protobuf.UnsafeUtil.LONG_ARRAY_INDEX_SCALE:J
            lmul
            ladd
            lload 3 /* value */
         2: .line 198
            invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.putLong:(Ljava/lang/Object;JJ)V
         3: .line 200
            return
        end local 3 // long value
        end local 1 // long index
        end local 0 // long[] target
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0  target  [J
            0    4     1   index  J
            0    4     3   value  J
    MethodParameters:
        Name  Flags
      target  
      index   
      value   

  static boolean getBoolean(boolean[], long);
    descriptor: ([ZJ)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=8, locals=3, args_size=2
        start local 0 // boolean[] target
        start local 1 // long index
         0: .line 203
            getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
         1: .line 204
            aload 0 /* target */
            getstatic com.google.protobuf.UnsafeUtil.BOOLEAN_ARRAY_BASE_OFFSET:J
            lload 1 /* index */
            getstatic com.google.protobuf.UnsafeUtil.BOOLEAN_ARRAY_INDEX_SCALE:J
            lmul
            ladd
         2: .line 203
            invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.getBoolean:(Ljava/lang/Object;J)Z
            ireturn
        end local 1 // long index
        end local 0 // boolean[] target
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0  target  [Z
            0    3     1   index  J
    MethodParameters:
        Name  Flags
      target  
      index   

  static void putBoolean(boolean[], long, boolean);
    descriptor: ([ZJZ)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=8, locals=4, args_size=3
        start local 0 // boolean[] target
        start local 1 // long index
        start local 3 // boolean value
         0: .line 208
            getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
         1: .line 209
            aload 0 /* target */
            getstatic com.google.protobuf.UnsafeUtil.BOOLEAN_ARRAY_BASE_OFFSET:J
            lload 1 /* index */
            getstatic com.google.protobuf.UnsafeUtil.BOOLEAN_ARRAY_INDEX_SCALE:J
            lmul
            ladd
            iload 3 /* value */
         2: .line 208
            invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.putBoolean:(Ljava/lang/Object;JZ)V
         3: .line 210
            return
        end local 3 // boolean value
        end local 1 // long index
        end local 0 // boolean[] target
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0  target  [Z
            0    4     1   index  J
            0    4     3   value  Z
    MethodParameters:
        Name  Flags
      target  
      index   
      value   

  static float getFloat(float[], long);
    descriptor: ([FJ)F
    flags: (0x0008) ACC_STATIC
    Code:
      stack=8, locals=3, args_size=2
        start local 0 // float[] target
        start local 1 // long index
         0: .line 213
            getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
         1: .line 214
            aload 0 /* target */
            getstatic com.google.protobuf.UnsafeUtil.FLOAT_ARRAY_BASE_OFFSET:J
            lload 1 /* index */
            getstatic com.google.protobuf.UnsafeUtil.FLOAT_ARRAY_INDEX_SCALE:J
            lmul
            ladd
         2: .line 213
            invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.getFloat:(Ljava/lang/Object;J)F
            freturn
        end local 1 // long index
        end local 0 // float[] target
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0  target  [F
            0    3     1   index  J
    MethodParameters:
        Name  Flags
      target  
      index   

  static void putFloat(float[], long, float);
    descriptor: ([FJF)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=8, locals=4, args_size=3
        start local 0 // float[] target
        start local 1 // long index
        start local 3 // float value
         0: .line 218
            getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
         1: .line 219
            aload 0 /* target */
            getstatic com.google.protobuf.UnsafeUtil.FLOAT_ARRAY_BASE_OFFSET:J
            lload 1 /* index */
            getstatic com.google.protobuf.UnsafeUtil.FLOAT_ARRAY_INDEX_SCALE:J
            lmul
            ladd
            fload 3 /* value */
         2: .line 218
            invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.putFloat:(Ljava/lang/Object;JF)V
         3: .line 220
            return
        end local 3 // float value
        end local 1 // long index
        end local 0 // float[] target
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0  target  [F
            0    4     1   index  J
            0    4     3   value  F
    MethodParameters:
        Name  Flags
      target  
      index   
      value   

  static double getDouble(double[], long);
    descriptor: ([DJ)D
    flags: (0x0008) ACC_STATIC
    Code:
      stack=8, locals=3, args_size=2
        start local 0 // double[] target
        start local 1 // long index
         0: .line 223
            getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
         1: .line 224
            aload 0 /* target */
            getstatic com.google.protobuf.UnsafeUtil.DOUBLE_ARRAY_BASE_OFFSET:J
            lload 1 /* index */
            getstatic com.google.protobuf.UnsafeUtil.DOUBLE_ARRAY_INDEX_SCALE:J
            lmul
            ladd
         2: .line 223
            invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.getDouble:(Ljava/lang/Object;J)D
            dreturn
        end local 1 // long index
        end local 0 // double[] target
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0  target  [D
            0    3     1   index  J
    MethodParameters:
        Name  Flags
      target  
      index   

  static void putDouble(double[], long, double);
    descriptor: ([DJD)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=8, locals=5, args_size=3
        start local 0 // double[] target
        start local 1 // long index
        start local 3 // double value
         0: .line 228
            getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
         1: .line 229
            aload 0 /* target */
            getstatic com.google.protobuf.UnsafeUtil.DOUBLE_ARRAY_BASE_OFFSET:J
            lload 1 /* index */
            getstatic com.google.protobuf.UnsafeUtil.DOUBLE_ARRAY_INDEX_SCALE:J
            lmul
            ladd
            dload 3 /* value */
         2: .line 228
            invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.putDouble:(Ljava/lang/Object;JD)V
         3: .line 230
            return
        end local 3 // double value
        end local 1 // long index
        end local 0 // double[] target
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0  target  [D
            0    4     1   index  J
            0    4     3   value  D
    MethodParameters:
        Name  Flags
      target  
      index   
      value   

  static java.lang.Object getObject(java.lang.Object[], long);
    descriptor: ([Ljava/lang/Object;J)Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=8, locals=3, args_size=2
        start local 0 // java.lang.Object[] target
        start local 1 // long index
         0: .line 233
            getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
         1: .line 234
            aload 0 /* target */
            getstatic com.google.protobuf.UnsafeUtil.OBJECT_ARRAY_BASE_OFFSET:J
            lload 1 /* index */
            getstatic com.google.protobuf.UnsafeUtil.OBJECT_ARRAY_INDEX_SCALE:J
            lmul
            ladd
         2: .line 233
            invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.getObject:(Ljava/lang/Object;J)Ljava/lang/Object;
            areturn
        end local 1 // long index
        end local 0 // java.lang.Object[] target
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0  target  [Ljava/lang/Object;
            0    3     1   index  J
    MethodParameters:
        Name  Flags
      target  
      index   

  static void putObject(java.lang.Object[], long, java.lang.Object);
    descriptor: ([Ljava/lang/Object;JLjava/lang/Object;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=8, locals=4, args_size=3
        start local 0 // java.lang.Object[] target
        start local 1 // long index
        start local 3 // java.lang.Object value
         0: .line 238
            getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
         1: .line 239
            aload 0 /* target */
            getstatic com.google.protobuf.UnsafeUtil.OBJECT_ARRAY_BASE_OFFSET:J
            lload 1 /* index */
            getstatic com.google.protobuf.UnsafeUtil.OBJECT_ARRAY_INDEX_SCALE:J
            lmul
            ladd
            aload 3 /* value */
         2: .line 238
            invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.putObject:(Ljava/lang/Object;JLjava/lang/Object;)V
         3: .line 240
            return
        end local 3 // java.lang.Object value
        end local 1 // long index
        end local 0 // java.lang.Object[] target
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0  target  [Ljava/lang/Object;
            0    4     1   index  J
            0    4     3   value  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      target  
      index   
      value   

  static void copyMemory(byte[], long, long, long);
    descriptor: ([BJJJ)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=8, locals=7, args_size=4
        start local 0 // byte[] src
        start local 1 // long srcIndex
        start local 3 // long targetOffset
        start local 5 // long length
         0: .line 243
            getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
            aload 0 /* src */
            lload 1 /* srcIndex */
            lload 3 /* targetOffset */
            lload 5 /* length */
            invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.copyMemory:([BJJJ)V
         1: .line 244
            return
        end local 5 // long length
        end local 3 // long targetOffset
        end local 1 // long srcIndex
        end local 0 // byte[] src
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0           src  [B
            0    2     1      srcIndex  J
            0    2     3  targetOffset  J
            0    2     5        length  J
    MethodParameters:
              Name  Flags
      src           
      srcIndex      
      targetOffset  
      length        

  static void copyMemory(long, byte[], long, long);
    descriptor: (J[BJJ)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=8, locals=7, args_size=4
        start local 0 // long srcOffset
        start local 2 // byte[] target
        start local 3 // long targetIndex
        start local 5 // long length
         0: .line 247
            getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
            lload 0 /* srcOffset */
            aload 2 /* target */
            lload 3 /* targetIndex */
            lload 5 /* length */
            invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.copyMemory:(J[BJJ)V
         1: .line 248
            return
        end local 5 // long length
        end local 3 // long targetIndex
        end local 2 // byte[] target
        end local 0 // long srcOffset
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0    srcOffset  J
            0    2     2       target  [B
            0    2     3  targetIndex  J
            0    2     5       length  J
    MethodParameters:
             Name  Flags
      srcOffset    
      target       
      targetIndex  
      length       

  static void copyMemory(byte[], long, byte[], long, long);
    descriptor: ([BJ[BJJ)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=8, args_size=5
        start local 0 // byte[] src
        start local 1 // long srcIndex
        start local 3 // byte[] target
        start local 4 // long targetIndex
        start local 6 // long length
         0: .line 251
            aload 0 /* src */
            lload 1 /* srcIndex */
            l2i
            aload 3 /* target */
            lload 4 /* targetIndex */
            l2i
            lload 6 /* length */
            l2i
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         1: .line 252
            return
        end local 6 // long length
        end local 4 // long targetIndex
        end local 3 // byte[] target
        end local 1 // long srcIndex
        end local 0 // byte[] src
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0          src  [B
            0    2     1     srcIndex  J
            0    2     3       target  [B
            0    2     4  targetIndex  J
            0    2     6       length  J
    MethodParameters:
             Name  Flags
      src          
      srcIndex     
      target       
      targetIndex  
      length       

  static byte getByte(long);
    descriptor: (J)B
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // long address
         0: .line 255
            getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
            lload 0 /* address */
            invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.getByte:(J)B
            ireturn
        end local 0 // long address
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  address  J
    MethodParameters:
         Name  Flags
      address  

  static void putByte(long, byte);
    descriptor: (JB)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // long address
        start local 2 // byte value
         0: .line 259
            getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
            lload 0 /* address */
            iload 2 /* value */
            invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.putByte:(JB)V
         1: .line 260
            return
        end local 2 // byte value
        end local 0 // long address
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0  address  J
            0    2     2    value  B
    MethodParameters:
         Name  Flags
      address  
      value    

  static int getInt(long);
    descriptor: (J)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // long address
         0: .line 263
            getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
            lload 0 /* address */
            invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.getInt:(J)I
            ireturn
        end local 0 // long address
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  address  J
    MethodParameters:
         Name  Flags
      address  

  static void putInt(long, int);
    descriptor: (JI)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // long address
        start local 2 // int value
         0: .line 267
            getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
            lload 0 /* address */
            iload 2 /* value */
            invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.putInt:(JI)V
         1: .line 268
            return
        end local 2 // int value
        end local 0 // long address
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0  address  J
            0    2     2    value  I
    MethodParameters:
         Name  Flags
      address  
      value    

  static long getLong(long);
    descriptor: (J)J
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // long address
         0: .line 271
            getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
            lload 0 /* address */
            invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.getLong:(J)J
            lreturn
        end local 0 // long address
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  address  J
    MethodParameters:
         Name  Flags
      address  

  static void putLong(long, long);
    descriptor: (JJ)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // long address
        start local 2 // long value
         0: .line 275
            getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
            lload 0 /* address */
            lload 2 /* value */
            invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.putLong:(JJ)V
         1: .line 276
            return
        end local 2 // long value
        end local 0 // long address
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0  address  J
            0    2     2    value  J
    MethodParameters:
         Name  Flags
      address  
      value    

  static long addressOffset(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)J
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.nio.ByteBuffer buffer
         0: .line 280
            getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
            aload 0 /* buffer */
            getstatic com.google.protobuf.UnsafeUtil.BUFFER_ADDRESS_OFFSET:J
            invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.getLong:(Ljava/lang/Object;J)J
            lreturn
        end local 0 // java.nio.ByteBuffer buffer
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  buffer  Ljava/nio/ByteBuffer;
    MethodParameters:
        Name  Flags
      buffer  

  static java.lang.Object getStaticObject(java.lang.reflect.Field);
    descriptor: (Ljava/lang/reflect/Field;)Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.reflect.Field field
         0: .line 284
            getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
            aload 0 /* field */
            invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.getStaticObject:(Ljava/lang/reflect/Field;)Ljava/lang/Object;
            areturn
        end local 0 // java.lang.reflect.Field field
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  field  Ljava/lang/reflect/Field;
    MethodParameters:
       Name  Flags
      field  

  static sun.misc.Unsafe getUnsafe();
    descriptor: ()Lsun/misc/Unsafe;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=0
         0: .line 291
            aconst_null
            astore 0 /* unsafe */
        start local 0 // sun.misc.Unsafe unsafe
         1: .line 295
            new com.google.protobuf.UnsafeUtil$1
            dup
            invokespecial com.google.protobuf.UnsafeUtil$1.<init>:()V
         2: .line 294
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
            checkcast sun.misc.Unsafe
         3: .line 293
            astore 0 /* unsafe */
         4: .line 311
            goto 6
      StackMap locals: sun.misc.Unsafe
      StackMap stack: java.lang.Throwable
         5: pop
         6: .line 315
      StackMap locals:
      StackMap stack:
            aload 0 /* unsafe */
            areturn
        end local 0 // sun.misc.Unsafe unsafe
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            1    7     0  unsafe  Lsun/misc/Unsafe;
      Exception table:
        from    to  target  type
           1     4       5  Class java.lang.Throwable

  private static com.google.protobuf.UnsafeUtil$MemoryAccessor getMemoryAccessor();
    descriptor: ()Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 320
            getstatic com.google.protobuf.UnsafeUtil.UNSAFE:Lsun/misc/Unsafe;
            ifnonnull 2
         1: .line 321
            aconst_null
            areturn
         2: .line 323
      StackMap locals:
      StackMap stack:
            invokestatic com.google.protobuf.Android.isOnAndroidDevice:()Z
            ifeq 8
         3: .line 324
            getstatic com.google.protobuf.UnsafeUtil.IS_ANDROID_64:Z
            ifeq 5
         4: .line 325
            new com.google.protobuf.UnsafeUtil$Android64MemoryAccessor
            dup
            getstatic com.google.protobuf.UnsafeUtil.UNSAFE:Lsun/misc/Unsafe;
            invokespecial com.google.protobuf.UnsafeUtil$Android64MemoryAccessor.<init>:(Lsun/misc/Unsafe;)V
            areturn
         5: .line 326
      StackMap locals:
      StackMap stack:
            getstatic com.google.protobuf.UnsafeUtil.IS_ANDROID_32:Z
            ifeq 7
         6: .line 327
            new com.google.protobuf.UnsafeUtil$Android32MemoryAccessor
            dup
            getstatic com.google.protobuf.UnsafeUtil.UNSAFE:Lsun/misc/Unsafe;
            invokespecial com.google.protobuf.UnsafeUtil$Android32MemoryAccessor.<init>:(Lsun/misc/Unsafe;)V
            areturn
         7: .line 329
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
         8: .line 333
      StackMap locals:
      StackMap stack:
            new com.google.protobuf.UnsafeUtil$JvmMemoryAccessor
            dup
            getstatic com.google.protobuf.UnsafeUtil.UNSAFE:Lsun/misc/Unsafe;
            invokespecial com.google.protobuf.UnsafeUtil$JvmMemoryAccessor.<init>:(Lsun/misc/Unsafe;)V
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static boolean supportsUnsafeArrayOperations();
    descriptor: ()Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=1, args_size=0
         0: .line 338
            getstatic com.google.protobuf.UnsafeUtil.UNSAFE:Lsun/misc/Unsafe;
            ifnonnull 2
         1: .line 339
            iconst_0
            ireturn
         2: .line 342
      StackMap locals:
      StackMap stack:
            getstatic com.google.protobuf.UnsafeUtil.UNSAFE:Lsun/misc/Unsafe;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            astore 0 /* clazz */
        start local 0 // java.lang.Class clazz
         3: .line 343
            aload 0 /* clazz */
            ldc "objectFieldOffset"
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/reflect/Field;
            aastore
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            pop
         4: .line 344
            aload 0 /* clazz */
            ldc "arrayBaseOffset"
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/Class;
            aastore
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            pop
         5: .line 345
            aload 0 /* clazz */
            ldc "arrayIndexScale"
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/Class;
            aastore
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            pop
         6: .line 346
            aload 0 /* clazz */
            ldc "getInt"
            iconst_2
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/Object;
            aastore
            dup
            iconst_1
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            aastore
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            pop
         7: .line 347
            aload 0 /* clazz */
            ldc "putInt"
            iconst_3
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/Object;
            aastore
            dup
            iconst_1
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            aastore
            dup
            iconst_2
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            aastore
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            pop
         8: .line 348
            aload 0 /* clazz */
            ldc "getLong"
            iconst_2
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/Object;
            aastore
            dup
            iconst_1
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            aastore
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            pop
         9: .line 349
            aload 0 /* clazz */
            ldc "putLong"
            iconst_3
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/Object;
            aastore
            dup
            iconst_1
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            aastore
            dup
            iconst_2
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            aastore
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            pop
        10: .line 350
            aload 0 /* clazz */
            ldc "getObject"
            iconst_2
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/Object;
            aastore
            dup
            iconst_1
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            aastore
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            pop
        11: .line 351
            aload 0 /* clazz */
            ldc "putObject"
            iconst_3
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/Object;
            aastore
            dup
            iconst_1
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            aastore
            dup
            iconst_2
            ldc Ljava/lang/Object;
            aastore
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            pop
        12: .line 352
            invokestatic com.google.protobuf.Android.isOnAndroidDevice:()Z
            ifeq 14
        13: .line 353
            iconst_1
            ireturn
        14: .line 355
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 0 /* clazz */
            ldc "getByte"
            iconst_2
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/Object;
            aastore
            dup
            iconst_1
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            aastore
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            pop
        15: .line 356
            aload 0 /* clazz */
            ldc "putByte"
            iconst_3
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/Object;
            aastore
            dup
            iconst_1
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            aastore
            dup
            iconst_2
            getstatic java.lang.Byte.TYPE:Ljava/lang/Class;
            aastore
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            pop
        16: .line 357
            aload 0 /* clazz */
            ldc "getBoolean"
            iconst_2
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/Object;
            aastore
            dup
            iconst_1
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            aastore
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            pop
        17: .line 358
            aload 0 /* clazz */
            ldc "putBoolean"
            iconst_3
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/Object;
            aastore
            dup
            iconst_1
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            aastore
            dup
            iconst_2
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            aastore
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            pop
        18: .line 359
            aload 0 /* clazz */
            ldc "getFloat"
            iconst_2
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/Object;
            aastore
            dup
            iconst_1
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            aastore
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            pop
        19: .line 360
            aload 0 /* clazz */
            ldc "putFloat"
            iconst_3
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/Object;
            aastore
            dup
            iconst_1
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            aastore
            dup
            iconst_2
            getstatic java.lang.Float.TYPE:Ljava/lang/Class;
            aastore
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            pop
        20: .line 361
            aload 0 /* clazz */
            ldc "getDouble"
            iconst_2
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/Object;
            aastore
            dup
            iconst_1
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            aastore
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            pop
        21: .line 362
            aload 0 /* clazz */
            ldc "putDouble"
            iconst_3
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/Object;
            aastore
            dup
            iconst_1
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            aastore
            dup
            iconst_2
            getstatic java.lang.Double.TYPE:Ljava/lang/Class;
            aastore
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            pop
        22: .line 364
            iconst_1
            ireturn
        end local 0 // java.lang.Class clazz
        23: .line 365
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 0 /* e */
        start local 0 // java.lang.Throwable e
        24: .line 366
            getstatic com.google.protobuf.UnsafeUtil.logger:Ljava/util/logging/Logger;
        25: .line 367
            getstatic java.util.logging.Level.WARNING:Ljava/util/logging/Level;
        26: .line 368
            new java.lang.StringBuilder
            dup
            ldc "platform method missing - proto runtime falling back to safer methods: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        27: .line 366
            invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
        end local 0 // java.lang.Throwable e
        28: .line 370
            iconst_0
            ireturn
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            3   23     0  clazz  Ljava/lang/Class<*>;
           24   28     0      e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           2    13      23  Class java.lang.Throwable
          14    22      23  Class java.lang.Throwable

  private static boolean supportsUnsafeByteBufferOperations();
    descriptor: ()Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=1, args_size=0
         0: .line 374
            getstatic com.google.protobuf.UnsafeUtil.UNSAFE:Lsun/misc/Unsafe;
            ifnonnull 2
         1: .line 375
            iconst_0
            ireturn
         2: .line 378
      StackMap locals:
      StackMap stack:
            getstatic com.google.protobuf.UnsafeUtil.UNSAFE:Lsun/misc/Unsafe;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            astore 0 /* clazz */
        start local 0 // java.lang.Class clazz
         3: .line 380
            aload 0 /* clazz */
            ldc "objectFieldOffset"
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/reflect/Field;
            aastore
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            pop
         4: .line 381
            aload 0 /* clazz */
            ldc "getLong"
            iconst_2
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/Object;
            aastore
            dup
            iconst_1
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            aastore
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            pop
         5: .line 383
            invokestatic com.google.protobuf.UnsafeUtil.bufferAddressField:()Ljava/lang/reflect/Field;
            ifnonnull 7
         6: .line 384
            iconst_0
            ireturn
         7: .line 387
      StackMap locals: java.lang.Class
      StackMap stack:
            invokestatic com.google.protobuf.Android.isOnAndroidDevice:()Z
            ifeq 9
         8: .line 388
            iconst_1
            ireturn
         9: .line 390
      StackMap locals:
      StackMap stack:
            aload 0 /* clazz */
            ldc "getByte"
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            aastore
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            pop
        10: .line 391
            aload 0 /* clazz */
            ldc "putByte"
            iconst_2
            anewarray java.lang.Class
            dup
            iconst_0
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            aastore
            dup
            iconst_1
            getstatic java.lang.Byte.TYPE:Ljava/lang/Class;
            aastore
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            pop
        11: .line 392
            aload 0 /* clazz */
            ldc "getInt"
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            aastore
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            pop
        12: .line 393
            aload 0 /* clazz */
            ldc "putInt"
            iconst_2
            anewarray java.lang.Class
            dup
            iconst_0
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            aastore
            dup
            iconst_1
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            aastore
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            pop
        13: .line 394
            aload 0 /* clazz */
            ldc "getLong"
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            aastore
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            pop
        14: .line 395
            aload 0 /* clazz */
            ldc "putLong"
            iconst_2
            anewarray java.lang.Class
            dup
            iconst_0
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            aastore
            dup
            iconst_1
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            aastore
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            pop
        15: .line 396
            aload 0 /* clazz */
            ldc "copyMemory"
            iconst_3
            anewarray java.lang.Class
            dup
            iconst_0
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            aastore
            dup
            iconst_1
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            aastore
            dup
            iconst_2
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            aastore
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            pop
        16: .line 397
            aload 0 /* clazz */
            ldc "copyMemory"
            iconst_5
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/Object;
            aastore
            dup
            iconst_1
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            aastore
            dup
            iconst_2
            ldc Ljava/lang/Object;
            aastore
            dup
            iconst_3
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            aastore
            dup
            iconst_4
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            aastore
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            pop
        17: .line 398
            iconst_1
            ireturn
        end local 0 // java.lang.Class clazz
        18: .line 399
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 0 /* e */
        start local 0 // java.lang.Throwable e
        19: .line 400
            getstatic com.google.protobuf.UnsafeUtil.logger:Ljava/util/logging/Logger;
        20: .line 401
            getstatic java.util.logging.Level.WARNING:Ljava/util/logging/Level;
        21: .line 402
            new java.lang.StringBuilder
            dup
            ldc "platform method missing - proto runtime falling back to safer methods: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        22: .line 400
            invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
        end local 0 // java.lang.Throwable e
        23: .line 404
            iconst_0
            ireturn
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            3   18     0  clazz  Ljava/lang/Class<*>;
           19   23     0      e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           2     6      18  Class java.lang.Throwable
           7     8      18  Class java.lang.Throwable
           9    17      18  Class java.lang.Throwable

  private static boolean determineAndroidSupportByAddressSize(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // java.lang.Class addressClass
         0: .line 408
            invokestatic com.google.protobuf.Android.isOnAndroidDevice:()Z
            ifne 2
         1: .line 409
            iconst_0
            ireturn
         2: .line 412
      StackMap locals:
      StackMap stack:
            getstatic com.google.protobuf.UnsafeUtil.MEMORY_CLASS:Ljava/lang/Class;
            astore 1 /* clazz */
        start local 1 // java.lang.Class clazz
         3: .line 413
            aload 1 /* clazz */
            ldc "peekLong"
            iconst_2
            anewarray java.lang.Class
            dup
            iconst_0
            aload 0 /* addressClass */
            aastore
            dup
            iconst_1
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            aastore
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            pop
         4: .line 414
            aload 1 /* clazz */
            ldc "pokeLong"
            iconst_3
            anewarray java.lang.Class
            dup
            iconst_0
            aload 0 /* addressClass */
            aastore
            dup
            iconst_1
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            aastore
            dup
            iconst_2
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            aastore
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            pop
         5: .line 415
            aload 1 /* clazz */
            ldc "pokeInt"
            iconst_3
            anewarray java.lang.Class
            dup
            iconst_0
            aload 0 /* addressClass */
            aastore
            dup
            iconst_1
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            aastore
            dup
            iconst_2
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            aastore
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            pop
         6: .line 416
            aload 1 /* clazz */
            ldc "peekInt"
            iconst_2
            anewarray java.lang.Class
            dup
            iconst_0
            aload 0 /* addressClass */
            aastore
            dup
            iconst_1
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            aastore
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            pop
         7: .line 417
            aload 1 /* clazz */
            ldc "pokeByte"
            iconst_2
            anewarray java.lang.Class
            dup
            iconst_0
            aload 0 /* addressClass */
            aastore
            dup
            iconst_1
            getstatic java.lang.Byte.TYPE:Ljava/lang/Class;
            aastore
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            pop
         8: .line 418
            aload 1 /* clazz */
            ldc "peekByte"
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            aload 0 /* addressClass */
            aastore
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            pop
         9: .line 419
            aload 1 /* clazz */
            ldc "pokeByteArray"
            iconst_4
            anewarray java.lang.Class
            dup
            iconst_0
            aload 0 /* addressClass */
            aastore
            dup
            iconst_1
            ldc [B
            aastore
            dup
            iconst_2
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            aastore
            dup
            iconst_3
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            aastore
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            pop
        10: .line 420
            aload 1 /* clazz */
            ldc "peekByteArray"
            iconst_4
            anewarray java.lang.Class
            dup
            iconst_0
            aload 0 /* addressClass */
            aastore
            dup
            iconst_1
            ldc [B
            aastore
            dup
            iconst_2
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            aastore
            dup
            iconst_3
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            aastore
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            pop
        11: .line 421
            iconst_1
            ireturn
        end local 1 // java.lang.Class clazz
        12: .line 422
      StackMap locals:
      StackMap stack: java.lang.Throwable
            pop
        13: .line 423
            iconst_0
            ireturn
        end local 0 // java.lang.Class addressClass
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   14     0  addressClass  Ljava/lang/Class<*>;
            3   12     1         clazz  Ljava/lang/Class<*>;
      Exception table:
        from    to  target  type
           2    11      12  Class java.lang.Throwable
    Signature: (Ljava/lang/Class<*>;)Z
    MethodParameters:
              Name  Flags
      addressClass  

  private static java.lang.reflect.Field bufferAddressField();
    descriptor: ()Ljava/lang/reflect/Field;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=0
         0: .line 429
            invokestatic com.google.protobuf.Android.isOnAndroidDevice:()Z
            ifeq 4
         1: .line 432
            ldc Ljava/nio/Buffer;
            ldc "effectiveDirectAddress"
            invokestatic com.google.protobuf.UnsafeUtil.field:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/reflect/Field;
            astore 0 /* field */
        start local 0 // java.lang.reflect.Field field
         2: .line 433
            aload 0 /* field */
            ifnull 4
         3: .line 434
            aload 0 /* field */
            areturn
        end local 0 // java.lang.reflect.Field field
         4: .line 437
      StackMap locals:
      StackMap stack:
            ldc Ljava/nio/Buffer;
            ldc "address"
            invokestatic com.google.protobuf.UnsafeUtil.field:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/reflect/Field;
            astore 0 /* field */
        start local 0 // java.lang.reflect.Field field
         5: .line 438
            aload 0 /* field */
            ifnull 6
            aload 0 /* field */
            invokevirtual java.lang.reflect.Field.getType:()Ljava/lang/Class;
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            if_acmpne 6
            aload 0 /* field */
            goto 7
      StackMap locals: java.lang.reflect.Field
      StackMap stack:
         6: aconst_null
      StackMap locals:
      StackMap stack: java.lang.reflect.Field
         7: areturn
        end local 0 // java.lang.reflect.Field field
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            2    4     0  field  Ljava/lang/reflect/Field;
            5    8     0  field  Ljava/lang/reflect/Field;

  private static int firstDifferingByteIndexNativeEndian(long, long);
    descriptor: (JJ)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // long left
        start local 2 // long right
         0: .line 450
            getstatic com.google.protobuf.UnsafeUtil.IS_BIG_ENDIAN:Z
            ifeq 2
         1: .line 451
            lload 0 /* left */
            lload 2 /* right */
            lxor
            invokestatic java.lang.Long.numberOfLeadingZeros:(J)I
            goto 3
         2: .line 452
      StackMap locals:
      StackMap stack:
            lload 0 /* left */
            lload 2 /* right */
            lxor
            invokestatic java.lang.Long.numberOfTrailingZeros:(J)I
         3: .line 449
      StackMap locals:
      StackMap stack: int
            istore 4 /* n */
        start local 4 // int n
         4: .line 453
            iload 4 /* n */
            iconst_3
            ishr
            ireturn
        end local 4 // int n
        end local 2 // long right
        end local 0 // long left
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   left  J
            0    5     2  right  J
            4    5     4      n  I
    MethodParameters:
       Name  Flags
      left   
      right  

  static int mismatch(byte[], int, byte[], int, int);
    descriptor: ([BI[BII)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=12, args_size=5
        start local 0 // byte[] left
        start local 1 // int leftOff
        start local 2 // byte[] right
        start local 3 // int rightOff
        start local 4 // int length
         0: .line 465
            iload 1 /* leftOff */
            iflt 5
         1: .line 466
            iload 3 /* rightOff */
            iflt 5
         2: .line 467
            iload 4 /* length */
            iflt 5
         3: .line 468
            iload 1 /* leftOff */
            iload 4 /* length */
            iadd
            aload 0 /* left */
            arraylength
            if_icmpgt 5
         4: .line 469
            iload 3 /* rightOff */
            iload 4 /* length */
            iadd
            aload 2 /* right */
            arraylength
            if_icmple 6
         5: .line 470
      StackMap locals:
      StackMap stack:
            new java.lang.IndexOutOfBoundsException
            dup
            invokespecial java.lang.IndexOutOfBoundsException.<init>:()V
            athrow
         6: .line 473
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 5 /* index */
        start local 5 // int index
         7: .line 474
            getstatic com.google.protobuf.UnsafeUtil.HAS_UNSAFE_ARRAY_OPERATIONS:Z
            ifeq 26
         8: .line 475
            getstatic com.google.protobuf.UnsafeUtil.BYTE_ARRAY_ALIGNMENT:I
            iload 1 /* leftOff */
            iadd
            bipush 7
            iand
            istore 6 /* leftAlignment */
        start local 6 // int leftAlignment
         9: .line 482
            goto 13
        10: .line 484
      StackMap locals: int int
      StackMap stack:
            aload 0 /* left */
            iload 1 /* leftOff */
            iload 5 /* index */
            iadd
            baload
            aload 2 /* right */
            iload 3 /* rightOff */
            iload 5 /* index */
            iadd
            baload
            if_icmpeq 12
        11: .line 485
            iload 5 /* index */
            ireturn
        12: .line 483
      StackMap locals:
      StackMap stack:
            iinc 5 /* index */ 1
            iinc 6 /* leftAlignment */ 1
        13: .line 482
      StackMap locals:
      StackMap stack:
            iload 5 /* index */
            iload 4 /* length */
            if_icmpge 14
            iload 6 /* leftAlignment */
            bipush 7
            iand
            ifne 10
        14: .line 491
      StackMap locals:
      StackMap stack:
            iload 4 /* length */
            iload 5 /* index */
            isub
            bipush -8
            iand
            iload 5 /* index */
            iadd
            istore 7 /* strideLength */
        start local 7 // int strideLength
        15: .line 495
            goto 21
        16: .line 496
      StackMap locals: int
      StackMap stack:
            aload 0 /* left */
            getstatic com.google.protobuf.UnsafeUtil.BYTE_ARRAY_BASE_OFFSET:J
            iload 1 /* leftOff */
            i2l
            ladd
            iload 5 /* index */
            i2l
            ladd
            invokestatic com.google.protobuf.UnsafeUtil.getLong:(Ljava/lang/Object;J)J
            lstore 8 /* leftLongWord */
        start local 8 // long leftLongWord
        17: .line 497
            aload 2 /* right */
            getstatic com.google.protobuf.UnsafeUtil.BYTE_ARRAY_BASE_OFFSET:J
            iload 3 /* rightOff */
            i2l
            ladd
            iload 5 /* index */
            i2l
            ladd
            invokestatic com.google.protobuf.UnsafeUtil.getLong:(Ljava/lang/Object;J)J
            lstore 10 /* rightLongWord */
        start local 10 // long rightLongWord
        18: .line 498
            lload 8 /* leftLongWord */
            lload 10 /* rightLongWord */
            lcmp
            ifeq 20
        19: .line 500
            iload 5 /* index */
            lload 8 /* leftLongWord */
            lload 10 /* rightLongWord */
            invokestatic com.google.protobuf.UnsafeUtil.firstDifferingByteIndexNativeEndian:(JJ)I
            iadd
            ireturn
        end local 10 // long rightLongWord
        end local 8 // long leftLongWord
        20: .line 495
      StackMap locals:
      StackMap stack:
            iinc 5 /* index */ 8
      StackMap locals:
      StackMap stack:
        21: iload 5 /* index */
            iload 7 /* strideLength */
            if_icmplt 16
        end local 7 // int strideLength
        end local 6 // int leftAlignment
        22: .line 507
            goto 26
        23: .line 508
      StackMap locals:
      StackMap stack:
            aload 0 /* left */
            iload 1 /* leftOff */
            iload 5 /* index */
            iadd
            baload
            aload 2 /* right */
            iload 3 /* rightOff */
            iload 5 /* index */
            iadd
            baload
            if_icmpeq 25
        24: .line 509
            iload 5 /* index */
            ireturn
        25: .line 507
      StackMap locals:
      StackMap stack:
            iinc 5 /* index */ 1
      StackMap locals:
      StackMap stack:
        26: iload 5 /* index */
            iload 4 /* length */
            if_icmplt 23
        27: .line 512
            iconst_m1
            ireturn
        end local 5 // int index
        end local 4 // int length
        end local 3 // int rightOff
        end local 2 // byte[] right
        end local 1 // int leftOff
        end local 0 // byte[] left
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   28     0           left  [B
            0   28     1        leftOff  I
            0   28     2          right  [B
            0   28     3       rightOff  I
            0   28     4         length  I
            7   28     5          index  I
            9   22     6  leftAlignment  I
           15   22     7   strideLength  I
           17   20     8   leftLongWord  J
           18   20    10  rightLongWord  J
    MethodParameters:
          Name  Flags
      left      
      leftOff   
      right     
      rightOff  
      length    

  private static long fieldOffset(java.lang.reflect.Field);
    descriptor: (Ljava/lang/reflect/Field;)J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.reflect.Field field
         0: .line 520
            aload 0 /* field */
            ifnull 1
            getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
            ifnonnull 2
      StackMap locals:
      StackMap stack:
         1: ldc -1
            goto 3
      StackMap locals:
      StackMap stack:
         2: getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
            aload 0 /* field */
            invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.objectFieldOffset:(Ljava/lang/reflect/Field;)J
      StackMap locals:
      StackMap stack: long
         3: lreturn
        end local 0 // java.lang.reflect.Field field
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0  field  Ljava/lang/reflect/Field;
    MethodParameters:
       Name  Flags
      field  

  private static java.lang.reflect.Field field(java.lang.Class<?>, java.lang.String);
    descriptor: (Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/reflect/Field;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.lang.Class clazz
        start local 1 // java.lang.String fieldName
         0: .line 529
            aload 0 /* clazz */
            aload 1 /* fieldName */
            invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
            astore 2 /* field */
        start local 2 // java.lang.reflect.Field field
         1: .line 530
            goto 4
        end local 2 // java.lang.reflect.Field field
      StackMap locals:
      StackMap stack: java.lang.Throwable
         2: pop
         3: .line 532
            aconst_null
            astore 2 /* field */
        start local 2 // java.lang.reflect.Field field
         4: .line 534
      StackMap locals: java.lang.reflect.Field
      StackMap stack:
            aload 2 /* field */
            areturn
        end local 2 // java.lang.reflect.Field field
        end local 1 // java.lang.String fieldName
        end local 0 // java.lang.Class clazz
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0      clazz  Ljava/lang/Class<*>;
            0    5     1  fieldName  Ljava/lang/String;
            1    2     2      field  Ljava/lang/reflect/Field;
            4    5     2      field  Ljava/lang/reflect/Field;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Throwable
    Signature: (Ljava/lang/Class<*>;Ljava/lang/String;)Ljava/lang/reflect/Field;
    MethodParameters:
           Name  Flags
      clazz      
      fieldName  

  private static byte getByteBigEndian(java.lang.Object, long);
    descriptor: (Ljava/lang/Object;J)B
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // java.lang.Object target
        start local 1 // long offset
         0: .line 941
            aload 0 /* target */
            lload 1 /* offset */
            ldc -4
            land
            invokestatic com.google.protobuf.UnsafeUtil.getInt:(Ljava/lang/Object;J)I
            lload 1 /* offset */
            ldc -1
            lxor
            ldc 3
            land
            iconst_3
            lshl
            l2i
            iushr
            sipush 255
            iand
            i2b
            ireturn
        end local 1 // long offset
        end local 0 // java.lang.Object target
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  target  Ljava/lang/Object;
            0    1     1  offset  J
    MethodParameters:
        Name  Flags
      target  
      offset  

  private static byte getByteLittleEndian(java.lang.Object, long);
    descriptor: (Ljava/lang/Object;J)B
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // java.lang.Object target
        start local 1 // long offset
         0: .line 945
            aload 0 /* target */
            lload 1 /* offset */
            ldc -4
            land
            invokestatic com.google.protobuf.UnsafeUtil.getInt:(Ljava/lang/Object;J)I
            lload 1 /* offset */
            ldc 3
            land
            iconst_3
            lshl
            l2i
            iushr
            sipush 255
            iand
            i2b
            ireturn
        end local 1 // long offset
        end local 0 // java.lang.Object target
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  target  Ljava/lang/Object;
            0    1     1  offset  J
    MethodParameters:
        Name  Flags
      target  
      offset  

  private static void putByteBigEndian(java.lang.Object, long, byte);
    descriptor: (Ljava/lang/Object;JB)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=7, args_size=3
        start local 0 // java.lang.Object target
        start local 1 // long offset
        start local 3 // byte value
         0: .line 949
            aload 0 /* target */
            lload 1 /* offset */
            ldc -4
            land
            invokestatic com.google.protobuf.UnsafeUtil.getInt:(Ljava/lang/Object;J)I
            istore 4 /* intValue */
        start local 4 // int intValue
         1: .line 950
            lload 1 /* offset */
            l2i
            iconst_m1
            ixor
            iconst_3
            iand
            iconst_3
            ishl
            istore 5 /* shift */
        start local 5 // int shift
         2: .line 951
            iload 4 /* intValue */
            sipush 255
            iload 5 /* shift */
            ishl
            iconst_m1
            ixor
            iand
            sipush 255
            iload 3 /* value */
            iand
            iload 5 /* shift */
            ishl
            ior
            istore 6 /* output */
        start local 6 // int output
         3: .line 952
            aload 0 /* target */
            lload 1 /* offset */
            ldc -4
            land
            iload 6 /* output */
            invokestatic com.google.protobuf.UnsafeUtil.putInt:(Ljava/lang/Object;JI)V
         4: .line 953
            return
        end local 6 // int output
        end local 5 // int shift
        end local 4 // int intValue
        end local 3 // byte value
        end local 1 // long offset
        end local 0 // java.lang.Object target
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0    target  Ljava/lang/Object;
            0    5     1    offset  J
            0    5     3     value  B
            1    5     4  intValue  I
            2    5     5     shift  I
            3    5     6    output  I
    MethodParameters:
        Name  Flags
      target  
      offset  
      value   

  private static void putByteLittleEndian(java.lang.Object, long, byte);
    descriptor: (Ljava/lang/Object;JB)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=7, args_size=3
        start local 0 // java.lang.Object target
        start local 1 // long offset
        start local 3 // byte value
         0: .line 956
            aload 0 /* target */
            lload 1 /* offset */
            ldc -4
            land
            invokestatic com.google.protobuf.UnsafeUtil.getInt:(Ljava/lang/Object;J)I
            istore 4 /* intValue */
        start local 4 // int intValue
         1: .line 957
            lload 1 /* offset */
            l2i
            iconst_3
            iand
            iconst_3
            ishl
            istore 5 /* shift */
        start local 5 // int shift
         2: .line 958
            iload 4 /* intValue */
            sipush 255
            iload 5 /* shift */
            ishl
            iconst_m1
            ixor
            iand
            sipush 255
            iload 3 /* value */
            iand
            iload 5 /* shift */
            ishl
            ior
            istore 6 /* output */
        start local 6 // int output
         3: .line 959
            aload 0 /* target */
            lload 1 /* offset */
            ldc -4
            land
            iload 6 /* output */
            invokestatic com.google.protobuf.UnsafeUtil.putInt:(Ljava/lang/Object;JI)V
         4: .line 960
            return
        end local 6 // int output
        end local 5 // int shift
        end local 4 // int intValue
        end local 3 // byte value
        end local 1 // long offset
        end local 0 // java.lang.Object target
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0    target  Ljava/lang/Object;
            0    5     1    offset  J
            0    5     3     value  B
            1    5     4  intValue  I
            2    5     5     shift  I
            3    5     6    output  I
    MethodParameters:
        Name  Flags
      target  
      offset  
      value   

  private static boolean getBooleanBigEndian(java.lang.Object, long);
    descriptor: (Ljava/lang/Object;J)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.lang.Object target
        start local 1 // long offset
         0: .line 963
            aload 0 /* target */
            lload 1 /* offset */
            invokestatic com.google.protobuf.UnsafeUtil.getByteBigEndian:(Ljava/lang/Object;J)B
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // long offset
        end local 0 // java.lang.Object target
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0  target  Ljava/lang/Object;
            0    2     1  offset  J
    MethodParameters:
        Name  Flags
      target  
      offset  

  private static boolean getBooleanLittleEndian(java.lang.Object, long);
    descriptor: (Ljava/lang/Object;J)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.lang.Object target
        start local 1 // long offset
         0: .line 967
            aload 0 /* target */
            lload 1 /* offset */
            invokestatic com.google.protobuf.UnsafeUtil.getByteLittleEndian:(Ljava/lang/Object;J)B
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // long offset
        end local 0 // java.lang.Object target
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0  target  Ljava/lang/Object;
            0    2     1  offset  J
    MethodParameters:
        Name  Flags
      target  
      offset  

  private static void putBooleanBigEndian(java.lang.Object, long, boolean);
    descriptor: (Ljava/lang/Object;JZ)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // java.lang.Object target
        start local 1 // long offset
        start local 3 // boolean value
         0: .line 971
            aload 0 /* target */
            lload 1 /* offset */
            iload 3 /* value */
            ifeq 1
            iconst_1
            goto 2
      StackMap locals: java.lang.Object long int
      StackMap stack: java.lang.Object long
         1: iconst_0
      StackMap locals: java.lang.Object long int
      StackMap stack: java.lang.Object long int
         2: i2b
            invokestatic com.google.protobuf.UnsafeUtil.putByteBigEndian:(Ljava/lang/Object;JB)V
         3: .line 972
            return
        end local 3 // boolean value
        end local 1 // long offset
        end local 0 // java.lang.Object target
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0  target  Ljava/lang/Object;
            0    4     1  offset  J
            0    4     3   value  Z
    MethodParameters:
        Name  Flags
      target  
      offset  
      value   

  private static void putBooleanLittleEndian(java.lang.Object, long, boolean);
    descriptor: (Ljava/lang/Object;JZ)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // java.lang.Object target
        start local 1 // long offset
        start local 3 // boolean value
         0: .line 975
            aload 0 /* target */
            lload 1 /* offset */
            iload 3 /* value */
            ifeq 1
            iconst_1
            goto 2
      StackMap locals: java.lang.Object long int
      StackMap stack: java.lang.Object long
         1: iconst_0
      StackMap locals: java.lang.Object long int
      StackMap stack: java.lang.Object long int
         2: i2b
            invokestatic com.google.protobuf.UnsafeUtil.putByteLittleEndian:(Ljava/lang/Object;JB)V
         3: .line 976
            return
        end local 3 // boolean value
        end local 1 // long offset
        end local 0 // java.lang.Object target
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0  target  Ljava/lang/Object;
            0    4     1  offset  J
            0    4     3   value  Z
    MethodParameters:
        Name  Flags
      target  
      offset  
      value   
}
SourceFile: "UnsafeUtil.java"
NestMembers:
  com.google.protobuf.UnsafeUtil$1  com.google.protobuf.UnsafeUtil$Android32MemoryAccessor  com.google.protobuf.UnsafeUtil$Android64MemoryAccessor  com.google.protobuf.UnsafeUtil$JvmMemoryAccessor  com.google.protobuf.UnsafeUtil$MemoryAccessor
InnerClasses:
  com.google.protobuf.UnsafeUtil$1
  private final Android32MemoryAccessor = com.google.protobuf.UnsafeUtil$Android32MemoryAccessor of com.google.protobuf.UnsafeUtil
  private final Android64MemoryAccessor = com.google.protobuf.UnsafeUtil$Android64MemoryAccessor of com.google.protobuf.UnsafeUtil
  private final JvmMemoryAccessor = com.google.protobuf.UnsafeUtil$JvmMemoryAccessor of com.google.protobuf.UnsafeUtil
  private abstract MemoryAccessor = com.google.protobuf.UnsafeUtil$MemoryAccessor of com.google.protobuf.UnsafeUtil