public final class android.bluetooth.le.ScanRecord
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: android.bluetooth.le.ScanRecord
  super_class: java.lang.Object
{
  private static final java.lang.String TAG;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "ScanRecord"

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  private final int mAdvertiseFlags;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.List<android.os.ParcelUuid> mServiceUuids;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Landroid/os/ParcelUuid;>;

  private final android.util.SparseArray<byte[]> mManufacturerSpecificData;
    descriptor: Landroid/util/SparseArray;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Landroid/util/SparseArray<[B>;

  private final java.util.Map<android.os.ParcelUuid, byte[]> mServiceData;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Landroid/os/ParcelUuid;[B>;

  private final int mTxPowerLevel;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.String mDeviceName;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final byte[] mBytes;
    descriptor: [B
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public int getAdvertiseFlags();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.bluetooth.le.ScanRecord this
         0: .line 79
            aload 0 /* this */
            getfield android.bluetooth.le.ScanRecord.mAdvertiseFlags:I
            ireturn
        end local 0 // android.bluetooth.le.ScanRecord this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/bluetooth/le/ScanRecord;

  public java.util.List<android.os.ParcelUuid> getServiceUuids();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.bluetooth.le.ScanRecord this
         0: .line 87
            aload 0 /* this */
            getfield android.bluetooth.le.ScanRecord.mServiceUuids:Ljava/util/List;
            areturn
        end local 0 // android.bluetooth.le.ScanRecord this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/bluetooth/le/ScanRecord;
    Signature: ()Ljava/util/List<Landroid/os/ParcelUuid;>;

  public android.util.SparseArray<byte[]> getManufacturerSpecificData();
    descriptor: ()Landroid/util/SparseArray;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.bluetooth.le.ScanRecord this
         0: .line 95
            aload 0 /* this */
            getfield android.bluetooth.le.ScanRecord.mManufacturerSpecificData:Landroid/util/SparseArray;
            areturn
        end local 0 // android.bluetooth.le.ScanRecord this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/bluetooth/le/ScanRecord;
    Signature: ()Landroid/util/SparseArray<[B>;

  public byte[] getManufacturerSpecificData(int);
    descriptor: (I)[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.bluetooth.le.ScanRecord this
        start local 1 // int manufacturerId
         0: .line 104
            aload 0 /* this */
            getfield android.bluetooth.le.ScanRecord.mManufacturerSpecificData:Landroid/util/SparseArray;
            iload 1 /* manufacturerId */
            invokevirtual android.util.SparseArray.get:(I)Ljava/lang/Object;
            checkcast byte[]
            areturn
        end local 1 // int manufacturerId
        end local 0 // android.bluetooth.le.ScanRecord this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Landroid/bluetooth/le/ScanRecord;
            0    1     1  manufacturerId  I
    MethodParameters:
                Name  Flags
      manufacturerId  

  public java.util.Map<android.os.ParcelUuid, byte[]> getServiceData();
    descriptor: ()Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.bluetooth.le.ScanRecord this
         0: .line 111
            aload 0 /* this */
            getfield android.bluetooth.le.ScanRecord.mServiceData:Ljava/util/Map;
            areturn
        end local 0 // android.bluetooth.le.ScanRecord this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/bluetooth/le/ScanRecord;
    Signature: ()Ljava/util/Map<Landroid/os/ParcelUuid;[B>;

  public byte[] getServiceData(android.os.ParcelUuid);
    descriptor: (Landroid/os/ParcelUuid;)[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.bluetooth.le.ScanRecord this
        start local 1 // android.os.ParcelUuid serviceDataUuid
         0: .line 120
            aload 1 /* serviceDataUuid */
            ifnonnull 2
         1: .line 121
            aconst_null
            areturn
         2: .line 123
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.bluetooth.le.ScanRecord.mServiceData:Ljava/util/Map;
            aload 1 /* serviceDataUuid */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast byte[]
            areturn
        end local 1 // android.os.ParcelUuid serviceDataUuid
        end local 0 // android.bluetooth.le.ScanRecord this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    3     0             this  Landroid/bluetooth/le/ScanRecord;
            0    3     1  serviceDataUuid  Landroid/os/ParcelUuid;
    MethodParameters:
                 Name  Flags
      serviceDataUuid  

  public int getTxPowerLevel();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.bluetooth.le.ScanRecord this
         0: .line 134
            aload 0 /* this */
            getfield android.bluetooth.le.ScanRecord.mTxPowerLevel:I
            ireturn
        end local 0 // android.bluetooth.le.ScanRecord this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/bluetooth/le/ScanRecord;

  public java.lang.String getDeviceName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.bluetooth.le.ScanRecord this
         0: .line 142
            aload 0 /* this */
            getfield android.bluetooth.le.ScanRecord.mDeviceName:Ljava/lang/String;
            areturn
        end local 0 // android.bluetooth.le.ScanRecord this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/bluetooth/le/ScanRecord;

  public byte[] getBytes();
    descriptor: ()[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.bluetooth.le.ScanRecord this
         0: .line 149
            aload 0 /* this */
            getfield android.bluetooth.le.ScanRecord.mBytes:[B
            areturn
        end local 0 // android.bluetooth.le.ScanRecord this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/bluetooth/le/ScanRecord;

  private void <init>(java.util.List<android.os.ParcelUuid>, android.util.SparseArray<byte[]>, java.util.Map<android.os.ParcelUuid, byte[]>, int, int, java.lang.String, );
    descriptor: (Ljava/util/List;Landroid/util/SparseArray;Ljava/util/Map;IILjava/lang/String;[B)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=8, args_size=8
        start local 0 // android.bluetooth.le.ScanRecord this
        start local 1 // java.util.List serviceUuids
        start local 2 // android.util.SparseArray manufacturerData
        start local 3 // java.util.Map serviceData
        start local 4 // int advertiseFlags
        start local 5 // int txPowerLevel
        start local 6 // java.lang.String localName
        start local 7 // byte[] bytes
         0: .line 152
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 157
            aload 0 /* this */
            aload 1 /* serviceUuids */
            putfield android.bluetooth.le.ScanRecord.mServiceUuids:Ljava/util/List;
         2: .line 158
            aload 0 /* this */
            aload 2 /* manufacturerData */
            putfield android.bluetooth.le.ScanRecord.mManufacturerSpecificData:Landroid/util/SparseArray;
         3: .line 159
            aload 0 /* this */
            aload 3 /* serviceData */
            putfield android.bluetooth.le.ScanRecord.mServiceData:Ljava/util/Map;
         4: .line 160
            aload 0 /* this */
            aload 6 /* localName */
            putfield android.bluetooth.le.ScanRecord.mDeviceName:Ljava/lang/String;
         5: .line 161
            aload 0 /* this */
            iload 4 /* advertiseFlags */
            putfield android.bluetooth.le.ScanRecord.mAdvertiseFlags:I
         6: .line 162
            aload 0 /* this */
            iload 5 /* txPowerLevel */
            putfield android.bluetooth.le.ScanRecord.mTxPowerLevel:I
         7: .line 163
            aload 0 /* this */
            aload 7 /* bytes */
            putfield android.bluetooth.le.ScanRecord.mBytes:[B
         8: .line 164
            return
        end local 7 // byte[] bytes
        end local 6 // java.lang.String localName
        end local 5 // int txPowerLevel
        end local 4 // int advertiseFlags
        end local 3 // java.util.Map serviceData
        end local 2 // android.util.SparseArray manufacturerData
        end local 1 // java.util.List serviceUuids
        end local 0 // android.bluetooth.le.ScanRecord this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    9     0              this  Landroid/bluetooth/le/ScanRecord;
            0    9     1      serviceUuids  Ljava/util/List<Landroid/os/ParcelUuid;>;
            0    9     2  manufacturerData  Landroid/util/SparseArray<[B>;
            0    9     3       serviceData  Ljava/util/Map<Landroid/os/ParcelUuid;[B>;
            0    9     4    advertiseFlags  I
            0    9     5      txPowerLevel  I
            0    9     6         localName  Ljava/lang/String;
            0    9     7             bytes  [B
    Signature: (Ljava/util/List<Landroid/os/ParcelUuid;>;Landroid/util/SparseArray<[B>;Ljava/util/Map<Landroid/os/ParcelUuid;[B>;IILjava/lang/String;[B)V
    MethodParameters:
                  Name  Flags
      serviceUuids      
      manufacturerData  
      serviceData       
      advertiseFlags    
      txPowerLevel      
      localName         
      bytes             

  public static android.bluetooth.le.ScanRecord parseFromBytes(byte[]);
    descriptor: ([B)Landroid/bluetooth/le/ScanRecord;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=9, locals=17, args_size=1
        start local 0 // byte[] scanRecord
         0: .line 178
            aload 0 /* scanRecord */
            ifnonnull 2
         1: .line 179
            aconst_null
            areturn
         2: .line 182
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 1 /* currentPos */
        start local 1 // int currentPos
         3: .line 183
            iconst_m1
            istore 2 /* advertiseFlag */
        start local 2 // int advertiseFlag
         4: .line 184
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* serviceUuids */
        start local 3 // java.util.List serviceUuids
         5: .line 185
            aconst_null
            astore 4 /* localName */
        start local 4 // java.lang.String localName
         6: .line 186
            ldc -2147483648
            istore 5 /* txPowerLevel */
        start local 5 // int txPowerLevel
         7: .line 188
            new android.util.SparseArray
            dup
            invokespecial android.util.SparseArray.<init>:()V
            astore 6 /* manufacturerData */
        start local 6 // android.util.SparseArray manufacturerData
         8: .line 189
            new android.util.ArrayMap
            dup
            invokespecial android.util.ArrayMap.<init>:()V
            astore 7 /* serviceData */
        start local 7 // java.util.Map serviceData
         9: .line 192
            goto 62
        10: .line 194
      StackMap locals: byte[] int int java.util.List java.lang.String int android.util.SparseArray java.util.Map
      StackMap stack:
            aload 0 /* scanRecord */
            iload 1 /* currentPos */
            iinc 1 /* currentPos */ 1
            baload
            sipush 255
            iand
            istore 8 /* length */
        start local 8 // int length
        11: .line 195
            iload 8 /* length */
            ifne 13
        12: .line 196
            goto 63
        13: .line 199
      StackMap locals: int
      StackMap stack:
            iload 8 /* length */
            iconst_1
            isub
            istore 9 /* dataLength */
        start local 9 // int dataLength
        14: .line 201
            aload 0 /* scanRecord */
            iload 1 /* currentPos */
            iinc 1 /* currentPos */ 1
            baload
            sipush 255
            iand
            istore 10 /* fieldType */
        start local 10 // int fieldType
        15: .line 202
            iload 10 /* fieldType */
            lookupswitch { // 14
                    1: 16
                    2: 18
                    3: 18
                    4: 22
                    5: 22
                    6: 26
                    7: 26
                    8: 30
                    9: 30
                   10: 34
                   22: 36
                   32: 36
                   33: 36
                  255: 52
              default: 60
          }
        16: .line 204
      StackMap locals: int int
      StackMap stack:
            aload 0 /* scanRecord */
            iload 1 /* currentPos */
            baload
            sipush 255
            iand
            istore 2 /* advertiseFlag */
        17: .line 205
            goto 60
        18: .line 208
      StackMap locals:
      StackMap stack:
            aload 0 /* scanRecord */
            iload 1 /* currentPos */
        19: .line 209
            iload 9 /* dataLength */
            iconst_2
            aload 3 /* serviceUuids */
        20: .line 208
            invokestatic android.bluetooth.le.ScanRecord.parseServiceUuid:([BIIILjava/util/List;)I
            pop
        21: .line 210
            goto 60
        22: .line 213
      StackMap locals:
      StackMap stack:
            aload 0 /* scanRecord */
            iload 1 /* currentPos */
            iload 9 /* dataLength */
        23: .line 214
            iconst_4
            aload 3 /* serviceUuids */
        24: .line 213
            invokestatic android.bluetooth.le.ScanRecord.parseServiceUuid:([BIIILjava/util/List;)I
            pop
        25: .line 215
            goto 60
        26: .line 218
      StackMap locals:
      StackMap stack:
            aload 0 /* scanRecord */
            iload 1 /* currentPos */
            iload 9 /* dataLength */
        27: .line 219
            bipush 16
            aload 3 /* serviceUuids */
        28: .line 218
            invokestatic android.bluetooth.le.ScanRecord.parseServiceUuid:([BIIILjava/util/List;)I
            pop
        29: .line 220
            goto 60
        30: .line 223
      StackMap locals:
      StackMap stack:
            new java.lang.String
            dup
        31: .line 224
            aload 0 /* scanRecord */
            iload 1 /* currentPos */
            iload 9 /* dataLength */
            invokestatic android.bluetooth.le.ScanRecord.extractBytes:([BII)[B
        32: .line 223
            invokespecial java.lang.String.<init>:([B)V
            astore 4 /* localName */
        33: .line 225
            goto 60
        34: .line 227
      StackMap locals:
      StackMap stack:
            aload 0 /* scanRecord */
            iload 1 /* currentPos */
            baload
            istore 5 /* txPowerLevel */
        35: .line 228
            goto 60
        36: .line 232
      StackMap locals:
      StackMap stack:
            iconst_2
            istore 11 /* serviceUuidLength */
        start local 11 // int serviceUuidLength
        37: .line 233
            iload 10 /* fieldType */
            bipush 32
            if_icmpne 40
        38: .line 234
            iconst_4
            istore 11 /* serviceUuidLength */
        39: .line 235
            goto 42
      StackMap locals: int
      StackMap stack:
        40: iload 10 /* fieldType */
            bipush 33
            if_icmpne 42
        41: .line 236
            bipush 16
            istore 11 /* serviceUuidLength */
        42: .line 239
      StackMap locals:
      StackMap stack:
            aload 0 /* scanRecord */
            iload 1 /* currentPos */
        43: .line 240
            iload 11 /* serviceUuidLength */
        44: .line 239
            invokestatic android.bluetooth.le.ScanRecord.extractBytes:([BII)[B
            astore 12 /* serviceDataUuidBytes */
        start local 12 // byte[] serviceDataUuidBytes
        45: .line 242
            aload 12 /* serviceDataUuidBytes */
        46: .line 241
            invokestatic android.bluetooth.BluetoothUuid.parseUuidFrom:([B)Landroid/os/ParcelUuid;
            astore 13 /* serviceDataUuid */
        start local 13 // android.os.ParcelUuid serviceDataUuid
        47: .line 243
            aload 0 /* scanRecord */
        48: .line 244
            iload 1 /* currentPos */
            iload 11 /* serviceUuidLength */
            iadd
            iload 9 /* dataLength */
            iload 11 /* serviceUuidLength */
            isub
        49: .line 243
            invokestatic android.bluetooth.le.ScanRecord.extractBytes:([BII)[B
            astore 14 /* serviceDataArray */
        start local 14 // byte[] serviceDataArray
        50: .line 245
            aload 7 /* serviceData */
            aload 13 /* serviceDataUuid */
            aload 14 /* serviceDataArray */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        51: .line 246
            goto 60
        end local 14 // byte[] serviceDataArray
        end local 13 // android.os.ParcelUuid serviceDataUuid
        end local 12 // byte[] serviceDataUuidBytes
        end local 11 // int serviceUuidLength
        52: .line 250
      StackMap locals:
      StackMap stack:
            aload 0 /* scanRecord */
            iload 1 /* currentPos */
            iconst_1
            iadd
            baload
            sipush 255
            iand
            bipush 8
            ishl
        53: .line 251
            aload 0 /* scanRecord */
            iload 1 /* currentPos */
            baload
            sipush 255
            iand
        54: .line 250
            iadd
            istore 15 /* manufacturerId */
        start local 15 // int manufacturerId
        55: .line 252
            aload 0 /* scanRecord */
            iload 1 /* currentPos */
            iconst_2
            iadd
        56: .line 253
            iload 9 /* dataLength */
            iconst_2
            isub
        57: .line 252
            invokestatic android.bluetooth.le.ScanRecord.extractBytes:([BII)[B
            astore 16 /* manufacturerDataBytes */
        start local 16 // byte[] manufacturerDataBytes
        58: .line 254
            aload 6 /* manufacturerData */
            iload 15 /* manufacturerId */
            aload 16 /* manufacturerDataBytes */
            invokevirtual android.util.SparseArray.put:(ILjava/lang/Object;)V
        59: .line 255
            goto 60
        end local 16 // byte[] manufacturerDataBytes
        end local 15 // int manufacturerId
        60: .line 258
      StackMap locals:
      StackMap stack:
            iload 1 /* currentPos */
        61: .line 260
            iload 9 /* dataLength */
            iadd
            istore 1 /* currentPos */
        end local 10 // int fieldType
        end local 9 // int dataLength
        end local 8 // int length
        62: .line 192
      StackMap locals:
      StackMap stack:
            iload 1 /* currentPos */
            aload 0 /* scanRecord */
            arraylength
            if_icmplt 10
        63: .line 263
      StackMap locals:
      StackMap stack:
            aload 3 /* serviceUuids */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 65
        64: .line 264
            aconst_null
            astore 3 /* serviceUuids */
        65: .line 266
      StackMap locals:
      StackMap stack:
            new android.bluetooth.le.ScanRecord
            dup
            aload 3 /* serviceUuids */
            aload 6 /* manufacturerData */
            aload 7 /* serviceData */
        66: .line 267
            iload 2 /* advertiseFlag */
            iload 5 /* txPowerLevel */
            aload 4 /* localName */
            aload 0 /* scanRecord */
        67: .line 266
            invokespecial android.bluetooth.le.ScanRecord.<init>:(Ljava/util/List;Landroid/util/SparseArray;Ljava/util/Map;IILjava/lang/String;[B)V
        68: areturn
        69: .line 268
      StackMap locals:
      StackMap stack: java.lang.Exception
            pop
        70: .line 269
            ldc "ScanRecord"
            new java.lang.StringBuilder
            dup
            ldc "unable to parse scan record: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* scanRecord */
            invokestatic java.util.Arrays.toString:([B)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        71: .line 272
            new android.bluetooth.le.ScanRecord
            dup
            aconst_null
            aconst_null
            aconst_null
            iconst_m1
            ldc -2147483648
            aconst_null
            aload 0 /* scanRecord */
            invokespecial android.bluetooth.le.ScanRecord.<init>:(Ljava/util/List;Landroid/util/SparseArray;Ljava/util/Map;IILjava/lang/String;[B)V
            areturn
        end local 7 // java.util.Map serviceData
        end local 6 // android.util.SparseArray manufacturerData
        end local 5 // int txPowerLevel
        end local 4 // java.lang.String localName
        end local 3 // java.util.List serviceUuids
        end local 2 // int advertiseFlag
        end local 1 // int currentPos
        end local 0 // byte[] scanRecord
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   72     0             scanRecord  [B
            3   72     1             currentPos  I
            4   72     2          advertiseFlag  I
            5   72     3           serviceUuids  Ljava/util/List<Landroid/os/ParcelUuid;>;
            6   72     4              localName  Ljava/lang/String;
            7   72     5           txPowerLevel  I
            8   72     6       manufacturerData  Landroid/util/SparseArray<[B>;
            9   72     7            serviceData  Ljava/util/Map<Landroid/os/ParcelUuid;[B>;
           11   62     8                 length  I
           14   62     9             dataLength  I
           15   62    10              fieldType  I
           37   52    11      serviceUuidLength  I
           45   52    12   serviceDataUuidBytes  [B
           47   52    13        serviceDataUuid  Landroid/os/ParcelUuid;
           50   52    14       serviceDataArray  [B
           55   60    15         manufacturerId  I
           58   60    16  manufacturerDataBytes  [B
      Exception table:
        from    to  target  type
           9    68      69  Class java.lang.Exception
    MethodParameters:
            Name  Flags
      scanRecord  

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // android.bluetooth.le.ScanRecord this
         0: .line 278
            new java.lang.StringBuilder
            dup
            ldc "ScanRecord [mAdvertiseFlags="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield android.bluetooth.le.ScanRecord.mAdvertiseFlags:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ", mServiceUuids="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield android.bluetooth.le.ScanRecord.mServiceUuids:Ljava/util/List;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         1: .line 279
            ldc ", mManufacturerSpecificData="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 280
            aload 0 /* this */
            getfield android.bluetooth.le.ScanRecord.mManufacturerSpecificData:Landroid/util/SparseArray;
         3: .line 279
            invokestatic android.bluetooth.le.BluetoothLeUtils.toString:(Landroid/util/SparseArray;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         4: .line 281
            ldc ", mServiceData="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield android.bluetooth.le.ScanRecord.mServiceData:Ljava/util/Map;
            invokestatic android.bluetooth.le.BluetoothLeUtils.toString:(Ljava/util/Map;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         5: .line 282
            ldc ", mTxPowerLevel="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield android.bluetooth.le.ScanRecord.mTxPowerLevel:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ", mDeviceName="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield android.bluetooth.le.ScanRecord.mDeviceName:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         6: .line 278
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // android.bluetooth.le.ScanRecord this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Landroid/bluetooth/le/ScanRecord;

  private static int parseServiceUuid(byte[], int, int, int, java.util.List<android.os.ParcelUuid>);
    descriptor: ([BIIILjava/util/List;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=6, args_size=5
        start local 0 // byte[] scanRecord
        start local 1 // int currentPos
        start local 2 // int dataLength
        start local 3 // int uuidLength
        start local 4 // java.util.List serviceUuids
         0: .line 288
            goto 7
         1: .line 289
      StackMap locals:
      StackMap stack:
            aload 0 /* scanRecord */
            iload 1 /* currentPos */
         2: .line 290
            iload 3 /* uuidLength */
         3: .line 289
            invokestatic android.bluetooth.le.ScanRecord.extractBytes:([BII)[B
            astore 5 /* uuidBytes */
        start local 5 // byte[] uuidBytes
         4: .line 291
            aload 4 /* serviceUuids */
            aload 5 /* uuidBytes */
            invokestatic android.bluetooth.BluetoothUuid.parseUuidFrom:([B)Landroid/os/ParcelUuid;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         5: .line 292
            iload 2 /* dataLength */
            iload 3 /* uuidLength */
            isub
            istore 2 /* dataLength */
         6: .line 293
            iload 1 /* currentPos */
            iload 3 /* uuidLength */
            iadd
            istore 1 /* currentPos */
        end local 5 // byte[] uuidBytes
         7: .line 288
      StackMap locals:
      StackMap stack:
            iload 2 /* dataLength */
            ifgt 1
         8: .line 295
            iload 1 /* currentPos */
            ireturn
        end local 4 // java.util.List serviceUuids
        end local 3 // int uuidLength
        end local 2 // int dataLength
        end local 1 // int currentPos
        end local 0 // byte[] scanRecord
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    9     0    scanRecord  [B
            0    9     1    currentPos  I
            0    9     2    dataLength  I
            0    9     3    uuidLength  I
            0    9     4  serviceUuids  Ljava/util/List<Landroid/os/ParcelUuid;>;
            4    7     5     uuidBytes  [B
    Signature: ([BIIILjava/util/List<Landroid/os/ParcelUuid;>;)I
    MethodParameters:
              Name  Flags
      scanRecord    
      currentPos    
      dataLength    
      uuidLength    
      serviceUuids  

  private static byte[] extractBytes(byte[], int, int);
    descriptor: ([BII)[B
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // byte[] scanRecord
        start local 1 // int start
        start local 2 // int length
         0: .line 300
            iload 2 /* length */
            newarray 8
            astore 3 /* bytes */
        start local 3 // byte[] bytes
         1: .line 301
            aload 0 /* scanRecord */
            iload 1 /* start */
            aload 3 /* bytes */
            iconst_0
            iload 2 /* length */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         2: .line 302
            aload 3 /* bytes */
            areturn
        end local 3 // byte[] bytes
        end local 2 // int length
        end local 1 // int start
        end local 0 // byte[] scanRecord
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0  scanRecord  [B
            0    3     1       start  I
            0    3     2      length  I
            1    3     3       bytes  [B
    MethodParameters:
            Name  Flags
      scanRecord  
      start       
      length      
}
SourceFile: "ScanRecord.java"