public class com.android.keyguard.KeyguardSecurityModel
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.android.keyguard.KeyguardSecurityModel
  super_class: java.lang.Object
{
  private final android.content.Context mContext;
    descriptor: Landroid/content/Context;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean mIsPukScreenAvailable;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private com.android.internal.widget.LockPatternUtils mLockPatternUtils;
    descriptor: Lcom/android/internal/widget/LockPatternUtils;
    flags: (0x0002) ACC_PRIVATE

  void <init>(android.content.Context);
    descriptor: (Landroid/content/Context;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.android.keyguard.KeyguardSecurityModel this
         0: .line 50
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tcom.android.internal.R.bool cannot be resolved to a variable\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // com.android.keyguard.KeyguardSecurityModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/android/keyguard/KeyguardSecurityModel;
    MethodParameters:
         Name  Flags
      context  

  void setLockPatternUtils(com.android.internal.widget.LockPatternUtils);
    descriptor: (Lcom/android/internal/widget/LockPatternUtils;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.android.keyguard.KeyguardSecurityModel this
        start local 1 // com.android.internal.widget.LockPatternUtils utils
         0: .line 54
            aload 0 /* this */
            aload 1 /* utils */
            putfield com.android.keyguard.KeyguardSecurityModel.mLockPatternUtils:Lcom/android/internal/widget/LockPatternUtils;
         1: .line 55
            return
        end local 1 // com.android.internal.widget.LockPatternUtils utils
        end local 0 // com.android.keyguard.KeyguardSecurityModel this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lcom/android/keyguard/KeyguardSecurityModel;
            0    2     1  utils  Lcom/android/internal/widget/LockPatternUtils;
    MethodParameters:
       Name  Flags
      utils  

  com.android.keyguard.KeyguardSecurityModel$SecurityMode getSecurityMode(int);
    descriptor: (I)Lcom/android/keyguard/KeyguardSecurityModel$SecurityMode;
    flags: (0x0000) 
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // com.android.keyguard.KeyguardSecurityModel this
        start local 1 // int userId
         0: .line 58
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardSecurityModel.mContext:Landroid/content/Context;
            invokestatic com.android.keyguard.KeyguardUpdateMonitor.getInstance:(Landroid/content/Context;)Lcom/android/keyguard/KeyguardUpdateMonitor;
            astore 2 /* monitor */
        start local 2 // com.android.keyguard.KeyguardUpdateMonitor monitor
         1: .line 60
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardSecurityModel.mIsPukScreenAvailable:Z
            ifeq 6
         2: .line 61
            aload 2 /* monitor */
            getstatic com.android.internal.telephony.IccCardConstants$State.PUK_REQUIRED:Lcom/android/internal/telephony/IccCardConstants$State;
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.getNextSubIdForState:(Lcom/android/internal/telephony/IccCardConstants$State;)I
         3: .line 60
            invokestatic android.telephony.SubscriptionManager.isValidSubscriptionId:(I)Z
         4: .line 61
            ifeq 6
         5: .line 62
            getstatic com.android.keyguard.KeyguardSecurityModel$SecurityMode.SimPuk:Lcom/android/keyguard/KeyguardSecurityModel$SecurityMode;
            areturn
         6: .line 66
      StackMap locals: com.android.keyguard.KeyguardUpdateMonitor
      StackMap stack:
            aload 2 /* monitor */
            getstatic com.android.internal.telephony.IccCardConstants$State.PIN_REQUIRED:Lcom/android/internal/telephony/IccCardConstants$State;
            invokevirtual com.android.keyguard.KeyguardUpdateMonitor.getNextSubIdForState:(Lcom/android/internal/telephony/IccCardConstants$State;)I
         7: .line 65
            invokestatic android.telephony.SubscriptionManager.isValidSubscriptionId:(I)Z
         8: .line 66
            ifeq 10
         9: .line 67
            getstatic com.android.keyguard.KeyguardSecurityModel$SecurityMode.SimPin:Lcom/android/keyguard/KeyguardSecurityModel$SecurityMode;
            areturn
        10: .line 70
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.android.keyguard.KeyguardSecurityModel.mLockPatternUtils:Lcom/android/internal/widget/LockPatternUtils;
            iload 1 /* userId */
            invokevirtual com.android.internal.widget.LockPatternUtils.getActivePasswordQuality:(I)I
            istore 3 /* security */
        start local 3 // int security
        11: .line 71
            iload 3 /* security */
            lookupswitch { // 8
                    0: 15
                65536: 14
               131072: 12
               196608: 12
               262144: 13
               327680: 13
               393216: 13
               524288: 13
              default: 16
          }
        12: .line 74
      StackMap locals: int
      StackMap stack:
            getstatic com.android.keyguard.KeyguardSecurityModel$SecurityMode.PIN:Lcom/android/keyguard/KeyguardSecurityModel$SecurityMode;
            areturn
        13: .line 80
      StackMap locals:
      StackMap stack:
            getstatic com.android.keyguard.KeyguardSecurityModel$SecurityMode.Password:Lcom/android/keyguard/KeyguardSecurityModel$SecurityMode;
            areturn
        14: .line 83
      StackMap locals:
      StackMap stack:
            getstatic com.android.keyguard.KeyguardSecurityModel$SecurityMode.Pattern:Lcom/android/keyguard/KeyguardSecurityModel$SecurityMode;
            areturn
        15: .line 85
      StackMap locals:
      StackMap stack:
            getstatic com.android.keyguard.KeyguardSecurityModel$SecurityMode.None:Lcom/android/keyguard/KeyguardSecurityModel$SecurityMode;
            areturn
        16: .line 88
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unknown security quality:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 3 /* security */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // int security
        end local 2 // com.android.keyguard.KeyguardUpdateMonitor monitor
        end local 1 // int userId
        end local 0 // com.android.keyguard.KeyguardSecurityModel this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   17     0      this  Lcom/android/keyguard/KeyguardSecurityModel;
            0   17     1    userId  I
            1   17     2   monitor  Lcom/android/keyguard/KeyguardUpdateMonitor;
           11   17     3  security  I
    MethodParameters:
        Name  Flags
      userId  
}
SourceFile: "KeyguardSecurityModel.java"
NestMembers:
  com.android.keyguard.KeyguardSecurityModel$SecurityMode
InnerClasses:
  public final State = com.android.internal.telephony.IccCardConstants$State of com.android.internal.telephony.IccCardConstants
  public final SecurityMode = com.android.keyguard.KeyguardSecurityModel$SecurityMode of com.android.keyguard.KeyguardSecurityModel