final class android.os.BinderProxy$ProxyMap
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: android.os.BinderProxy$ProxyMap
  super_class: java.lang.Object
{
  private static final int LOG_MAIN_INDEX_SIZE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 8

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

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

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

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

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

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

  private final java.lang.Long[][] mMainIndexKeys;
    descriptor: [[Ljava/lang/Long;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.ArrayList<java.lang.ref.WeakReference<android.os.BinderProxy>>[] mMainIndexValues;
    descriptor: [Ljava/util/ArrayList;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: [Ljava/util/ArrayList<Ljava/lang/ref/WeakReference<Landroid/os/BinderProxy;>;>;

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.os.BinderProxy$ProxyMap this
         0: .line 788
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 798
            aload 0 /* this */
            bipush 20
            putfield android.os.BinderProxy$ProxyMap.mWarnBucketSize:I
         2: .line 1022
            aload 0 /* this */
            sipush 256
            anewarray java.lang.Long[]
            putfield android.os.BinderProxy$ProxyMap.mMainIndexKeys:[[Ljava/lang/Long;
         3: .line 1023
            aload 0 /* this */
         4: .line 1024
            sipush 256
            anewarray java.util.ArrayList
            putfield android.os.BinderProxy$ProxyMap.mMainIndexValues:[Ljava/util/ArrayList;
         5: .line 788
            return
        end local 0 // android.os.BinderProxy$ProxyMap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Landroid/os/BinderProxy$ProxyMap;

  private static int hash(long);
    descriptor: (J)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // long arg
         0: .line 810
            lload 0 /* arg */
            iconst_2
            lshr
            lload 0 /* arg */
            bipush 10
            lshr
            lxor
            l2i
            sipush 255
            iand
            ireturn
        end local 0 // long arg
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   arg  J
    MethodParameters:
      Name  Flags
      arg   

  private int size();
    descriptor: ()I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=6, args_size=1
        start local 0 // android.os.BinderProxy$ProxyMap this
         0: .line 817
            iconst_0
            istore 1 /* size */
        start local 1 // int size
         1: .line 818
            aload 0 /* this */
            getfield android.os.BinderProxy$ProxyMap.mMainIndexValues:[Ljava/util/ArrayList;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 6
      StackMap locals: android.os.BinderProxy$ProxyMap int top int int java.util.ArrayList[]
      StackMap stack:
         2: aload 5
            iload 3
            aaload
            astore 2 /* a */
        start local 2 // java.util.ArrayList a
         3: .line 819
            aload 2 /* a */
            ifnull 5
         4: .line 820
            iload 1 /* size */
            aload 2 /* a */
            invokevirtual java.util.ArrayList.size:()I
            iadd
            istore 1 /* size */
        end local 2 // java.util.ArrayList a
         5: .line 818
      StackMap locals:
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
         6: iload 3
            iload 4
            if_icmplt 2
         7: .line 823
            iload 1 /* size */
            ireturn
        end local 1 // int size
        end local 0 // android.os.BinderProxy$ProxyMap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Landroid/os/BinderProxy$ProxyMap;
            1    8     1  size  I
            3    5     2     a  Ljava/util/ArrayList<Ljava/lang/ref/WeakReference<Landroid/os/BinderProxy;>;>;

  private int unclearedSize();
    descriptor: ()I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=8, args_size=1
        start local 0 // android.os.BinderProxy$ProxyMap this
         0: .line 831
            iconst_0
            istore 1 /* size */
        start local 1 // int size
         1: .line 832
            aload 0 /* this */
            getfield android.os.BinderProxy$ProxyMap.mMainIndexValues:[Ljava/util/ArrayList;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 10
      StackMap locals: android.os.BinderProxy$ProxyMap int top int int java.util.ArrayList[]
      StackMap stack:
         2: aload 5
            iload 3
            aaload
            astore 2 /* a */
        start local 2 // java.util.ArrayList a
         3: .line 833
            aload 2 /* a */
            ifnull 9
         4: .line 834
            aload 2 /* a */
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 7
            goto 8
      StackMap locals: android.os.BinderProxy$ProxyMap int java.util.ArrayList int int java.util.ArrayList[] top java.util.Iterator
      StackMap stack:
         5: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.ref.WeakReference
            astore 6 /* ref */
        start local 6 // java.lang.ref.WeakReference ref
         6: .line 835
            aload 6 /* ref */
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            ifnull 8
         7: .line 836
            iinc 1 /* size */ 1
        end local 6 // java.lang.ref.WeakReference ref
         8: .line 834
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        end local 2 // java.util.ArrayList a
         9: .line 832
      StackMap locals: android.os.BinderProxy$ProxyMap int top int int java.util.ArrayList[]
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
        10: iload 3
            iload 4
            if_icmplt 2
        11: .line 841
            iload 1 /* size */
            ireturn
        end local 1 // int size
        end local 0 // android.os.BinderProxy$ProxyMap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Landroid/os/BinderProxy$ProxyMap;
            1   12     1  size  I
            3    9     2     a  Ljava/util/ArrayList<Ljava/lang/ref/WeakReference<Landroid/os/BinderProxy;>;>;
            6    8     6   ref  Ljava/lang/ref/WeakReference<Landroid/os/BinderProxy;>;

  private void remove(int, int);
    descriptor: (II)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // android.os.BinderProxy$ProxyMap this
        start local 1 // int hash
        start local 2 // int index
         0: .line 848
            aload 0 /* this */
            getfield android.os.BinderProxy$ProxyMap.mMainIndexKeys:[[Ljava/lang/Long;
            iload 1 /* hash */
            aaload
            astore 3 /* keyArray */
        start local 3 // java.lang.Long[] keyArray
         1: .line 849
            aload 0 /* this */
            getfield android.os.BinderProxy$ProxyMap.mMainIndexValues:[Ljava/util/ArrayList;
            iload 1 /* hash */
            aaload
            astore 4 /* valueArray */
        start local 4 // java.util.ArrayList valueArray
         2: .line 850
            aload 4 /* valueArray */
            invokevirtual java.util.ArrayList.size:()I
            istore 5 /* size */
        start local 5 // int size
         3: .line 852
            iload 2 /* index */
            iload 5 /* size */
            iconst_1
            isub
            if_icmpeq 6
         4: .line 853
            aload 3 /* keyArray */
            iload 2 /* index */
            aload 3 /* keyArray */
            iload 5 /* size */
            iconst_1
            isub
            aaload
            aastore
         5: .line 854
            aload 4 /* valueArray */
            iload 2 /* index */
            aload 4 /* valueArray */
            iload 5 /* size */
            iconst_1
            isub
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast java.lang.ref.WeakReference
            invokevirtual java.util.ArrayList.set:(ILjava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 856
      StackMap locals: java.lang.Long[] java.util.ArrayList int
      StackMap stack:
            aload 4 /* valueArray */
            iload 5 /* size */
            iconst_1
            isub
            invokevirtual java.util.ArrayList.remove:(I)Ljava/lang/Object;
            pop
         7: .line 858
            return
        end local 5 // int size
        end local 4 // java.util.ArrayList valueArray
        end local 3 // java.lang.Long[] keyArray
        end local 2 // int index
        end local 1 // int hash
        end local 0 // android.os.BinderProxy$ProxyMap this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    8     0        this  Landroid/os/BinderProxy$ProxyMap;
            0    8     1        hash  I
            0    8     2       index  I
            1    8     3    keyArray  [Ljava/lang/Long;
            2    8     4  valueArray  Ljava/util/ArrayList<Ljava/lang/ref/WeakReference<Landroid/os/BinderProxy;>;>;
            3    8     5        size  I
    MethodParameters:
       Name  Flags
      hash   
      index  

  android.os.BinderProxy get(long);
    descriptor: (J)Landroid/os/BinderProxy;
    flags: (0x0000) 
    Code:
      stack=4, locals=12, args_size=2
        start local 0 // android.os.BinderProxy$ProxyMap this
        start local 1 // long key
         0: .line 864
            lload 1 /* key */
            invokestatic android.os.BinderProxy$ProxyMap.hash:(J)I
            istore 3 /* myHash */
        start local 3 // int myHash
         1: .line 865
            aload 0 /* this */
            getfield android.os.BinderProxy$ProxyMap.mMainIndexKeys:[[Ljava/lang/Long;
            iload 3 /* myHash */
            aaload
            astore 4 /* keyArray */
        start local 4 // java.lang.Long[] keyArray
         2: .line 866
            aload 4 /* keyArray */
            ifnonnull 4
         3: .line 867
            aconst_null
            areturn
         4: .line 869
      StackMap locals: int java.lang.Long[]
      StackMap stack:
            aload 0 /* this */
            getfield android.os.BinderProxy$ProxyMap.mMainIndexValues:[Ljava/util/ArrayList;
            iload 3 /* myHash */
            aaload
            astore 5 /* valueArray */
        start local 5 // java.util.ArrayList valueArray
         5: .line 870
            aload 5 /* valueArray */
            invokevirtual java.util.ArrayList.size:()I
            istore 6 /* bucketSize */
        start local 6 // int bucketSize
         6: .line 871
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         7: goto 17
         8: .line 872
      StackMap locals: java.util.ArrayList int int
      StackMap stack:
            aload 4 /* keyArray */
            iload 7 /* i */
            aaload
            invokevirtual java.lang.Long.longValue:()J
            lstore 8 /* foundKey */
        start local 8 // long foundKey
         9: .line 873
            lload 1 /* key */
            lload 8 /* foundKey */
            lcmp
            ifne 16
        10: .line 874
            aload 5 /* valueArray */
            iload 7 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast java.lang.ref.WeakReference
            astore 10 /* wr */
        start local 10 // java.lang.ref.WeakReference wr
        11: .line 875
            aload 10 /* wr */
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast android.os.BinderProxy
            astore 11 /* bp */
        start local 11 // android.os.BinderProxy bp
        12: .line 876
            aload 11 /* bp */
            ifnull 14
        13: .line 877
            aload 11 /* bp */
            areturn
        14: .line 879
      StackMap locals: long java.lang.ref.WeakReference android.os.BinderProxy
      StackMap stack:
            aload 0 /* this */
            iload 3 /* myHash */
            iload 7 /* i */
            invokevirtual android.os.BinderProxy$ProxyMap.remove:(II)V
        15: .line 880
            aconst_null
            areturn
        end local 11 // android.os.BinderProxy bp
        end local 10 // java.lang.ref.WeakReference wr
        end local 8 // long foundKey
        16: .line 871
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        17: iload 7 /* i */
            iload 6 /* bucketSize */
            if_icmplt 8
        end local 7 // int i
        18: .line 884
            aconst_null
            areturn
        end local 6 // int bucketSize
        end local 5 // java.util.ArrayList valueArray
        end local 4 // java.lang.Long[] keyArray
        end local 3 // int myHash
        end local 1 // long key
        end local 0 // android.os.BinderProxy$ProxyMap this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   19     0        this  Landroid/os/BinderProxy$ProxyMap;
            0   19     1         key  J
            1   19     3      myHash  I
            2   19     4    keyArray  [Ljava/lang/Long;
            5   19     5  valueArray  Ljava/util/ArrayList<Ljava/lang/ref/WeakReference<Landroid/os/BinderProxy;>;>;
            6   19     6  bucketSize  I
            7   18     7           i  I
            9   16     8    foundKey  J
           11   16    10          wr  Ljava/lang/ref/WeakReference<Landroid/os/BinderProxy;>;
           12   16    11          bp  Landroid/os/BinderProxy;
    MethodParameters:
      Name  Flags
      key   

  void set(long, android.os.BinderProxy);
    descriptor: (JLandroid/os/BinderProxy;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=11, args_size=3
        start local 0 // android.os.BinderProxy$ProxyMap this
        start local 1 // long key
        start local 3 // android.os.BinderProxy value
         0: .line 894
            lload 1 /* key */
            invokestatic android.os.BinderProxy$ProxyMap.hash:(J)I
            istore 4 /* myHash */
        start local 4 // int myHash
         1: .line 895
            aload 0 /* this */
            getfield android.os.BinderProxy$ProxyMap.mMainIndexValues:[Ljava/util/ArrayList;
            iload 4 /* myHash */
            aaload
            astore 5 /* valueArray */
        start local 5 // java.util.ArrayList valueArray
         2: .line 896
            aload 5 /* valueArray */
            ifnonnull 5
         3: .line 897
            aload 0 /* this */
            getfield android.os.BinderProxy$ProxyMap.mMainIndexValues:[Ljava/util/ArrayList;
            iload 4 /* myHash */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            dup_x2
            aastore
            astore 5 /* valueArray */
         4: .line 898
            aload 0 /* this */
            getfield android.os.BinderProxy$ProxyMap.mMainIndexKeys:[[Ljava/lang/Long;
            iload 4 /* myHash */
            iconst_1
            anewarray java.lang.Long
            aastore
         5: .line 900
      StackMap locals: int java.util.ArrayList
      StackMap stack:
            aload 5 /* valueArray */
            invokevirtual java.util.ArrayList.size:()I
            istore 6 /* size */
        start local 6 // int size
         6: .line 901
            new java.lang.ref.WeakReference
            dup
            aload 3 /* value */
            invokespecial java.lang.ref.WeakReference.<init>:(Ljava/lang/Object;)V
            astore 7 /* newWr */
        start local 7 // java.lang.ref.WeakReference newWr
         7: .line 905
            iconst_0
            istore 8 /* i */
        start local 8 // int i
         8: goto 19
         9: .line 906
      StackMap locals: int java.lang.ref.WeakReference int
      StackMap stack:
            aload 5 /* valueArray */
            iload 8 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast java.lang.ref.WeakReference
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            ifnonnull 18
        10: .line 907
            aload 5 /* valueArray */
            iload 8 /* i */
            aload 7 /* newWr */
            invokevirtual java.util.ArrayList.set:(ILjava/lang/Object;)Ljava/lang/Object;
            pop
        11: .line 908
            aload 0 /* this */
            getfield android.os.BinderProxy$ProxyMap.mMainIndexKeys:[[Ljava/lang/Long;
            iload 4 /* myHash */
            aaload
            astore 9 /* keyArray */
        start local 9 // java.lang.Long[] keyArray
        12: .line 909
            aload 9 /* keyArray */
            iload 8 /* i */
            lload 1 /* key */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
        13: .line 910
            iload 8 /* i */
            iload 6 /* size */
            iconst_1
            isub
            if_icmpge 17
        14: .line 913
            aload 0 /* this */
            dup
            getfield android.os.BinderProxy$ProxyMap.mRandom:I
            iconst_1
            iadd
            dup_x1
            putfield android.os.BinderProxy$ProxyMap.mRandom:I
            iload 6 /* size */
            iload 8 /* i */
            iconst_1
            iadd
            isub
            invokestatic java.lang.Math.floorMod:(II)I
            istore 10 /* rnd */
        start local 10 // int rnd
        15: .line 914
            aload 5 /* valueArray */
            iload 8 /* i */
            iconst_1
            iadd
            iload 10 /* rnd */
            iadd
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast java.lang.ref.WeakReference
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            ifnonnull 17
        16: .line 915
            aload 0 /* this */
            iload 4 /* myHash */
            iload 8 /* i */
            iconst_1
            iadd
            iload 10 /* rnd */
            iadd
            invokevirtual android.os.BinderProxy$ProxyMap.remove:(II)V
        end local 10 // int rnd
        17: .line 918
      StackMap locals: java.lang.Long[]
      StackMap stack:
            return
        end local 9 // java.lang.Long[] keyArray
        18: .line 905
      StackMap locals:
      StackMap stack:
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        19: iload 8 /* i */
            iload 6 /* size */
            if_icmplt 9
        end local 8 // int i
        20: .line 921
            aload 5 /* valueArray */
            iload 6 /* size */
            aload 7 /* newWr */
            invokevirtual java.util.ArrayList.add:(ILjava/lang/Object;)V
        21: .line 922
            aload 0 /* this */
            getfield android.os.BinderProxy$ProxyMap.mMainIndexKeys:[[Ljava/lang/Long;
            iload 4 /* myHash */
            aaload
            astore 8 /* keyArray */
        start local 8 // java.lang.Long[] keyArray
        22: .line 923
            aload 8 /* keyArray */
            arraylength
            iload 6 /* size */
            if_icmpne 28
        23: .line 925
            iload 6 /* size */
            iload 6 /* size */
            iconst_2
            idiv
            iadd
            iconst_2
            iadd
            anewarray java.lang.Long
            astore 9 /* newArray */
        start local 9 // java.lang.Long[] newArray
        24: .line 926
            aload 8 /* keyArray */
            iconst_0
            aload 9 /* newArray */
            iconst_0
            iload 6 /* size */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        25: .line 927
            aload 9 /* newArray */
            iload 6 /* size */
            lload 1 /* key */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
        26: .line 928
            aload 0 /* this */
            getfield android.os.BinderProxy$ProxyMap.mMainIndexKeys:[[Ljava/lang/Long;
            iload 4 /* myHash */
            aload 9 /* newArray */
            aastore
        end local 9 // java.lang.Long[] newArray
        27: .line 929
            goto 29
        28: .line 930
      StackMap locals: android.os.BinderProxy$ProxyMap long android.os.BinderProxy int java.util.ArrayList int java.lang.ref.WeakReference java.lang.Long[]
      StackMap stack:
            aload 8 /* keyArray */
            iload 6 /* size */
            lload 1 /* key */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
        29: .line 932
      StackMap locals:
      StackMap stack:
            iload 6 /* size */
            aload 0 /* this */
            getfield android.os.BinderProxy$ProxyMap.mWarnBucketSize:I
            if_icmplt 50
        30: .line 933
            aload 0 /* this */
            invokevirtual android.os.BinderProxy$ProxyMap.size:()I
            istore 9 /* totalSize */
        start local 9 // int totalSize
        31: .line 934
            ldc "Binder"
            new java.lang.StringBuilder
            dup
            ldc "BinderProxy map growth! bucket size = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 6 /* size */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        32: .line 935
            ldc " total = "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 9 /* totalSize */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        33: .line 934
            invokestatic android.util.Log.v:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        34: .line 936
            aload 0 /* this */
            dup
            getfield android.os.BinderProxy$ProxyMap.mWarnBucketSize:I
            bipush 10
            iadd
            putfield android.os.BinderProxy$ProxyMap.mWarnBucketSize:I
        35: .line 937
            getstatic android.os.Build.IS_DEBUGGABLE:Z
            ifeq 50
            iload 9 /* totalSize */
            sipush 20000
            if_icmplt 50
        36: .line 942
            aload 0 /* this */
            invokevirtual android.os.BinderProxy$ProxyMap.unclearedSize:()I
            istore 10 /* totalUnclearedSize */
        start local 10 // int totalUnclearedSize
        37: .line 943
            iload 10 /* totalUnclearedSize */
            sipush 20000
            if_icmplt 45
        38: .line 944
            aload 0 /* this */
            invokevirtual android.os.BinderProxy$ProxyMap.dumpProxyInterfaceCounts:()V
        39: .line 945
            aload 0 /* this */
            invokevirtual android.os.BinderProxy$ProxyMap.dumpPerUidProxyCounts:()V
        40: .line 946
            invokestatic java.lang.Runtime.getRuntime:()Ljava/lang/Runtime;
            invokevirtual java.lang.Runtime.gc:()V
        41: .line 947
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "Binder ProxyMap has too many entries: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        42: .line 948
            iload 9 /* totalSize */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " (total), "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 10 /* totalUnclearedSize */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " (uncleared), "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        43: .line 949
            aload 0 /* this */
            invokevirtual android.os.BinderProxy$ProxyMap.unclearedSize:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " (uncleared after GC). BinderProxy leak?"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        44: .line 947
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        45: .line 950
      StackMap locals: int int
      StackMap stack:
            iload 9 /* totalSize */
            iconst_3
            iload 10 /* totalUnclearedSize */
            imul
            iconst_2
            idiv
            if_icmple 50
        46: .line 951
            ldc "Binder"
            new java.lang.StringBuilder
            dup
            ldc "BinderProxy map has many cleared entries: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        47: .line 952
            iload 9 /* totalSize */
            iload 10 /* totalUnclearedSize */
            isub
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " of "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 9 /* totalSize */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        48: .line 953
            ldc " are cleared"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        49: .line 951
            invokestatic android.util.Log.v:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        end local 10 // int totalUnclearedSize
        end local 9 // int totalSize
        50: .line 957
      StackMap locals:
      StackMap stack:
            return
        end local 8 // java.lang.Long[] keyArray
        end local 7 // java.lang.ref.WeakReference newWr
        end local 6 // int size
        end local 5 // java.util.ArrayList valueArray
        end local 4 // int myHash
        end local 3 // android.os.BinderProxy value
        end local 1 // long key
        end local 0 // android.os.BinderProxy$ProxyMap this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   51     0                this  Landroid/os/BinderProxy$ProxyMap;
            0   51     1                 key  J
            0   51     3               value  Landroid/os/BinderProxy;
            1   51     4              myHash  I
            2   51     5          valueArray  Ljava/util/ArrayList<Ljava/lang/ref/WeakReference<Landroid/os/BinderProxy;>;>;
            6   51     6                size  I
            7   51     7               newWr  Ljava/lang/ref/WeakReference<Landroid/os/BinderProxy;>;
            8   20     8                   i  I
           12   18     9            keyArray  [Ljava/lang/Long;
           15   17    10                 rnd  I
           22   51     8            keyArray  [Ljava/lang/Long;
           24   27     9            newArray  [Ljava/lang/Long;
           31   50     9           totalSize  I
           37   50    10  totalUnclearedSize  I
    MethodParameters:
       Name  Flags
      key    
      value  

  private void dumpProxyInterfaceCounts();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=11, args_size=1
        start local 0 // android.os.BinderProxy$ProxyMap this
         0: .line 963
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 1 /* counts */
        start local 1 // java.util.Map counts
         1: .line 964
            aload 0 /* this */
            getfield android.os.BinderProxy$ProxyMap.mMainIndexValues:[Ljava/util/ArrayList;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 21
      StackMap locals: android.os.BinderProxy$ProxyMap java.util.Map top int int java.util.ArrayList[]
      StackMap stack:
         2: aload 5
            iload 3
            aaload
            astore 2 /* a */
        start local 2 // java.util.ArrayList a
         3: .line 965
            aload 2 /* a */
            ifnull 20
         4: .line 966
            aload 2 /* a */
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 7
            goto 19
      StackMap locals: android.os.BinderProxy$ProxyMap java.util.Map java.util.ArrayList int int java.util.ArrayList[] top java.util.Iterator
      StackMap stack:
         5: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.ref.WeakReference
            astore 6 /* weakRef */
        start local 6 // java.lang.ref.WeakReference weakRef
         6: .line 967
            aload 6 /* weakRef */
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast android.os.BinderProxy
            astore 8 /* bp */
        start local 8 // android.os.BinderProxy bp
         7: .line 969
            aload 8 /* bp */
            ifnonnull 10
         8: .line 970
            ldc "<cleared weak-ref>"
            astore 9 /* key */
        start local 9 // java.lang.String key
         9: .line 971
            goto 14
        end local 9 // java.lang.String key
        10: .line 973
      StackMap locals: android.os.BinderProxy$ProxyMap java.util.Map java.util.ArrayList int int java.util.ArrayList[] java.lang.ref.WeakReference java.util.Iterator android.os.BinderProxy
      StackMap stack:
            aload 8 /* bp */
            invokevirtual android.os.BinderProxy.getInterfaceDescriptor:()Ljava/lang/String;
            astore 9 /* key */
        start local 9 // java.lang.String key
        11: .line 974
            goto 14
        end local 9 // java.lang.String key
      StackMap locals:
      StackMap stack: java.lang.Throwable
        12: pop
        13: .line 975
            ldc "<exception during getDescriptor>"
            astore 9 /* key */
        start local 9 // java.lang.String key
        14: .line 978
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* counts */
            aload 9 /* key */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Integer
            astore 10 /* i */
        start local 10 // java.lang.Integer i
        15: .line 979
            aload 10 /* i */
            ifnonnull 18
        16: .line 980
            aload 1 /* counts */
            aload 9 /* key */
            iconst_1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        17: .line 981
            goto 19
        18: .line 982
      StackMap locals: java.lang.Integer
      StackMap stack:
            aload 1 /* counts */
            aload 9 /* key */
            aload 10 /* i */
            invokevirtual java.lang.Integer.intValue:()I
            iconst_1
            iadd
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 10 // java.lang.Integer i
        end local 9 // java.lang.String key
        end local 8 // android.os.BinderProxy bp
        end local 6 // java.lang.ref.WeakReference weakRef
        19: .line 966
      StackMap locals: android.os.BinderProxy$ProxyMap java.util.Map java.util.ArrayList int int java.util.ArrayList[] top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        end local 2 // java.util.ArrayList a
        20: .line 964
      StackMap locals: android.os.BinderProxy$ProxyMap java.util.Map top int int java.util.ArrayList[]
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
        21: iload 3
            iload 4
            if_icmplt 2
        22: .line 987
            aload 1 /* counts */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
        23: .line 988
            aload 1 /* counts */
            invokeinterface java.util.Map.size:()I
            anewarray java.util.Map$Entry
        24: .line 987
            invokeinterface java.util.Set.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.util.Map$Entry[]
            astore 2 /* sorted */
        start local 2 // java.util.Map$Entry[] sorted
        25: .line 989
            aload 2 /* sorted */
            invokedynamic compare()Ljava/util/Comparator;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;Ljava/lang/Object;)I
                  android/os/BinderProxy$ProxyMap.lambda$0(Ljava/util/Map$Entry;Ljava/util/Map$Entry;)I (6)
                  (Ljava/util/Map$Entry;Ljava/util/Map$Entry;)I
            invokestatic java.util.Arrays.sort:([Ljava/lang/Object;Ljava/util/Comparator;)V
        26: .line 991
            ldc "Binder"
            ldc "BinderProxy descriptor histogram (top ten):"
            invokestatic android.util.Log.v:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        27: .line 992
            bipush 10
            aload 2 /* sorted */
            arraylength
            invokestatic java.lang.Math.min:(II)I
            istore 3 /* printLength */
        start local 3 // int printLength
        28: .line 993
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        29: goto 34
        30: .line 994
      StackMap locals: android.os.BinderProxy$ProxyMap java.util.Map java.util.Map$Entry[] int int
      StackMap stack:
            ldc "Binder"
            new java.lang.StringBuilder
            dup
            ldc " #"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 4 /* i */
            iconst_1
            iadd
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ": "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* sorted */
            iload 4 /* i */
            aaload
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " x"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        31: .line 995
            aload 2 /* sorted */
            iload 4 /* i */
            aaload
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        32: .line 994
            invokestatic android.util.Log.v:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        33: .line 993
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        34: iload 4 /* i */
            iload 3 /* printLength */
            if_icmplt 30
        end local 4 // int i
        35: .line 997
            return
        end local 3 // int printLength
        end local 2 // java.util.Map$Entry[] sorted
        end local 1 // java.util.Map counts
        end local 0 // android.os.BinderProxy$ProxyMap this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   36     0         this  Landroid/os/BinderProxy$ProxyMap;
            1   36     1       counts  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;
            3   20     2            a  Ljava/util/ArrayList<Ljava/lang/ref/WeakReference<Landroid/os/BinderProxy;>;>;
            6   19     6      weakRef  Ljava/lang/ref/WeakReference<Landroid/os/BinderProxy;>;
            7   19     8           bp  Landroid/os/BinderProxy;
            9   10     9          key  Ljava/lang/String;
           11   12     9          key  Ljava/lang/String;
           14   19     9          key  Ljava/lang/String;
           15   19    10            i  Ljava/lang/Integer;
           25   36     2       sorted  [Ljava/util/Map$Entry;
           28   36     3  printLength  I
           29   35     4            i  I
      Exception table:
        from    to  target  type
          10    11      12  Class java.lang.Throwable

  private void dumpPerUidProxyCounts();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // android.os.BinderProxy$ProxyMap this
         0: .line 1003
            invokestatic com.android.internal.os.BinderInternal.nGetBinderProxyPerUidCounts:()Landroid/util/SparseIntArray;
            astore 1 /* counts */
        start local 1 // android.util.SparseIntArray counts
         1: .line 1004
            aload 1 /* counts */
            invokevirtual android.util.SparseIntArray.size:()I
            ifne 2
            return
         2: .line 1005
      StackMap locals: android.util.SparseIntArray
      StackMap stack:
            ldc "Binder"
            ldc "Per Uid Binder Proxy Counts:"
            invokestatic android.util.Log.d:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         3: .line 1006
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         4: goto 9
         5: .line 1007
      StackMap locals: int
      StackMap stack:
            aload 1 /* counts */
            iload 2 /* i */
            invokevirtual android.util.SparseIntArray.keyAt:(I)I
            istore 3 /* uid */
        start local 3 // int uid
         6: .line 1008
            aload 1 /* counts */
            iload 2 /* i */
            invokevirtual android.util.SparseIntArray.valueAt:(I)I
            istore 4 /* binderCount */
        start local 4 // int binderCount
         7: .line 1009
            ldc "Binder"
            new java.lang.StringBuilder
            dup
            ldc "UID : "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 3 /* uid */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "  count = "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 4 /* binderCount */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.d:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        end local 4 // int binderCount
        end local 3 // int uid
         8: .line 1006
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 2 /* i */
            aload 1 /* counts */
            invokevirtual android.util.SparseIntArray.size:()I
            if_icmplt 5
        end local 2 // int i
        10: .line 1011
            return
        end local 1 // android.util.SparseIntArray counts
        end local 0 // android.os.BinderProxy$ProxyMap this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   11     0         this  Landroid/os/BinderProxy$ProxyMap;
            1   11     1       counts  Landroid/util/SparseIntArray;
            4   10     2            i  I
            6    8     3          uid  I
            7    8     4  binderCount  I

  private static int lambda$0(java.util.Map$Entry, java.util.Map$Entry);
    descriptor: (Ljava/util/Map$Entry;Ljava/util/Map$Entry;)I
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.util.Map$Entry a
        start local 1 // java.util.Map$Entry b
         0: .line 990
            aload 1 /* b */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.lang.Integer
            aload 0 /* a */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.compareTo:(Ljava/lang/Integer;)I
            ireturn
        end local 1 // java.util.Map$Entry b
        end local 0 // java.util.Map$Entry a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     a  Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/Integer;>;
            0    1     1     b  Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/Integer;>;
}
SourceFile: "Binder.java"
NestHost: android.os.BinderProxy
InnerClasses:
  private final ProxyMap = android.os.BinderProxy$ProxyMap of android.os.BinderProxy
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public abstract Entry = java.util.Map$Entry of java.util.Map