public class com.android.internal.widget.LockPatternUtils
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.android.internal.widget.LockPatternUtils
  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: "LockPatternUtils"

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

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

  public static final java.lang.String LEGACY_LOCK_PATTERN_ENABLED;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "legacy_lock_pattern_enabled"

  public static final int FAILED_ATTEMPTS_BEFORE_RESET;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 20

  public static final long FAILED_ATTEMPT_COUNTDOWN_INTERVAL_MS;
    descriptor: J
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1000

  public static final int FAILED_ATTEMPTS_BEFORE_WIPE_GRACE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 5

  public static final int MIN_LOCK_PATTERN_SIZE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  public static final int MIN_LOCK_PASSWORD_SIZE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  public static final int MIN_PATTERN_REGISTER_FAIL;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  public static final int CREDENTIAL_TYPE_NONE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -1

  public static final int CREDENTIAL_TYPE_PATTERN;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final int CREDENTIAL_TYPE_PASSWORD;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  public static final int USER_FRP;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -9999

  public static final java.lang.String LOCKOUT_PERMANENT_KEY;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "lockscreen.lockedoutpermanently"
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public static final java.lang.String PATTERN_EVER_CHOSEN_KEY;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "lockscreen.patterneverchosen"

  public static final java.lang.String PASSWORD_TYPE_KEY;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "lockscreen.password_type"

  public static final java.lang.String PASSWORD_TYPE_ALTERNATE_KEY;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "lockscreen.password_type_alternate"
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public static final java.lang.String LOCK_PASSWORD_SALT_KEY;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "lockscreen.password_salt"

  public static final java.lang.String DISABLE_LOCKSCREEN_KEY;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "lockscreen.disabled"

  public static final java.lang.String LOCKSCREEN_OPTIONS;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "lockscreen.options"

  public static final java.lang.String LOCKSCREEN_BIOMETRIC_WEAK_FALLBACK;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "lockscreen.biometric_weak_fallback"
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public static final java.lang.String BIOMETRIC_WEAK_EVER_CHOSEN_KEY;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "lockscreen.biometricweakeverchosen"
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public static final java.lang.String LOCKSCREEN_POWER_BUTTON_INSTANTLY_LOCKS;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "lockscreen.power_button_instantly_locks"

  public static final java.lang.String LOCKSCREEN_WIDGETS_ENABLED;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "lockscreen.widgets_enabled"
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public static final java.lang.String PASSWORD_HISTORY_KEY;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "lockscreen.passwordhistory"

  private static final java.lang.String LOCK_SCREEN_OWNER_INFO;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "lock_screen_owner_info"

  private static final java.lang.String LOCK_SCREEN_OWNER_INFO_ENABLED;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "lock_screen_owner_info_enabled"

  private static final java.lang.String LOCK_SCREEN_DEVICE_OWNER_INFO;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "lockscreen.device_owner_info"

  private static final java.lang.String ENABLED_TRUST_AGENTS;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "lockscreen.enabledtrustagents"

  private static final java.lang.String IS_TRUST_USUALLY_MANAGED;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "lockscreen.istrustusuallymanaged"

  public static final java.lang.String PROFILE_KEY_NAME_ENCRYPT;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "profile_key_name_encrypt_"

  public static final java.lang.String PROFILE_KEY_NAME_DECRYPT;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "profile_key_name_decrypt_"

  public static final java.lang.String SYNTHETIC_PASSWORD_KEY_PREFIX;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "synthetic_password_"

  public static final java.lang.String SYNTHETIC_PASSWORD_HANDLE_KEY;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "sp-handle"

  public static final java.lang.String SYNTHETIC_PASSWORD_ENABLED_KEY;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "enable-sp"

  private static final java.lang.String HISTORY_DELIMITER;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: ","

  private final android.content.Context mContext;
    descriptor: Landroid/content/Context;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final android.content.ContentResolver mContentResolver;
    descriptor: Landroid/content/ContentResolver;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private android.app.admin.DevicePolicyManager mDevicePolicyManager;
    descriptor: Landroid/app/admin/DevicePolicyManager;
    flags: (0x0002) ACC_PRIVATE

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

  private android.os.UserManager mUserManager;
    descriptor: Landroid/os/UserManager;
    flags: (0x0002) ACC_PRIVATE

  private final android.os.Handler mHandler;
    descriptor: Landroid/os/Handler;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final android.util.SparseLongArray mLockoutDeadlines;
    descriptor: Landroid/util/SparseLongArray;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public boolean isTrustUsuallyManaged(int);
    descriptor: (I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // int userId
         0: .line 186
            aload 0 /* this */
            getfield com.android.internal.widget.LockPatternUtils.mLockSettingsService:Lcom/android/internal/widget/ILockSettings;
            instanceof com.android.internal.widget.ILockSettings$Stub
            ifne 2
         1: .line 187
            new java.lang.IllegalStateException
            dup
            ldc "May only be called by TrustManagerService. Use TrustManager.isTrustUsuallyManaged()"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 191
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.android.internal.widget.LockPatternUtils.getLockSettings:()Lcom/android/internal/widget/ILockSettings;
            ldc "lockscreen.istrustusuallymanaged"
            iconst_0
            iload 1 /* userId */
            invokeinterface com.android.internal.widget.ILockSettings.getBoolean:(Ljava/lang/String;ZI)Z
         3: ireturn
         4: .line 192
      StackMap locals:
      StackMap stack: android.os.RemoteException
            pop
         5: .line 193
            iconst_0
            ireturn
        end local 1 // int userId
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lcom/android/internal/widget/LockPatternUtils;
            0    6     1  userId  I
      Exception table:
        from    to  target  type
           2     3       4  Class android.os.RemoteException
    MethodParameters:
        Name  Flags
      userId  

  public void setTrustUsuallyManaged(boolean, int);
    descriptor: (ZI)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // boolean managed
        start local 2 // int userId
         0: .line 199
            aload 0 /* this */
            invokevirtual com.android.internal.widget.LockPatternUtils.getLockSettings:()Lcom/android/internal/widget/ILockSettings;
            ldc "lockscreen.istrustusuallymanaged"
            iload 1 /* managed */
            iload 2 /* userId */
            invokeinterface com.android.internal.widget.ILockSettings.setBoolean:(Ljava/lang/String;ZI)V
         1: .line 200
            goto 3
      StackMap locals:
      StackMap stack: android.os.RemoteException
         2: pop
         3: .line 203
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int userId
        end local 1 // boolean managed
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lcom/android/internal/widget/LockPatternUtils;
            0    4     1  managed  Z
            0    4     2   userId  I
      Exception table:
        from    to  target  type
           0     1       2  Class android.os.RemoteException
    MethodParameters:
         Name  Flags
      managed  
      userId   

  public void userPresent(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // int userId
         0: .line 207
            aload 0 /* this */
            invokevirtual com.android.internal.widget.LockPatternUtils.getLockSettings:()Lcom/android/internal/widget/ILockSettings;
            iload 1 /* userId */
            invokeinterface com.android.internal.widget.ILockSettings.userPresent:(I)V
         1: .line 208
            goto 4
      StackMap locals:
      StackMap stack: android.os.RemoteException
         2: astore 2 /* e */
        start local 2 // android.os.RemoteException e
         3: .line 209
            aload 2 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 2 // android.os.RemoteException e
         4: .line 211
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int userId
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lcom/android/internal/widget/LockPatternUtils;
            0    5     1  userId  I
            3    4     2       e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           0     1       2  Class android.os.RemoteException
    MethodParameters:
        Name  Flags
      userId  

  public android.app.admin.DevicePolicyManager getDevicePolicyManager();
    descriptor: ()Landroid/app/admin/DevicePolicyManager;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // com.android.internal.widget.LockPatternUtils this
         0: .line 230
            aload 0 /* this */
            getfield com.android.internal.widget.LockPatternUtils.mDevicePolicyManager:Landroid/app/admin/DevicePolicyManager;
            ifnonnull 8
         1: .line 231
            aload 0 /* this */
         2: .line 232
            aload 0 /* this */
            getfield com.android.internal.widget.LockPatternUtils.mContext:Landroid/content/Context;
            ldc "device_policy"
            invokevirtual android.content.Context.getSystemService:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast android.app.admin.DevicePolicyManager
         3: .line 231
            putfield com.android.internal.widget.LockPatternUtils.mDevicePolicyManager:Landroid/app/admin/DevicePolicyManager;
         4: .line 233
            aload 0 /* this */
            getfield com.android.internal.widget.LockPatternUtils.mDevicePolicyManager:Landroid/app/admin/DevicePolicyManager;
            ifnonnull 8
         5: .line 234
            ldc "LockPatternUtils"
            ldc "Can't get DevicePolicyManagerService: is it running?"
         6: .line 235
            new java.lang.IllegalStateException
            dup
            ldc "Stack trace:"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
         7: .line 234
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
         8: .line 238
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.android.internal.widget.LockPatternUtils.mDevicePolicyManager:Landroid/app/admin/DevicePolicyManager;
            areturn
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lcom/android/internal/widget/LockPatternUtils;

  private android.os.UserManager getUserManager();
    descriptor: ()Landroid/os/UserManager;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.android.internal.widget.LockPatternUtils this
         0: .line 242
            aload 0 /* this */
            getfield com.android.internal.widget.LockPatternUtils.mUserManager:Landroid/os/UserManager;
            ifnonnull 2
         1: .line 243
            aload 0 /* this */
            aload 0 /* this */
            getfield com.android.internal.widget.LockPatternUtils.mContext:Landroid/content/Context;
            invokestatic android.os.UserManager.get:(Landroid/content/Context;)Landroid/os/UserManager;
            putfield com.android.internal.widget.LockPatternUtils.mUserManager:Landroid/os/UserManager;
         2: .line 245
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.android.internal.widget.LockPatternUtils.mUserManager:Landroid/os/UserManager;
            areturn
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/android/internal/widget/LockPatternUtils;

  private android.app.trust.TrustManager getTrustManager();
    descriptor: ()Landroid/app/trust/TrustManager;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // com.android.internal.widget.LockPatternUtils this
         0: .line 249
            aload 0 /* this */
            getfield com.android.internal.widget.LockPatternUtils.mContext:Landroid/content/Context;
            ldc "trust"
            invokevirtual android.content.Context.getSystemService:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast android.app.trust.TrustManager
            astore 1 /* trust */
        start local 1 // android.app.trust.TrustManager trust
         1: .line 250
            aload 1 /* trust */
            ifnonnull 5
         2: .line 251
            ldc "LockPatternUtils"
            ldc "Can't get TrustManagerService: is it running?"
         3: .line 252
            new java.lang.IllegalStateException
            dup
            ldc "Stack trace:"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
         4: .line 251
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
         5: .line 254
      StackMap locals: android.app.trust.TrustManager
      StackMap stack:
            aload 1 /* trust */
            areturn
        end local 1 // android.app.trust.TrustManager trust
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Lcom/android/internal/widget/LockPatternUtils;
            1    6     1  trust  Landroid/app/trust/TrustManager;

  public void <init>(android.content.Context);
    descriptor: (Landroid/content/Context;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // android.content.Context context
         0: .line 257
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 178
            aload 0 /* this */
            new android.util.SparseLongArray
            dup
            invokespecial android.util.SparseLongArray.<init>:()V
            putfield com.android.internal.widget.LockPatternUtils.mLockoutDeadlines:Landroid/util/SparseLongArray;
         2: .line 258
            aload 0 /* this */
            aload 1 /* context */
            putfield com.android.internal.widget.LockPatternUtils.mContext:Landroid/content/Context;
         3: .line 259
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual android.content.Context.getContentResolver:()Landroid/content/ContentResolver;
            putfield com.android.internal.widget.LockPatternUtils.mContentResolver:Landroid/content/ContentResolver;
         4: .line 261
            invokestatic android.os.Looper.myLooper:()Landroid/os/Looper;
            astore 2 /* looper */
        start local 2 // android.os.Looper looper
         5: .line 262
            aload 0 /* this */
            aload 2 /* looper */
            ifnull 6
            new android.os.Handler
            dup
            aload 2 /* looper */
            invokespecial android.os.Handler.<init>:(Landroid/os/Looper;)V
            goto 7
      StackMap locals: com.android.internal.widget.LockPatternUtils android.content.Context android.os.Looper
      StackMap stack: com.android.internal.widget.LockPatternUtils
         6: aconst_null
      StackMap locals: com.android.internal.widget.LockPatternUtils android.content.Context android.os.Looper
      StackMap stack: com.android.internal.widget.LockPatternUtils android.os.Handler
         7: putfield com.android.internal.widget.LockPatternUtils.mHandler:Landroid/os/Handler;
         8: .line 263
            return
        end local 2 // android.os.Looper looper
        end local 1 // android.content.Context context
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0     this  Lcom/android/internal/widget/LockPatternUtils;
            0    9     1  context  Landroid/content/Context;
            5    9     2   looper  Landroid/os/Looper;
    MethodParameters:
         Name  Flags
      context  

  public com.android.internal.widget.ILockSettings getLockSettings();
    descriptor: ()Lcom/android/internal/widget/ILockSettings;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.android.internal.widget.LockPatternUtils this
         0: .line 267
            aload 0 /* this */
            getfield com.android.internal.widget.LockPatternUtils.mLockSettingsService:Lcom/android/internal/widget/ILockSettings;
            ifnonnull 4
         1: .line 269
            ldc "lock_settings"
            invokestatic android.os.ServiceManager.getService:(Ljava/lang/String;)Landroid/os/IBinder;
         2: .line 268
            invokestatic com.android.internal.widget.ILockSettings$Stub.asInterface:(Landroid/os/IBinder;)Lcom/android/internal/widget/ILockSettings;
            astore 1 /* service */
        start local 1 // com.android.internal.widget.ILockSettings service
         3: .line 270
            aload 0 /* this */
            aload 1 /* service */
            putfield com.android.internal.widget.LockPatternUtils.mLockSettingsService:Lcom/android/internal/widget/ILockSettings;
        end local 1 // com.android.internal.widget.ILockSettings service
         4: .line 272
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.android.internal.widget.LockPatternUtils.mLockSettingsService:Lcom/android/internal/widget/ILockSettings;
            areturn
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lcom/android/internal/widget/LockPatternUtils;
            3    4     1  service  Lcom/android/internal/widget/ILockSettings;
    RuntimeInvisibleAnnotations: 
      com.android.internal.annotations.VisibleForTesting()
    RuntimeInvisibleTypeAnnotations: 
      METHOD_RETURN
        com.android.internal.annotations.VisibleForTesting()

  public int getRequestedMinimumPasswordLength(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // int userId
         0: .line 276
            aload 0 /* this */
            invokevirtual com.android.internal.widget.LockPatternUtils.getDevicePolicyManager:()Landroid/app/admin/DevicePolicyManager;
            aconst_null
            iload 1 /* userId */
            invokevirtual android.app.admin.DevicePolicyManager.getPasswordMinimumLength:(Landroid/content/ComponentName;I)I
            ireturn
        end local 1 // int userId
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/android/internal/widget/LockPatternUtils;
            0    1     1  userId  I
    MethodParameters:
        Name  Flags
      userId  

  public int getRequestedPasswordQuality(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // int userId
         0: .line 284
            aload 0 /* this */
            invokevirtual com.android.internal.widget.LockPatternUtils.getDevicePolicyManager:()Landroid/app/admin/DevicePolicyManager;
            aconst_null
            iload 1 /* userId */
            invokevirtual android.app.admin.DevicePolicyManager.getPasswordQuality:(Landroid/content/ComponentName;I)I
            ireturn
        end local 1 // int userId
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/android/internal/widget/LockPatternUtils;
            0    1     1  userId  I
    MethodParameters:
        Name  Flags
      userId  

  private int getRequestedPasswordHistoryLength(int);
    descriptor: (I)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // int userId
         0: .line 288
            aload 0 /* this */
            invokevirtual com.android.internal.widget.LockPatternUtils.getDevicePolicyManager:()Landroid/app/admin/DevicePolicyManager;
            aconst_null
            iload 1 /* userId */
            invokevirtual android.app.admin.DevicePolicyManager.getPasswordHistoryLength:(Landroid/content/ComponentName;I)I
            ireturn
        end local 1 // int userId
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/android/internal/widget/LockPatternUtils;
            0    1     1  userId  I
    MethodParameters:
        Name  Flags
      userId  

  public int getRequestedPasswordMinimumLetters(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // int userId
         0: .line 292
            aload 0 /* this */
            invokevirtual com.android.internal.widget.LockPatternUtils.getDevicePolicyManager:()Landroid/app/admin/DevicePolicyManager;
            aconst_null
            iload 1 /* userId */
            invokevirtual android.app.admin.DevicePolicyManager.getPasswordMinimumLetters:(Landroid/content/ComponentName;I)I
            ireturn
        end local 1 // int userId
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/android/internal/widget/LockPatternUtils;
            0    1     1  userId  I
    MethodParameters:
        Name  Flags
      userId  

  public int getRequestedPasswordMinimumUpperCase(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // int userId
         0: .line 296
            aload 0 /* this */
            invokevirtual com.android.internal.widget.LockPatternUtils.getDevicePolicyManager:()Landroid/app/admin/DevicePolicyManager;
            aconst_null
            iload 1 /* userId */
            invokevirtual android.app.admin.DevicePolicyManager.getPasswordMinimumUpperCase:(Landroid/content/ComponentName;I)I
            ireturn
        end local 1 // int userId
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/android/internal/widget/LockPatternUtils;
            0    1     1  userId  I
    MethodParameters:
        Name  Flags
      userId  

  public int getRequestedPasswordMinimumLowerCase(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // int userId
         0: .line 300
            aload 0 /* this */
            invokevirtual com.android.internal.widget.LockPatternUtils.getDevicePolicyManager:()Landroid/app/admin/DevicePolicyManager;
            aconst_null
            iload 1 /* userId */
            invokevirtual android.app.admin.DevicePolicyManager.getPasswordMinimumLowerCase:(Landroid/content/ComponentName;I)I
            ireturn
        end local 1 // int userId
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/android/internal/widget/LockPatternUtils;
            0    1     1  userId  I
    MethodParameters:
        Name  Flags
      userId  

  public int getRequestedPasswordMinimumNumeric(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // int userId
         0: .line 304
            aload 0 /* this */
            invokevirtual com.android.internal.widget.LockPatternUtils.getDevicePolicyManager:()Landroid/app/admin/DevicePolicyManager;
            aconst_null
            iload 1 /* userId */
            invokevirtual android.app.admin.DevicePolicyManager.getPasswordMinimumNumeric:(Landroid/content/ComponentName;I)I
            ireturn
        end local 1 // int userId
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/android/internal/widget/LockPatternUtils;
            0    1     1  userId  I
    MethodParameters:
        Name  Flags
      userId  

  public int getRequestedPasswordMinimumSymbols(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // int userId
         0: .line 308
            aload 0 /* this */
            invokevirtual com.android.internal.widget.LockPatternUtils.getDevicePolicyManager:()Landroid/app/admin/DevicePolicyManager;
            aconst_null
            iload 1 /* userId */
            invokevirtual android.app.admin.DevicePolicyManager.getPasswordMinimumSymbols:(Landroid/content/ComponentName;I)I
            ireturn
        end local 1 // int userId
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/android/internal/widget/LockPatternUtils;
            0    1     1  userId  I
    MethodParameters:
        Name  Flags
      userId  

  public int getRequestedPasswordMinimumNonLetter(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // int userId
         0: .line 312
            aload 0 /* this */
            invokevirtual com.android.internal.widget.LockPatternUtils.getDevicePolicyManager:()Landroid/app/admin/DevicePolicyManager;
            aconst_null
            iload 1 /* userId */
            invokevirtual android.app.admin.DevicePolicyManager.getPasswordMinimumNonLetter:(Landroid/content/ComponentName;I)I
            ireturn
        end local 1 // int userId
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/android/internal/widget/LockPatternUtils;
            0    1     1  userId  I
    MethodParameters:
        Name  Flags
      userId  

  public void reportFailedPasswordAttempt(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // int userId
         0: .line 316
            iload 1 /* userId */
            sipush -9999
            if_icmpne 2
            aload 0 /* this */
            getfield com.android.internal.widget.LockPatternUtils.mContext:Landroid/content/Context;
            invokestatic com.android.internal.widget.LockPatternUtils.frpCredentialEnabled:(Landroid/content/Context;)Z
            ifeq 2
         1: .line 317
            return
         2: .line 319
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.android.internal.widget.LockPatternUtils.getDevicePolicyManager:()Landroid/app/admin/DevicePolicyManager;
            iload 1 /* userId */
            invokevirtual android.app.admin.DevicePolicyManager.reportFailedPasswordAttempt:(I)V
         3: .line 320
            aload 0 /* this */
            invokevirtual com.android.internal.widget.LockPatternUtils.getTrustManager:()Landroid/app/trust/TrustManager;
            iconst_0
            iload 1 /* userId */
            invokevirtual android.app.trust.TrustManager.reportUnlockAttempt:(ZI)V
         4: .line 321
            return
        end local 1 // int userId
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lcom/android/internal/widget/LockPatternUtils;
            0    5     1  userId  I
    MethodParameters:
        Name  Flags
      userId  

  public void reportSuccessfulPasswordAttempt(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // int userId
         0: .line 324
            iload 1 /* userId */
            sipush -9999
            if_icmpne 2
            aload 0 /* this */
            getfield com.android.internal.widget.LockPatternUtils.mContext:Landroid/content/Context;
            invokestatic com.android.internal.widget.LockPatternUtils.frpCredentialEnabled:(Landroid/content/Context;)Z
            ifeq 2
         1: .line 325
            return
         2: .line 327
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.android.internal.widget.LockPatternUtils.getDevicePolicyManager:()Landroid/app/admin/DevicePolicyManager;
            iload 1 /* userId */
            invokevirtual android.app.admin.DevicePolicyManager.reportSuccessfulPasswordAttempt:(I)V
         3: .line 328
            aload 0 /* this */
            invokevirtual com.android.internal.widget.LockPatternUtils.getTrustManager:()Landroid/app/trust/TrustManager;
            iconst_1
            iload 1 /* userId */
            invokevirtual android.app.trust.TrustManager.reportUnlockAttempt:(ZI)V
         4: .line 329
            return
        end local 1 // int userId
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lcom/android/internal/widget/LockPatternUtils;
            0    5     1  userId  I
    MethodParameters:
        Name  Flags
      userId  

  public void reportPasswordLockout(int, int);
    descriptor: (II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // int timeoutMs
        start local 2 // int userId
         0: .line 332
            iload 2 /* userId */
            sipush -9999
            if_icmpne 2
            aload 0 /* this */
            getfield com.android.internal.widget.LockPatternUtils.mContext:Landroid/content/Context;
            invokestatic com.android.internal.widget.LockPatternUtils.frpCredentialEnabled:(Landroid/content/Context;)Z
            ifeq 2
         1: .line 333
            return
         2: .line 335
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.android.internal.widget.LockPatternUtils.getTrustManager:()Landroid/app/trust/TrustManager;
            iload 1 /* timeoutMs */
            iload 2 /* userId */
            invokevirtual android.app.trust.TrustManager.reportUnlockLockout:(II)V
         3: .line 336
            return
        end local 2 // int userId
        end local 1 // int timeoutMs
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lcom/android/internal/widget/LockPatternUtils;
            0    4     1  timeoutMs  I
            0    4     2     userId  I
    MethodParameters:
           Name  Flags
      timeoutMs  
      userId     

  public int getCurrentFailedPasswordAttempts(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // int userId
         0: .line 339
            iload 1 /* userId */
            sipush -9999
            if_icmpne 2
            aload 0 /* this */
            getfield com.android.internal.widget.LockPatternUtils.mContext:Landroid/content/Context;
            invokestatic com.android.internal.widget.LockPatternUtils.frpCredentialEnabled:(Landroid/content/Context;)Z
            ifeq 2
         1: .line 340
            iconst_0
            ireturn
         2: .line 342
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.android.internal.widget.LockPatternUtils.getDevicePolicyManager:()Landroid/app/admin/DevicePolicyManager;
            iload 1 /* userId */
            invokevirtual android.app.admin.DevicePolicyManager.getCurrentFailedPasswordAttempts:(I)I
            ireturn
        end local 1 // int userId
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lcom/android/internal/widget/LockPatternUtils;
            0    3     1  userId  I
    MethodParameters:
        Name  Flags
      userId  

  public int getMaximumFailedPasswordsForWipe(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // int userId
         0: .line 346
            iload 1 /* userId */
            sipush -9999
            if_icmpne 2
            aload 0 /* this */
            getfield com.android.internal.widget.LockPatternUtils.mContext:Landroid/content/Context;
            invokestatic com.android.internal.widget.LockPatternUtils.frpCredentialEnabled:(Landroid/content/Context;)Z
            ifeq 2
         1: .line 347
            iconst_0
            ireturn
         2: .line 349
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.android.internal.widget.LockPatternUtils.getDevicePolicyManager:()Landroid/app/admin/DevicePolicyManager;
         3: .line 350
            aconst_null
            iload 1 /* userId */
         4: .line 349
            invokevirtual android.app.admin.DevicePolicyManager.getMaximumFailedPasswordsForWipe:(Landroid/content/ComponentName;I)I
            ireturn
        end local 1 // int userId
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lcom/android/internal/widget/LockPatternUtils;
            0    5     1  userId  I
    MethodParameters:
        Name  Flags
      userId  

  private byte[] verifyCredential(java.lang.String, int, long, int);
    descriptor: (Ljava/lang/String;IJI)[B
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=7, args_size=5
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // java.lang.String credential
        start local 2 // int type
        start local 3 // long challenge
        start local 5 // int userId
         0: .line 356
            aload 0 /* this */
            invokevirtual com.android.internal.widget.LockPatternUtils.getLockSettings:()Lcom/android/internal/widget/ILockSettings;
            aload 1 /* credential */
         1: .line 357
            iload 2 /* type */
            lload 3 /* challenge */
            iload 5 /* userId */
         2: .line 356
            invokeinterface com.android.internal.widget.ILockSettings.verifyCredential:(Ljava/lang/String;IJI)Lcom/android/internal/widget/VerifyCredentialResponse;
            astore 6 /* response */
        start local 6 // com.android.internal.widget.VerifyCredentialResponse response
         3: .line 358
            aload 6 /* response */
            invokevirtual com.android.internal.widget.VerifyCredentialResponse.getResponseCode:()I
            ifne 6
         4: .line 359
            aload 6 /* response */
            invokevirtual com.android.internal.widget.VerifyCredentialResponse.getPayload:()[B
         5: areturn
         6: .line 360
      StackMap locals: com.android.internal.widget.VerifyCredentialResponse
      StackMap stack:
            aload 6 /* response */
            invokevirtual com.android.internal.widget.VerifyCredentialResponse.getResponseCode:()I
            iconst_1
            if_icmpne 8
         7: .line 361
            new com.android.internal.widget.LockPatternUtils$RequestThrottledException
            dup
            aload 6 /* response */
            invokevirtual com.android.internal.widget.VerifyCredentialResponse.getTimeout:()I
            invokespecial com.android.internal.widget.LockPatternUtils$RequestThrottledException.<init>:(I)V
            athrow
         8: .line 363
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 6 // com.android.internal.widget.VerifyCredentialResponse response
         9: .line 365
      StackMap locals: com.android.internal.widget.LockPatternUtils java.lang.String int long int
      StackMap stack: android.os.RemoteException
            pop
        10: .line 366
            aconst_null
            areturn
        end local 5 // int userId
        end local 3 // long challenge
        end local 2 // int type
        end local 1 // java.lang.String credential
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   11     0        this  Lcom/android/internal/widget/LockPatternUtils;
            0   11     1  credential  Ljava/lang/String;
            0   11     2        type  I
            0   11     3   challenge  J
            0   11     5      userId  I
            3    9     6    response  Lcom/android/internal/widget/VerifyCredentialResponse;
      Exception table:
        from    to  target  type
           0     5       9  Class android.os.RemoteException
           6     8       9  Class android.os.RemoteException
    Exceptions:
      throws com.android.internal.widget.LockPatternUtils$RequestThrottledException
    MethodParameters:
            Name  Flags
      credential  
      type        
      challenge   
      userId      

  private boolean checkCredential(java.lang.String, int, int, com.android.internal.widget.LockPatternUtils$CheckCredentialProgressCallback);
    descriptor: (Ljava/lang/String;IILcom/android/internal/widget/LockPatternUtils$CheckCredentialProgressCallback;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=6, args_size=5
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // java.lang.String credential
        start local 2 // int type
        start local 3 // int userId
        start local 4 // com.android.internal.widget.LockPatternUtils$CheckCredentialProgressCallback progressCallback
         0: .line 374
            aload 0 /* this */
            invokevirtual com.android.internal.widget.LockPatternUtils.getLockSettings:()Lcom/android/internal/widget/ILockSettings;
            aload 1 /* credential */
            iload 2 /* type */
         1: .line 375
            iload 3 /* userId */
            aload 0 /* this */
            aload 4 /* progressCallback */
            invokevirtual com.android.internal.widget.LockPatternUtils.wrapCallback:(Lcom/android/internal/widget/LockPatternUtils$CheckCredentialProgressCallback;)Lcom/android/internal/widget/ICheckCredentialProgressCallback;
         2: .line 374
            invokeinterface com.android.internal.widget.ILockSettings.checkCredential:(Ljava/lang/String;IILcom/android/internal/widget/ICheckCredentialProgressCallback;)Lcom/android/internal/widget/VerifyCredentialResponse;
            astore 5 /* response */
        start local 5 // com.android.internal.widget.VerifyCredentialResponse response
         3: .line 377
            aload 5 /* response */
            invokevirtual com.android.internal.widget.VerifyCredentialResponse.getResponseCode:()I
            ifne 5
         4: .line 378
            iconst_1
            ireturn
         5: .line 379
      StackMap locals: com.android.internal.widget.VerifyCredentialResponse
      StackMap stack:
            aload 5 /* response */
            invokevirtual com.android.internal.widget.VerifyCredentialResponse.getResponseCode:()I
            iconst_1
            if_icmpne 7
         6: .line 380
            new com.android.internal.widget.LockPatternUtils$RequestThrottledException
            dup
            aload 5 /* response */
            invokevirtual com.android.internal.widget.VerifyCredentialResponse.getTimeout:()I
            invokespecial com.android.internal.widget.LockPatternUtils$RequestThrottledException.<init>:(I)V
            athrow
         7: .line 382
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 5 // com.android.internal.widget.VerifyCredentialResponse response
         8: .line 384
      StackMap locals: com.android.internal.widget.LockPatternUtils java.lang.String int int com.android.internal.widget.LockPatternUtils$CheckCredentialProgressCallback
      StackMap stack: android.os.RemoteException
            pop
         9: .line 385
            iconst_0
            ireturn
        end local 4 // com.android.internal.widget.LockPatternUtils$CheckCredentialProgressCallback progressCallback
        end local 3 // int userId
        end local 2 // int type
        end local 1 // java.lang.String credential
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   10     0              this  Lcom/android/internal/widget/LockPatternUtils;
            0   10     1        credential  Ljava/lang/String;
            0   10     2              type  I
            0   10     3            userId  I
            0   10     4  progressCallback  Lcom/android/internal/widget/LockPatternUtils$CheckCredentialProgressCallback;
            3    8     5          response  Lcom/android/internal/widget/VerifyCredentialResponse;
      Exception table:
        from    to  target  type
           0     4       8  Class android.os.RemoteException
           5     7       8  Class android.os.RemoteException
    Exceptions:
      throws com.android.internal.widget.LockPatternUtils$RequestThrottledException
    MethodParameters:
                  Name  Flags
      credential        
      type              
      userId            
      progressCallback  

  public byte[] verifyPattern(java.util.List<com.android.internal.widget.LockPatternView$Cell>, long, );
    descriptor: (Ljava/util/List;JI)[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=4
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // java.util.List pattern
        start local 2 // long challenge
        start local 4 // int userId
         0: .line 400
            aload 0 /* this */
            invokevirtual com.android.internal.widget.LockPatternUtils.throwIfCalledOnMainThread:()V
         1: .line 401
            aload 0 /* this */
            aload 1 /* pattern */
            invokestatic com.android.internal.widget.LockPatternUtils.patternToString:(Ljava/util/List;)Ljava/lang/String;
            iconst_1
            lload 2 /* challenge */
         2: .line 402
            iload 4 /* userId */
         3: .line 401
            invokevirtual com.android.internal.widget.LockPatternUtils.verifyCredential:(Ljava/lang/String;IJI)[B
            areturn
        end local 4 // int userId
        end local 2 // long challenge
        end local 1 // java.util.List pattern
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lcom/android/internal/widget/LockPatternUtils;
            0    4     1    pattern  Ljava/util/List<Lcom/android/internal/widget/LockPatternView$Cell;>;
            0    4     2  challenge  J
            0    4     4     userId  I
    Exceptions:
      throws com.android.internal.widget.LockPatternUtils$RequestThrottledException
    Signature: (Ljava/util/List<Lcom/android/internal/widget/LockPatternView$Cell;>;JI)[B
    MethodParameters:
           Name  Flags
      pattern    
      challenge  
      userId     

  public boolean checkPattern(java.util.List<com.android.internal.widget.LockPatternView$Cell>, );
    descriptor: (Ljava/util/List;I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // java.util.List pattern
        start local 2 // int userId
         0: .line 413
            aload 0 /* this */
            aload 1 /* pattern */
            iload 2 /* userId */
            aconst_null
            invokevirtual com.android.internal.widget.LockPatternUtils.checkPattern:(Ljava/util/List;ILcom/android/internal/widget/LockPatternUtils$CheckCredentialProgressCallback;)Z
            ireturn
        end local 2 // int userId
        end local 1 // java.util.List pattern
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/android/internal/widget/LockPatternUtils;
            0    1     1  pattern  Ljava/util/List<Lcom/android/internal/widget/LockPatternView$Cell;>;
            0    1     2   userId  I
    Exceptions:
      throws com.android.internal.widget.LockPatternUtils$RequestThrottledException
    Signature: (Ljava/util/List<Lcom/android/internal/widget/LockPatternView$Cell;>;I)Z
    MethodParameters:
         Name  Flags
      pattern  
      userId   

  public boolean checkPattern(java.util.List<com.android.internal.widget.LockPatternView$Cell>, int, com.android.internal.widget.LockPatternUtils$CheckCredentialProgressCallback);
    descriptor: (Ljava/util/List;ILcom/android/internal/widget/LockPatternUtils$CheckCredentialProgressCallback;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // java.util.List pattern
        start local 2 // int userId
        start local 3 // com.android.internal.widget.LockPatternUtils$CheckCredentialProgressCallback progressCallback
         0: .line 425
            aload 0 /* this */
            invokevirtual com.android.internal.widget.LockPatternUtils.throwIfCalledOnMainThread:()V
         1: .line 426
            aload 0 /* this */
            aload 1 /* pattern */
            invokestatic com.android.internal.widget.LockPatternUtils.patternToString:(Ljava/util/List;)Ljava/lang/String;
            iconst_1
            iload 2 /* userId */
         2: .line 427
            aload 3 /* progressCallback */
         3: .line 426
            invokevirtual com.android.internal.widget.LockPatternUtils.checkCredential:(Ljava/lang/String;IILcom/android/internal/widget/LockPatternUtils$CheckCredentialProgressCallback;)Z
            ireturn
        end local 3 // com.android.internal.widget.LockPatternUtils$CheckCredentialProgressCallback progressCallback
        end local 2 // int userId
        end local 1 // java.util.List pattern
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    4     0              this  Lcom/android/internal/widget/LockPatternUtils;
            0    4     1           pattern  Ljava/util/List<Lcom/android/internal/widget/LockPatternView$Cell;>;
            0    4     2            userId  I
            0    4     3  progressCallback  Lcom/android/internal/widget/LockPatternUtils$CheckCredentialProgressCallback;
    Exceptions:
      throws com.android.internal.widget.LockPatternUtils$RequestThrottledException
    Signature: (Ljava/util/List<Lcom/android/internal/widget/LockPatternView$Cell;>;ILcom/android/internal/widget/LockPatternUtils$CheckCredentialProgressCallback;)Z
    MethodParameters:
                  Name  Flags
      pattern           
      userId            
      progressCallback  

  public byte[] verifyPassword(java.lang.String, long, int);
    descriptor: (Ljava/lang/String;JI)[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=4
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // java.lang.String password
        start local 2 // long challenge
        start local 4 // int userId
         0: .line 441
            aload 0 /* this */
            invokevirtual com.android.internal.widget.LockPatternUtils.throwIfCalledOnMainThread:()V
         1: .line 442
            aload 0 /* this */
            aload 1 /* password */
            iconst_2
            lload 2 /* challenge */
            iload 4 /* userId */
            invokevirtual com.android.internal.widget.LockPatternUtils.verifyCredential:(Ljava/lang/String;IJI)[B
            areturn
        end local 4 // int userId
        end local 2 // long challenge
        end local 1 // java.lang.String password
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lcom/android/internal/widget/LockPatternUtils;
            0    2     1   password  Ljava/lang/String;
            0    2     2  challenge  J
            0    2     4     userId  I
    Exceptions:
      throws com.android.internal.widget.LockPatternUtils$RequestThrottledException
    MethodParameters:
           Name  Flags
      password   
      challenge  
      userId     

  public byte[] verifyTiedProfileChallenge(java.lang.String, boolean, long, int);
    descriptor: (Ljava/lang/String;ZJI)[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=7, args_size=5
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // java.lang.String password
        start local 2 // boolean isPattern
        start local 3 // long challenge
        start local 5 // int userId
         0: .line 457
            aload 0 /* this */
            invokevirtual com.android.internal.widget.LockPatternUtils.throwIfCalledOnMainThread:()V
         1: .line 460
            aload 0 /* this */
            invokevirtual com.android.internal.widget.LockPatternUtils.getLockSettings:()Lcom/android/internal/widget/ILockSettings;
            aload 1 /* password */
         2: .line 461
            iload 2 /* isPattern */
            ifeq 3
            iconst_1
            goto 4
      StackMap locals: com.android.internal.widget.LockPatternUtils java.lang.String int long int
      StackMap stack: com.android.internal.widget.ILockSettings java.lang.String
         3: iconst_2
      StackMap locals: com.android.internal.widget.LockPatternUtils java.lang.String int long int
      StackMap stack: com.android.internal.widget.ILockSettings java.lang.String int
         4: lload 3 /* challenge */
         5: .line 462
            iload 5 /* userId */
         6: .line 460
            invokeinterface com.android.internal.widget.ILockSettings.verifyTiedProfileChallenge:(Ljava/lang/String;IJI)Lcom/android/internal/widget/VerifyCredentialResponse;
         7: .line 459
            astore 6 /* response */
        start local 6 // com.android.internal.widget.VerifyCredentialResponse response
         8: .line 464
            aload 6 /* response */
            invokevirtual com.android.internal.widget.VerifyCredentialResponse.getResponseCode:()I
            ifne 11
         9: .line 465
            aload 6 /* response */
            invokevirtual com.android.internal.widget.VerifyCredentialResponse.getPayload:()[B
        10: areturn
        11: .line 466
      StackMap locals: com.android.internal.widget.VerifyCredentialResponse
      StackMap stack:
            aload 6 /* response */
            invokevirtual com.android.internal.widget.VerifyCredentialResponse.getResponseCode:()I
            iconst_1
            if_icmpne 13
        12: .line 467
            new com.android.internal.widget.LockPatternUtils$RequestThrottledException
            dup
            aload 6 /* response */
            invokevirtual com.android.internal.widget.VerifyCredentialResponse.getTimeout:()I
            invokespecial com.android.internal.widget.LockPatternUtils$RequestThrottledException.<init>:(I)V
            athrow
        13: .line 469
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 6 // com.android.internal.widget.VerifyCredentialResponse response
        14: .line 471
      StackMap locals: com.android.internal.widget.LockPatternUtils java.lang.String int long int
      StackMap stack: android.os.RemoteException
            pop
        15: .line 472
            aconst_null
            areturn
        end local 5 // int userId
        end local 3 // long challenge
        end local 2 // boolean isPattern
        end local 1 // java.lang.String password
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   16     0       this  Lcom/android/internal/widget/LockPatternUtils;
            0   16     1   password  Ljava/lang/String;
            0   16     2  isPattern  Z
            0   16     3  challenge  J
            0   16     5     userId  I
            8   14     6   response  Lcom/android/internal/widget/VerifyCredentialResponse;
      Exception table:
        from    to  target  type
           1    10      14  Class android.os.RemoteException
          11    13      14  Class android.os.RemoteException
    Exceptions:
      throws com.android.internal.widget.LockPatternUtils$RequestThrottledException
    MethodParameters:
           Name  Flags
      password   
      isPattern  
      challenge  
      userId     

  public boolean checkPassword(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // java.lang.String password
        start local 2 // int userId
         0: .line 483
            aload 0 /* this */
            aload 1 /* password */
            iload 2 /* userId */
            aconst_null
            invokevirtual com.android.internal.widget.LockPatternUtils.checkPassword:(Ljava/lang/String;ILcom/android/internal/widget/LockPatternUtils$CheckCredentialProgressCallback;)Z
            ireturn
        end local 2 // int userId
        end local 1 // java.lang.String password
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/android/internal/widget/LockPatternUtils;
            0    1     1  password  Ljava/lang/String;
            0    1     2    userId  I
    Exceptions:
      throws com.android.internal.widget.LockPatternUtils$RequestThrottledException
    MethodParameters:
          Name  Flags
      password  
      userId    

  public boolean checkPassword(java.lang.String, int, com.android.internal.widget.LockPatternUtils$CheckCredentialProgressCallback);
    descriptor: (Ljava/lang/String;ILcom/android/internal/widget/LockPatternUtils$CheckCredentialProgressCallback;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // java.lang.String password
        start local 2 // int userId
        start local 3 // com.android.internal.widget.LockPatternUtils$CheckCredentialProgressCallback progressCallback
         0: .line 495
            aload 0 /* this */
            invokevirtual com.android.internal.widget.LockPatternUtils.throwIfCalledOnMainThread:()V
         1: .line 496
            aload 0 /* this */
            aload 1 /* password */
            iconst_2
            iload 2 /* userId */
            aload 3 /* progressCallback */
            invokevirtual com.android.internal.widget.LockPatternUtils.checkCredential:(Ljava/lang/String;IILcom/android/internal/widget/LockPatternUtils$CheckCredentialProgressCallback;)Z
            ireturn
        end local 3 // com.android.internal.widget.LockPatternUtils$CheckCredentialProgressCallback progressCallback
        end local 2 // int userId
        end local 1 // java.lang.String password
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    2     0              this  Lcom/android/internal/widget/LockPatternUtils;
            0    2     1          password  Ljava/lang/String;
            0    2     2            userId  I
            0    2     3  progressCallback  Lcom/android/internal/widget/LockPatternUtils$CheckCredentialProgressCallback;
    Exceptions:
      throws com.android.internal.widget.LockPatternUtils$RequestThrottledException
    MethodParameters:
                  Name  Flags
      password          
      userId            
      progressCallback  

  public boolean checkVoldPassword(int);
    descriptor: (I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // int userId
         0: .line 506
            aload 0 /* this */
            invokevirtual com.android.internal.widget.LockPatternUtils.getLockSettings:()Lcom/android/internal/widget/ILockSettings;
            iload 1 /* userId */
            invokeinterface com.android.internal.widget.ILockSettings.checkVoldPassword:(I)Z
         1: ireturn
         2: .line 507
      StackMap locals:
      StackMap stack: android.os.RemoteException
            pop
         3: .line 508
            iconst_0
            ireturn
        end local 1 // int userId
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lcom/android/internal/widget/LockPatternUtils;
            0    4     1  userId  I
      Exception table:
        from    to  target  type
           0     1       2  Class android.os.RemoteException
    MethodParameters:
        Name  Flags
      userId  

  public byte[] getPasswordHistoryHashFactor(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // java.lang.String currentPassword
        start local 2 // int userId
         0: .line 518
            aload 0 /* this */
            invokevirtual com.android.internal.widget.LockPatternUtils.getLockSettings:()Lcom/android/internal/widget/ILockSettings;
            aload 1 /* currentPassword */
            iload 2 /* userId */
            invokeinterface com.android.internal.widget.ILockSettings.getHashFactor:(Ljava/lang/String;I)[B
         1: areturn
         2: .line 519
      StackMap locals:
      StackMap stack: android.os.RemoteException
            astore 3 /* e */
        start local 3 // android.os.RemoteException e
         3: .line 520
            ldc "LockPatternUtils"
            ldc "failed to get hash factor"
            aload 3 /* e */
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
         4: .line 521
            aconst_null
            areturn
        end local 3 // android.os.RemoteException e
        end local 2 // int userId
        end local 1 // java.lang.String currentPassword
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    5     0             this  Lcom/android/internal/widget/LockPatternUtils;
            0    5     1  currentPassword  Ljava/lang/String;
            0    5     2           userId  I
            3    5     3                e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           0     1       2  Class android.os.RemoteException
    MethodParameters:
                 Name  Flags
      currentPassword  
      userId           

  public boolean checkPasswordHistory(java.lang.String, byte[], int);
    descriptor: (Ljava/lang/String;[BI)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=10, args_size=4
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // java.lang.String passwordToCheck
        start local 2 // byte[] hashFactor
        start local 3 // int userId
         0: .line 535
            aload 1 /* passwordToCheck */
            invokestatic android.text.TextUtils.isEmpty:(Ljava/lang/CharSequence;)Z
            ifeq 3
         1: .line 536
            ldc "LockPatternUtils"
            ldc "checkPasswordHistory: empty password"
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         2: .line 537
            iconst_0
            ireturn
         3: .line 539
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "lockscreen.passwordhistory"
            iload 3 /* userId */
            invokevirtual com.android.internal.widget.LockPatternUtils.getString:(Ljava/lang/String;I)Ljava/lang/String;
            astore 4 /* passwordHistory */
        start local 4 // java.lang.String passwordHistory
         4: .line 540
            aload 4 /* passwordHistory */
            invokestatic android.text.TextUtils.isEmpty:(Ljava/lang/CharSequence;)Z
            ifeq 6
         5: .line 541
            iconst_0
            ireturn
         6: .line 543
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            iload 3 /* userId */
            invokevirtual com.android.internal.widget.LockPatternUtils.getRequestedPasswordHistoryLength:(I)I
            istore 5 /* passwordHistoryLength */
        start local 5 // int passwordHistoryLength
         7: .line 544
            iload 5 /* passwordHistoryLength */
            ifne 9
         8: .line 545
            iconst_0
            ireturn
         9: .line 547
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* passwordToCheck */
            iload 3 /* userId */
            invokevirtual com.android.internal.widget.LockPatternUtils.legacyPasswordToHash:(Ljava/lang/String;I)Ljava/lang/String;
            astore 6 /* legacyHash */
        start local 6 // java.lang.String legacyHash
        10: .line 548
            aload 0 /* this */
            aload 1 /* passwordToCheck */
            aload 2 /* hashFactor */
            iload 3 /* userId */
            invokevirtual com.android.internal.widget.LockPatternUtils.passwordToHistoryHash:(Ljava/lang/String;[BI)Ljava/lang/String;
            astore 7 /* passwordHash */
        start local 7 // java.lang.String passwordHash
        11: .line 549
            aload 4 /* passwordHistory */
            ldc ","
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 8 /* history */
        start local 8 // java.lang.String[] history
        12: .line 551
            iconst_0
            istore 9 /* i */
        start local 9 // int i
        13: goto 17
        14: .line 552
      StackMap locals: com.android.internal.widget.LockPatternUtils java.lang.String byte[] int java.lang.String int java.lang.String java.lang.String java.lang.String[] int
      StackMap stack:
            aload 8 /* history */
            iload 9 /* i */
            aaload
            aload 6 /* legacyHash */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 15
            aload 8 /* history */
            iload 9 /* i */
            aaload
            aload 7 /* passwordHash */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 16
        15: .line 553
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        16: .line 551
      StackMap locals:
      StackMap stack:
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        17: iload 9 /* i */
            iload 5 /* passwordHistoryLength */
            aload 8 /* history */
            arraylength
            invokestatic java.lang.Math.min:(II)I
            if_icmplt 14
        end local 9 // int i
        18: .line 556
            iconst_0
            ireturn
        end local 8 // java.lang.String[] history
        end local 7 // java.lang.String passwordHash
        end local 6 // java.lang.String legacyHash
        end local 5 // int passwordHistoryLength
        end local 4 // java.lang.String passwordHistory
        end local 3 // int userId
        end local 2 // byte[] hashFactor
        end local 1 // java.lang.String passwordToCheck
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   19     0                   this  Lcom/android/internal/widget/LockPatternUtils;
            0   19     1        passwordToCheck  Ljava/lang/String;
            0   19     2             hashFactor  [B
            0   19     3                 userId  I
            4   19     4        passwordHistory  Ljava/lang/String;
            7   19     5  passwordHistoryLength  I
           10   19     6             legacyHash  Ljava/lang/String;
           11   19     7           passwordHash  Ljava/lang/String;
           12   19     8                history  [Ljava/lang/String;
           13   18     9                      i  I
    MethodParameters:
                 Name  Flags
      passwordToCheck  
      hashFactor       
      userId           

  private boolean savedPatternExists(int);
    descriptor: (I)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // int userId
         0: .line 565
            aload 0 /* this */
            invokevirtual com.android.internal.widget.LockPatternUtils.getLockSettings:()Lcom/android/internal/widget/ILockSettings;
            iload 1 /* userId */
            invokeinterface com.android.internal.widget.ILockSettings.havePattern:(I)Z
         1: ireturn
         2: .line 566
      StackMap locals:
      StackMap stack: android.os.RemoteException
            pop
         3: .line 567
            iconst_0
            ireturn
        end local 1 // int userId
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lcom/android/internal/widget/LockPatternUtils;
            0    4     1  userId  I
      Exception table:
        from    to  target  type
           0     1       2  Class android.os.RemoteException
    MethodParameters:
        Name  Flags
      userId  

  private boolean savedPasswordExists(int);
    descriptor: (I)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // int userId
         0: .line 577
            aload 0 /* this */
            invokevirtual com.android.internal.widget.LockPatternUtils.getLockSettings:()Lcom/android/internal/widget/ILockSettings;
            iload 1 /* userId */
            invokeinterface com.android.internal.widget.ILockSettings.havePassword:(I)Z
         1: ireturn
         2: .line 578
      StackMap locals:
      StackMap stack: android.os.RemoteException
            pop
         3: .line 579
            iconst_0
            ireturn
        end local 1 // int userId
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lcom/android/internal/widget/LockPatternUtils;
            0    4     1  userId  I
      Exception table:
        from    to  target  type
           0     1       2  Class android.os.RemoteException
    MethodParameters:
        Name  Flags
      userId  

  public boolean isPatternEverChosen(int);
    descriptor: (I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // int userId
         0: .line 590
            aload 0 /* this */
            ldc "lockscreen.patterneverchosen"
            iconst_0
            iload 1 /* userId */
            invokevirtual com.android.internal.widget.LockPatternUtils.getBoolean:(Ljava/lang/String;ZI)Z
            ireturn
        end local 1 // int userId
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/android/internal/widget/LockPatternUtils;
            0    1     1  userId  I
    MethodParameters:
        Name  Flags
      userId  

  public void reportPatternWasChosen(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // int userId
         0: .line 598
            aload 0 /* this */
            ldc "lockscreen.patterneverchosen"
            iconst_1
            iload 1 /* userId */
            invokevirtual com.android.internal.widget.LockPatternUtils.setBoolean:(Ljava/lang/String;ZI)V
         1: .line 599
            return
        end local 1 // int userId
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/android/internal/widget/LockPatternUtils;
            0    2     1  userId  I
    MethodParameters:
        Name  Flags
      userId  

  public int getActivePasswordQuality(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // int userId
         0: .line 606
            aload 0 /* this */
            iload 1 /* userId */
            invokevirtual com.android.internal.widget.LockPatternUtils.getKeyguardStoredPasswordQuality:(I)I
            istore 2 /* quality */
        start local 2 // int quality
         1: .line 608
            aload 0 /* this */
            iload 2 /* quality */
            iload 1 /* userId */
            invokevirtual com.android.internal.widget.LockPatternUtils.isLockPasswordEnabled:(II)Z
            ifeq 3
         2: .line 610
            iload 2 /* quality */
            ireturn
         3: .line 613
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iload 2 /* quality */
            iload 1 /* userId */
            invokevirtual com.android.internal.widget.LockPatternUtils.isLockPatternEnabled:(II)Z
            ifeq 5
         4: .line 615
            iload 2 /* quality */
            ireturn
         5: .line 618
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // int quality
        end local 1 // int userId
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lcom/android/internal/widget/LockPatternUtils;
            0    6     1   userId  I
            1    6     2  quality  I
    MethodParameters:
        Name  Flags
      userId  

  public void resetKeyStore(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // int userId
         0: .line 626
            aload 0 /* this */
            invokevirtual com.android.internal.widget.LockPatternUtils.getLockSettings:()Lcom/android/internal/widget/ILockSettings;
            iload 1 /* userId */
            invokeinterface com.android.internal.widget.ILockSettings.resetKeyStore:(I)V
         1: .line 627
            goto 4
      StackMap locals:
      StackMap stack: android.os.RemoteException
         2: astore 2 /* e */
        start local 2 // android.os.RemoteException e
         3: .line 629
            ldc "LockPatternUtils"
            new java.lang.StringBuilder
            dup
            ldc "Couldn't reset keystore "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        end local 2 // android.os.RemoteException e
         4: .line 631
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int userId
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lcom/android/internal/widget/LockPatternUtils;
            0    5     1  userId  I
            3    4     2       e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           0     1       2  Class android.os.RemoteException
    MethodParameters:
        Name  Flags
      userId  

  public void clearLock(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=3
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // java.lang.String savedCredential
        start local 2 // int userHandle
         0: .line 637
            aload 0 /* this */
            iload 2 /* userHandle */
            invokevirtual com.android.internal.widget.LockPatternUtils.getKeyguardStoredPasswordQuality:(I)I
            istore 3 /* currentQuality */
        start local 3 // int currentQuality
         1: .line 638
            aload 0 /* this */
            iconst_0
            iload 2 /* userHandle */
            invokevirtual com.android.internal.widget.LockPatternUtils.setKeyguardStoredPasswordQuality:(II)V
         2: .line 641
            aload 0 /* this */
            invokevirtual com.android.internal.widget.LockPatternUtils.getLockSettings:()Lcom/android/internal/widget/ILockSettings;
            aconst_null
            iconst_m1
            aload 1 /* savedCredential */
         3: .line 642
            iconst_0
            iload 2 /* userHandle */
         4: .line 641
            invokeinterface com.android.internal.widget.ILockSettings.setLockCredential:(Ljava/lang/String;ILjava/lang/String;II)V
         5: .line 643
            goto 10
      StackMap locals: com.android.internal.widget.LockPatternUtils java.lang.String int int
      StackMap stack: java.lang.Exception
         6: astore 4 /* e */
        start local 4 // java.lang.Exception e
         7: .line 644
            ldc "LockPatternUtils"
            ldc "Failed to clear lock"
            aload 4 /* e */
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
         8: .line 645
            aload 0 /* this */
            iload 3 /* currentQuality */
            iload 2 /* userHandle */
            invokevirtual com.android.internal.widget.LockPatternUtils.setKeyguardStoredPasswordQuality:(II)V
         9: .line 646
            return
        end local 4 // java.lang.Exception e
        10: .line 649
      StackMap locals:
      StackMap stack:
            iload 2 /* userHandle */
            ifne 13
        11: .line 651
            aload 0 /* this */
            iconst_1
            aconst_null
            invokevirtual com.android.internal.widget.LockPatternUtils.updateEncryptionPassword:(ILjava/lang/String;)V
        12: .line 652
            aload 0 /* this */
            iconst_0
            invokevirtual com.android.internal.widget.LockPatternUtils.setCredentialRequiredToDecrypt:(Z)V
        13: .line 655
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 2 /* userHandle */
            invokevirtual com.android.internal.widget.LockPatternUtils.onAfterChangingPassword:(I)V
        14: .line 656
            return
        end local 3 // int currentQuality
        end local 2 // int userHandle
        end local 1 // java.lang.String savedCredential
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   15     0             this  Lcom/android/internal/widget/LockPatternUtils;
            0   15     1  savedCredential  Ljava/lang/String;
            0   15     2       userHandle  I
            1   15     3   currentQuality  I
            7   10     4                e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           2     5       6  Class java.lang.Exception
    MethodParameters:
                 Name  Flags
      savedCredential  
      userHandle       

  public void setLockScreenDisabled(boolean, int);
    descriptor: (ZI)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // boolean disable
        start local 2 // int userId
         0: .line 666
            aload 0 /* this */
            ldc "lockscreen.disabled"
            iload 1 /* disable */
            iload 2 /* userId */
            invokevirtual com.android.internal.widget.LockPatternUtils.setBoolean:(Ljava/lang/String;ZI)V
         1: .line 667
            return
        end local 2 // int userId
        end local 1 // boolean disable
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lcom/android/internal/widget/LockPatternUtils;
            0    2     1  disable  Z
            0    2     2   userId  I
    MethodParameters:
         Name  Flags
      disable  
      userId   

  public boolean isLockScreenDisabled(int);
    descriptor: (I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.android.internal.widget.LockPatternUtils this
         0: .line 680
            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.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/android/internal/widget/LockPatternUtils;
    MethodParameters:
        Name  Flags
      userId  

  public void saveLockPattern(java.util.List<com.android.internal.widget.LockPatternView$Cell>, );
    descriptor: (Ljava/util/List;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // java.util.List pattern
        start local 2 // int userId
         0: .line 696
            aload 0 /* this */
            aload 1 /* pattern */
            aconst_null
            iload 2 /* userId */
            invokevirtual com.android.internal.widget.LockPatternUtils.saveLockPattern:(Ljava/util/List;Ljava/lang/String;I)V
         1: .line 697
            return
        end local 2 // int userId
        end local 1 // java.util.List pattern
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lcom/android/internal/widget/LockPatternUtils;
            0    2     1  pattern  Ljava/util/List<Lcom/android/internal/widget/LockPatternView$Cell;>;
            0    2     2   userId  I
    Signature: (Ljava/util/List<Lcom/android/internal/widget/LockPatternView$Cell;>;I)V
    MethodParameters:
         Name  Flags
      pattern  
      userId   

  public void saveLockPattern(java.util.List<com.android.internal.widget.LockPatternView$Cell>, java.lang.String, );
    descriptor: (Ljava/util/List;Ljava/lang/String;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=7, args_size=4
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // java.util.List pattern
        start local 2 // java.lang.String savedPattern
        start local 3 // int userId
         0: .line 705
            aload 1 /* pattern */
            ifnull 1
            aload 1 /* pattern */
            invokeinterface java.util.List.size:()I
            iconst_4
            if_icmpge 2
         1: .line 706
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "pattern must not be null and at least 4 dots long."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 710
      StackMap locals:
      StackMap stack:
            aload 1 /* pattern */
            invokestatic com.android.internal.widget.LockPatternUtils.patternToString:(Ljava/util/List;)Ljava/lang/String;
            astore 4 /* stringPattern */
        start local 4 // java.lang.String stringPattern
         3: .line 711
            aload 0 /* this */
            iload 3 /* userId */
            invokevirtual com.android.internal.widget.LockPatternUtils.getKeyguardStoredPasswordQuality:(I)I
            istore 5 /* currentQuality */
        start local 5 // int currentQuality
         4: .line 712
            aload 0 /* this */
            ldc 65536
            iload 3 /* userId */
            invokevirtual com.android.internal.widget.LockPatternUtils.setKeyguardStoredPasswordQuality:(II)V
         5: .line 714
            aload 0 /* this */
            invokevirtual com.android.internal.widget.LockPatternUtils.getLockSettings:()Lcom/android/internal/widget/ILockSettings;
            aload 4 /* stringPattern */
            iconst_1
         6: .line 715
            aload 2 /* savedPattern */
            ldc 65536
            iload 3 /* userId */
         7: .line 714
            invokeinterface com.android.internal.widget.ILockSettings.setLockCredential:(Ljava/lang/String;ILjava/lang/String;II)V
         8: .line 716
            goto 13
      StackMap locals: com.android.internal.widget.LockPatternUtils java.util.List java.lang.String int java.lang.String int
      StackMap stack: java.lang.Exception
         9: astore 6 /* e */
        start local 6 // java.lang.Exception e
        10: .line 717
            ldc "LockPatternUtils"
            ldc "Couldn't save lock pattern"
            aload 6 /* e */
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        11: .line 718
            aload 0 /* this */
            iload 5 /* currentQuality */
            iload 3 /* userId */
            invokevirtual com.android.internal.widget.LockPatternUtils.setKeyguardStoredPasswordQuality:(II)V
        12: .line 719
            return
        end local 6 // java.lang.Exception e
        13: .line 722
      StackMap locals:
      StackMap stack:
            iload 3 /* userId */
            ifne 19
        14: .line 723
            invokestatic com.android.internal.widget.LockPatternUtils.isDeviceEncryptionEnabled:()Z
            ifeq 19
        15: .line 724
            aload 0 /* this */
            iconst_1
            invokevirtual com.android.internal.widget.LockPatternUtils.shouldEncryptWithCredentials:(Z)Z
            ifne 18
        16: .line 725
            aload 0 /* this */
            invokevirtual com.android.internal.widget.LockPatternUtils.clearEncryptionPassword:()V
        17: .line 726
            goto 19
        18: .line 727
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_3
            aload 4 /* stringPattern */
            invokevirtual com.android.internal.widget.LockPatternUtils.updateEncryptionPassword:(ILjava/lang/String;)V
        19: .line 731
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 3 /* userId */
            invokevirtual com.android.internal.widget.LockPatternUtils.reportPatternWasChosen:(I)V
        20: .line 732
            aload 0 /* this */
            iload 3 /* userId */
            invokevirtual com.android.internal.widget.LockPatternUtils.onAfterChangingPassword:(I)V
        21: .line 733
            return
        end local 5 // int currentQuality
        end local 4 // java.lang.String stringPattern
        end local 3 // int userId
        end local 2 // java.lang.String savedPattern
        end local 1 // java.util.List pattern
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   22     0            this  Lcom/android/internal/widget/LockPatternUtils;
            0   22     1         pattern  Ljava/util/List<Lcom/android/internal/widget/LockPatternView$Cell;>;
            0   22     2    savedPattern  Ljava/lang/String;
            0   22     3          userId  I
            3   22     4   stringPattern  Ljava/lang/String;
            4   22     5  currentQuality  I
           10   13     6               e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           5     8       9  Class java.lang.Exception
    Signature: (Ljava/util/List<Lcom/android/internal/widget/LockPatternView$Cell;>;Ljava/lang/String;I)V
    MethodParameters:
              Name  Flags
      pattern       
      savedPattern  
      userId        

  private void updateCryptoUserInfo(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // int userId
         0: .line 736
            iload 1 /* userId */
            ifeq 2
         1: .line 737
            return
         2: .line 740
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* userId */
            invokevirtual com.android.internal.widget.LockPatternUtils.isOwnerInfoEnabled:(I)Z
            ifeq 3
            aload 0 /* this */
            iload 1 /* userId */
            invokevirtual com.android.internal.widget.LockPatternUtils.getOwnerInfo:(I)Ljava/lang/String;
            goto 4
      StackMap locals:
      StackMap stack:
         3: ldc ""
      StackMap locals:
      StackMap stack: java.lang.String
         4: astore 2 /* ownerInfo */
        start local 2 // java.lang.String ownerInfo
         5: .line 742
            ldc "mount"
            invokestatic android.os.ServiceManager.getService:(Ljava/lang/String;)Landroid/os/IBinder;
            astore 3 /* service */
        start local 3 // android.os.IBinder service
         6: .line 743
            aload 3 /* service */
            ifnonnull 9
         7: .line 744
            ldc "LockPatternUtils"
            ldc "Could not find the mount service to update the user info"
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         8: .line 745
            return
         9: .line 748
      StackMap locals: java.lang.String android.os.IBinder
      StackMap stack:
            aload 3 /* service */
            invokestatic android.os.storage.IStorageManager$Stub.asInterface:(Landroid/os/IBinder;)Landroid/os/storage/IStorageManager;
            astore 4 /* storageManager */
        start local 4 // android.os.storage.IStorageManager storageManager
        10: .line 750
            ldc "LockPatternUtils"
            ldc "Setting owner info"
            invokestatic android.util.Log.d:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        11: .line 751
            aload 4 /* storageManager */
            ldc "OwnerInfo"
            aload 2 /* ownerInfo */
            invokeinterface android.os.storage.IStorageManager.setField:(Ljava/lang/String;Ljava/lang/String;)V
        12: .line 752
            goto 15
      StackMap locals: com.android.internal.widget.LockPatternUtils int java.lang.String android.os.IBinder android.os.storage.IStorageManager
      StackMap stack: android.os.RemoteException
        13: astore 5 /* e */
        start local 5 // android.os.RemoteException e
        14: .line 753
            ldc "LockPatternUtils"
            ldc "Error changing user info"
            aload 5 /* e */
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        end local 5 // android.os.RemoteException e
        15: .line 755
      StackMap locals:
      StackMap stack:
            return
        end local 4 // android.os.storage.IStorageManager storageManager
        end local 3 // android.os.IBinder service
        end local 2 // java.lang.String ownerInfo
        end local 1 // int userId
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   16     0            this  Lcom/android/internal/widget/LockPatternUtils;
            0   16     1          userId  I
            5   16     2       ownerInfo  Ljava/lang/String;
            6   16     3         service  Landroid/os/IBinder;
           10   16     4  storageManager  Landroid/os/storage/IStorageManager;
           14   15     5               e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
          10    12      13  Class android.os.RemoteException
    MethodParameters:
        Name  Flags
      userId  

  public void setOwnerInfo(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // java.lang.String info
        start local 2 // int userId
         0: .line 758
            aload 0 /* this */
            ldc "lock_screen_owner_info"
            aload 1 /* info */
            iload 2 /* userId */
            invokevirtual com.android.internal.widget.LockPatternUtils.setString:(Ljava/lang/String;Ljava/lang/String;I)V
         1: .line 759
            aload 0 /* this */
            iload 2 /* userId */
            invokevirtual com.android.internal.widget.LockPatternUtils.updateCryptoUserInfo:(I)V
         2: .line 760
            return
        end local 2 // int userId
        end local 1 // java.lang.String info
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lcom/android/internal/widget/LockPatternUtils;
            0    3     1    info  Ljava/lang/String;
            0    3     2  userId  I
    MethodParameters:
        Name  Flags
      info    
      userId  

  public void setOwnerInfoEnabled(boolean, int);
    descriptor: (ZI)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // boolean enabled
        start local 2 // int userId
         0: .line 763
            aload 0 /* this */
            ldc "lock_screen_owner_info_enabled"
            iload 1 /* enabled */
            iload 2 /* userId */
            invokevirtual com.android.internal.widget.LockPatternUtils.setBoolean:(Ljava/lang/String;ZI)V
         1: .line 764
            aload 0 /* this */
            iload 2 /* userId */
            invokevirtual com.android.internal.widget.LockPatternUtils.updateCryptoUserInfo:(I)V
         2: .line 765
            return
        end local 2 // int userId
        end local 1 // boolean enabled
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lcom/android/internal/widget/LockPatternUtils;
            0    3     1  enabled  Z
            0    3     2   userId  I
    MethodParameters:
         Name  Flags
      enabled  
      userId   

  public java.lang.String getOwnerInfo(int);
    descriptor: (I)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // int userId
         0: .line 768
            aload 0 /* this */
            ldc "lock_screen_owner_info"
            iload 1 /* userId */
            invokevirtual com.android.internal.widget.LockPatternUtils.getString:(Ljava/lang/String;I)Ljava/lang/String;
            areturn
        end local 1 // int userId
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/android/internal/widget/LockPatternUtils;
            0    1     1  userId  I
    MethodParameters:
        Name  Flags
      userId  

  public boolean isOwnerInfoEnabled(int);
    descriptor: (I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // int userId
         0: .line 772
            aload 0 /* this */
            ldc "lock_screen_owner_info_enabled"
            iconst_0
            iload 1 /* userId */
            invokevirtual com.android.internal.widget.LockPatternUtils.getBoolean:(Ljava/lang/String;ZI)Z
            ireturn
        end local 1 // int userId
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/android/internal/widget/LockPatternUtils;
            0    1     1  userId  I
    MethodParameters:
        Name  Flags
      userId  

  public void setDeviceOwnerInfo(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // java.lang.String info
         0: .line 783
            aload 1 /* info */
            ifnull 2
            aload 1 /* info */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 2
         1: .line 784
            aconst_null
            astore 1 /* info */
         2: .line 787
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "lockscreen.device_owner_info"
            aload 1 /* info */
            iconst_0
            invokevirtual com.android.internal.widget.LockPatternUtils.setString:(Ljava/lang/String;Ljava/lang/String;I)V
         3: .line 788
            return
        end local 1 // java.lang.String info
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/android/internal/widget/LockPatternUtils;
            0    4     1  info  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      info  

  public java.lang.String getDeviceOwnerInfo();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.android.internal.widget.LockPatternUtils this
         0: .line 791
            aload 0 /* this */
            ldc "lockscreen.device_owner_info"
            iconst_0
            invokevirtual com.android.internal.widget.LockPatternUtils.getString:(Ljava/lang/String;I)Ljava/lang/String;
            areturn
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/android/internal/widget/LockPatternUtils;

  public boolean isDeviceOwnerInfoEnabled();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.android.internal.widget.LockPatternUtils this
         0: .line 795
            aload 0 /* this */
            invokevirtual com.android.internal.widget.LockPatternUtils.getDeviceOwnerInfo:()Ljava/lang/String;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/android/internal/widget/LockPatternUtils;

  private void updateEncryptionPassword(int, java.lang.String);
    descriptor: (ILjava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // int type
        start local 2 // java.lang.String password
         0: .line 800
            invokestatic com.android.internal.widget.LockPatternUtils.isDeviceEncryptionEnabled:()Z
            ifne 2
         1: .line 801
            return
         2: .line 803
      StackMap locals:
      StackMap stack:
            ldc "mount"
            invokestatic android.os.ServiceManager.getService:(Ljava/lang/String;)Landroid/os/IBinder;
            astore 3 /* service */
        start local 3 // android.os.IBinder service
         3: .line 804
            aload 3 /* service */
            ifnonnull 6
         4: .line 805
            ldc "LockPatternUtils"
            ldc "Could not find the mount service to update the encryption password"
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         5: .line 806
            return
         6: .line 809
      StackMap locals: android.os.IBinder
      StackMap stack:
            new com.android.internal.widget.LockPatternUtils$1
            dup
            aload 0 /* this */
            aload 3 /* service */
            iload 1 /* type */
            aload 2 /* password */
            invokespecial com.android.internal.widget.LockPatternUtils$1.<init>:(Lcom/android/internal/widget/LockPatternUtils;Landroid/os/IBinder;ILjava/lang/String;)V
            iconst_0
            anewarray java.lang.Void
         7: .line 820
            invokevirtual com.android.internal.widget.LockPatternUtils$1.execute:([Ljava/lang/Object;)Landroid/os/AsyncTask;
            pop
         8: .line 821
            return
        end local 3 // android.os.IBinder service
        end local 2 // java.lang.String password
        end local 1 // int type
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0      this  Lcom/android/internal/widget/LockPatternUtils;
            0    9     1      type  I
            0    9     2  password  Ljava/lang/String;
            3    9     3   service  Landroid/os/IBinder;
    MethodParameters:
          Name  Flags
      type      final
      password  final

  public void saveLockPassword(java.lang.String, java.lang.String, int, int);
    descriptor: (Ljava/lang/String;Ljava/lang/String;II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=7, args_size=5
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // java.lang.String password
        start local 2 // java.lang.String savedPassword
        start local 3 // int requestedQuality
        start local 4 // int userHandle
         0: .line 834
            aload 1 /* password */
            ifnull 1
            aload 1 /* password */
            invokevirtual java.lang.String.length:()I
            iconst_4
            if_icmpge 2
         1: .line 835
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "password must not be null and at least of length 4"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 839
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 4 /* userHandle */
            invokevirtual com.android.internal.widget.LockPatternUtils.getKeyguardStoredPasswordQuality:(I)I
            istore 5 /* currentQuality */
        start local 5 // int currentQuality
         3: .line 840
            aload 0 /* this */
         4: .line 841
            aload 0 /* this */
            iconst_2
            aload 1 /* password */
            iload 3 /* requestedQuality */
            invokevirtual com.android.internal.widget.LockPatternUtils.computePasswordQuality:(ILjava/lang/String;I)I
         5: .line 842
            iload 4 /* userHandle */
         6: .line 840
            invokevirtual com.android.internal.widget.LockPatternUtils.setKeyguardStoredPasswordQuality:(II)V
         7: .line 844
            aload 0 /* this */
            invokevirtual com.android.internal.widget.LockPatternUtils.getLockSettings:()Lcom/android/internal/widget/ILockSettings;
            aload 1 /* password */
            iconst_2
         8: .line 845
            aload 2 /* savedPassword */
            iload 3 /* requestedQuality */
            iload 4 /* userHandle */
         9: .line 844
            invokeinterface com.android.internal.widget.ILockSettings.setLockCredential:(Ljava/lang/String;ILjava/lang/String;II)V
        10: .line 846
            goto 15
      StackMap locals: com.android.internal.widget.LockPatternUtils java.lang.String java.lang.String int int int
      StackMap stack: java.lang.Exception
        11: astore 6 /* e */
        start local 6 // java.lang.Exception e
        12: .line 847
            ldc "LockPatternUtils"
            ldc "Unable to save lock password"
            aload 6 /* e */
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        13: .line 848
            aload 0 /* this */
            iload 5 /* currentQuality */
            iload 4 /* userHandle */
            invokevirtual com.android.internal.widget.LockPatternUtils.setKeyguardStoredPasswordQuality:(II)V
        14: .line 849
            return
        end local 6 // java.lang.Exception e
        15: .line 852
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* password */
        16: .line 853
            aload 1 /* password */
            invokestatic android.app.admin.PasswordMetrics.computeForPassword:(Ljava/lang/String;)Landroid/app/admin/PasswordMetrics;
            getfield android.app.admin.PasswordMetrics.quality:I
            iload 4 /* userHandle */
        17: .line 852
            invokevirtual com.android.internal.widget.LockPatternUtils.updateEncryptionPasswordIfNeeded:(Ljava/lang/String;II)V
        18: .line 854
            aload 0 /* this */
            aload 1 /* password */
            iload 4 /* userHandle */
            invokevirtual com.android.internal.widget.LockPatternUtils.updatePasswordHistory:(Ljava/lang/String;I)V
        19: .line 855
            aload 0 /* this */
            iload 4 /* userHandle */
            invokevirtual com.android.internal.widget.LockPatternUtils.onAfterChangingPassword:(I)V
        20: .line 856
            return
        end local 5 // int currentQuality
        end local 4 // int userHandle
        end local 3 // int requestedQuality
        end local 2 // java.lang.String savedPassword
        end local 1 // java.lang.String password
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   21     0              this  Lcom/android/internal/widget/LockPatternUtils;
            0   21     1          password  Ljava/lang/String;
            0   21     2     savedPassword  Ljava/lang/String;
            0   21     3  requestedQuality  I
            0   21     4        userHandle  I
            3   21     5    currentQuality  I
           12   15     6                 e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           7    10      11  Class java.lang.Exception
    MethodParameters:
                  Name  Flags
      password          
      savedPassword     
      requestedQuality  
      userHandle        

  private void updateEncryptionPasswordIfNeeded(java.lang.String, int, int);
    descriptor: (Ljava/lang/String;II)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=7, args_size=4
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // java.lang.String password
        start local 2 // int quality
        start local 3 // int userHandle
         0: .line 864
            iload 3 /* userHandle */
            ifne 16
         1: .line 865
            invokestatic com.android.internal.widget.LockPatternUtils.isDeviceEncryptionEnabled:()Z
            ifeq 16
         2: .line 866
            aload 0 /* this */
            iconst_1
            invokevirtual com.android.internal.widget.LockPatternUtils.shouldEncryptWithCredentials:(Z)Z
            ifne 5
         3: .line 867
            aload 0 /* this */
            invokevirtual com.android.internal.widget.LockPatternUtils.clearEncryptionPassword:()V
         4: .line 868
            goto 16
         5: .line 869
      StackMap locals:
      StackMap stack:
            iload 2 /* quality */
            ldc 131072
            if_icmpne 6
            iconst_1
            goto 7
      StackMap locals:
      StackMap stack:
         6: iconst_0
      StackMap locals:
      StackMap stack: int
         7: istore 4 /* numeric */
        start local 4 // boolean numeric
         8: .line 870
            iload 2 /* quality */
            ldc 196608
            if_icmpne 9
            iconst_1
            goto 10
      StackMap locals: int
      StackMap stack:
         9: iconst_0
      StackMap locals:
      StackMap stack: int
        10: istore 5 /* numericComplex */
        start local 5 // boolean numericComplex
        11: .line 871
            iload 4 /* numeric */
            ifne 12
            iload 5 /* numericComplex */
            ifeq 13
      StackMap locals: int
      StackMap stack:
        12: iconst_2
            goto 14
        13: .line 872
      StackMap locals:
      StackMap stack:
            iconst_0
        14: .line 871
      StackMap locals:
      StackMap stack: int
            istore 6 /* type */
        start local 6 // int type
        15: .line 873
            aload 0 /* this */
            iload 6 /* type */
            aload 1 /* password */
            invokevirtual com.android.internal.widget.LockPatternUtils.updateEncryptionPassword:(ILjava/lang/String;)V
        end local 6 // int type
        end local 5 // boolean numericComplex
        end local 4 // boolean numeric
        16: .line 876
      StackMap locals:
      StackMap stack:
            return
        end local 3 // int userHandle
        end local 2 // int quality
        end local 1 // java.lang.String password
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   17     0            this  Lcom/android/internal/widget/LockPatternUtils;
            0   17     1        password  Ljava/lang/String;
            0   17     2         quality  I
            0   17     3      userHandle  I
            8   16     4         numeric  Z
           11   16     5  numericComplex  Z
           15   16     6            type  I
    MethodParameters:
            Name  Flags
      password    
      quality     
      userHandle  

  private void updatePasswordHistory(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=10, args_size=3
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // java.lang.String password
        start local 2 // int userHandle
         0: .line 883
            aload 1 /* password */
            invokestatic android.text.TextUtils.isEmpty:(Ljava/lang/CharSequence;)Z
            ifeq 3
         1: .line 884
            ldc "LockPatternUtils"
            ldc "checkPasswordHistory: empty password"
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         2: .line 885
            return
         3: .line 889
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "lockscreen.passwordhistory"
            iload 2 /* userHandle */
            invokevirtual com.android.internal.widget.LockPatternUtils.getString:(Ljava/lang/String;I)Ljava/lang/String;
            astore 3 /* passwordHistory */
        start local 3 // java.lang.String passwordHistory
         4: .line 890
            aload 3 /* passwordHistory */
            ifnonnull 6
         5: .line 891
            ldc ""
            astore 3 /* passwordHistory */
         6: .line 893
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            iload 2 /* userHandle */
            invokevirtual com.android.internal.widget.LockPatternUtils.getRequestedPasswordHistoryLength:(I)I
            istore 4 /* passwordHistoryLength */
        start local 4 // int passwordHistoryLength
         7: .line 894
            iload 4 /* passwordHistoryLength */
            ifne 10
         8: .line 895
            ldc ""
            astore 3 /* passwordHistory */
         9: .line 896
            goto 27
        10: .line 897
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* password */
            iload 2 /* userHandle */
            invokevirtual com.android.internal.widget.LockPatternUtils.getPasswordHistoryHashFactor:(Ljava/lang/String;I)[B
            astore 5 /* hashFactor */
        start local 5 // byte[] hashFactor
        11: .line 898
            aload 0 /* this */
            aload 1 /* password */
            aload 5 /* hashFactor */
            iload 2 /* userHandle */
            invokevirtual com.android.internal.widget.LockPatternUtils.passwordToHistoryHash:(Ljava/lang/String;[BI)Ljava/lang/String;
            astore 6 /* hash */
        start local 6 // java.lang.String hash
        12: .line 899
            aload 6 /* hash */
            ifnonnull 15
        13: .line 900
            ldc "LockPatternUtils"
            ldc "Compute new style password hash failed, fallback to legacy style"
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        14: .line 901
            aload 0 /* this */
            aload 1 /* password */
            iload 2 /* userHandle */
            invokevirtual com.android.internal.widget.LockPatternUtils.legacyPasswordToHash:(Ljava/lang/String;I)Ljava/lang/String;
            astore 6 /* hash */
        15: .line 903
      StackMap locals: byte[] java.lang.String
      StackMap stack:
            aload 3 /* passwordHistory */
            invokestatic android.text.TextUtils.isEmpty:(Ljava/lang/CharSequence;)Z
            ifeq 18
        16: .line 904
            aload 6 /* hash */
            astore 3 /* passwordHistory */
        17: .line 905
            goto 27
        18: .line 906
      StackMap locals:
      StackMap stack:
            aload 3 /* passwordHistory */
            ldc ","
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 7 /* history */
        start local 7 // java.lang.String[] history
        19: .line 907
            new java.util.StringJoiner
            dup
            ldc ","
            invokespecial java.util.StringJoiner.<init>:(Ljava/lang/CharSequence;)V
            astore 8 /* joiner */
        start local 8 // java.util.StringJoiner joiner
        20: .line 908
            aload 8 /* joiner */
            aload 6 /* hash */
            invokevirtual java.util.StringJoiner.add:(Ljava/lang/CharSequence;)Ljava/util/StringJoiner;
            pop
        21: .line 909
            iconst_0
            istore 9 /* i */
        start local 9 // int i
        22: goto 25
        23: .line 910
      StackMap locals: java.lang.String[] java.util.StringJoiner int
      StackMap stack:
            aload 8 /* joiner */
            aload 7 /* history */
            iload 9 /* i */
            aaload
            invokevirtual java.util.StringJoiner.add:(Ljava/lang/CharSequence;)Ljava/util/StringJoiner;
            pop
        24: .line 909
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        25: iload 9 /* i */
            iload 4 /* passwordHistoryLength */
            iconst_1
            isub
            if_icmpge 26
            iload 9 /* i */
            aload 7 /* history */
            arraylength
            if_icmplt 23
        end local 9 // int i
        26: .line 912
      StackMap locals:
      StackMap stack:
            aload 8 /* joiner */
            invokevirtual java.util.StringJoiner.toString:()Ljava/lang/String;
            astore 3 /* passwordHistory */
        end local 8 // java.util.StringJoiner joiner
        end local 7 // java.lang.String[] history
        end local 6 // java.lang.String hash
        end local 5 // byte[] hashFactor
        27: .line 915
      StackMap locals: com.android.internal.widget.LockPatternUtils java.lang.String int java.lang.String int
      StackMap stack:
            aload 0 /* this */
            ldc "lockscreen.passwordhistory"
            aload 3 /* passwordHistory */
            iload 2 /* userHandle */
            invokevirtual com.android.internal.widget.LockPatternUtils.setString:(Ljava/lang/String;Ljava/lang/String;I)V
        28: .line 916
            return
        end local 4 // int passwordHistoryLength
        end local 3 // java.lang.String passwordHistory
        end local 2 // int userHandle
        end local 1 // java.lang.String password
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   29     0                   this  Lcom/android/internal/widget/LockPatternUtils;
            0   29     1               password  Ljava/lang/String;
            0   29     2             userHandle  I
            4   29     3        passwordHistory  Ljava/lang/String;
            7   29     4  passwordHistoryLength  I
           11   27     5             hashFactor  [B
           12   27     6                   hash  Ljava/lang/String;
           19   27     7                history  [Ljava/lang/String;
           20   27     8                 joiner  Ljava/util/StringJoiner;
           22   26     9                      i  I
    MethodParameters:
            Name  Flags
      password    
      userHandle  

  public static boolean isDeviceEncryptionEnabled();
    descriptor: ()Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 925
            invokestatic android.os.storage.StorageManager.isEncrypted:()Z
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static boolean isFileEncryptionEnabled();
    descriptor: ()Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 933
            invokestatic android.os.storage.StorageManager.isFileEncryptedNativeOrEmulated:()Z
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void clearEncryptionPassword();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.android.internal.widget.LockPatternUtils this
         0: .line 940
            aload 0 /* this */
            iconst_1
            aconst_null
            invokevirtual com.android.internal.widget.LockPatternUtils.updateEncryptionPassword:(ILjava/lang/String;)V
         1: .line 941
            return
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/android/internal/widget/LockPatternUtils;

  public int getKeyguardStoredPasswordQuality(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // int userHandle
         0: .line 950
            aload 0 /* this */
            ldc "lockscreen.password_type"
            lconst_0
            iload 1 /* userHandle */
            invokevirtual com.android.internal.widget.LockPatternUtils.getLong:(Ljava/lang/String;JI)J
            l2i
            ireturn
        end local 1 // int userHandle
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lcom/android/internal/widget/LockPatternUtils;
            0    1     1  userHandle  I
    MethodParameters:
            Name  Flags
      userHandle  

  private void setKeyguardStoredPasswordQuality(int, int);
    descriptor: (II)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // int quality
        start local 2 // int userHandle
         0: .line 954
            aload 0 /* this */
            ldc "lockscreen.password_type"
            iload 1 /* quality */
            i2l
            iload 2 /* userHandle */
            invokevirtual com.android.internal.widget.LockPatternUtils.setLong:(Ljava/lang/String;JI)V
         1: .line 955
            return
        end local 2 // int userHandle
        end local 1 // int quality
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lcom/android/internal/widget/LockPatternUtils;
            0    2     1     quality  I
            0    2     2  userHandle  I
    MethodParameters:
            Name  Flags
      quality     
      userHandle  

  private int computePasswordQuality(int, java.lang.String, int);
    descriptor: (ILjava/lang/String;I)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=6, args_size=4
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // int type
        start local 2 // java.lang.String credential
        start local 3 // int requestedQuality
         0: .line 964
            iload 1 /* type */
            iconst_2
            if_icmpne 4
         1: .line 965
            aload 2 /* credential */
            invokestatic android.app.admin.PasswordMetrics.computeForPassword:(Ljava/lang/String;)Landroid/app/admin/PasswordMetrics;
            getfield android.app.admin.PasswordMetrics.quality:I
            istore 5 /* computedQuality */
        start local 5 // int computedQuality
         2: .line 966
            iload 3 /* requestedQuality */
            iload 5 /* computedQuality */
            invokestatic java.lang.Math.max:(II)I
            istore 4 /* quality */
        end local 5 // int computedQuality
        start local 4 // int quality
         3: .line 967
            goto 8
        end local 4 // int quality
      StackMap locals:
      StackMap stack:
         4: iload 1 /* type */
            iconst_1
            if_icmpne 7
         5: .line 968
            ldc 65536
            istore 4 /* quality */
        start local 4 // int quality
         6: .line 969
            goto 8
        end local 4 // int quality
         7: .line 970
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* quality */
        start local 4 // int quality
         8: .line 972
      StackMap locals: int
      StackMap stack:
            iload 4 /* quality */
            ireturn
        end local 4 // int quality
        end local 3 // int requestedQuality
        end local 2 // java.lang.String credential
        end local 1 // int type
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    9     0              this  Lcom/android/internal/widget/LockPatternUtils;
            0    9     1              type  I
            0    9     2        credential  Ljava/lang/String;
            0    9     3  requestedQuality  I
            3    4     4           quality  I
            6    7     4           quality  I
            8    9     4           quality  I
            2    3     5   computedQuality  I
    MethodParameters:
                  Name  Flags
      type              
      credential        
      requestedQuality  

  public void setSeparateProfileChallengeEnabled(int, boolean, java.lang.String);
    descriptor: (IZLjava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // int userHandle
        start local 2 // boolean enabled
        start local 3 // java.lang.String managedUserPassword
         0: .line 986
            aload 0 /* this */
            iload 1 /* userHandle */
            invokevirtual com.android.internal.widget.LockPatternUtils.isManagedProfile:(I)Z
            ifne 2
         1: .line 987
            return
         2: .line 990
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.android.internal.widget.LockPatternUtils.getLockSettings:()Lcom/android/internal/widget/ILockSettings;
            iload 1 /* userHandle */
            iload 2 /* enabled */
         3: .line 991
            aload 3 /* managedUserPassword */
         4: .line 990
            invokeinterface com.android.internal.widget.ILockSettings.setSeparateProfileChallengeEnabled:(IZLjava/lang/String;)V
         5: .line 992
            aload 0 /* this */
            iload 1 /* userHandle */
            invokevirtual com.android.internal.widget.LockPatternUtils.onAfterChangingPassword:(I)V
         6: .line 993
            goto 9
      StackMap locals:
      StackMap stack: android.os.RemoteException
         7: pop
         8: .line 994
            ldc "LockPatternUtils"
            ldc "Couldn't update work profile challenge enabled"
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         9: .line 996
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.String managedUserPassword
        end local 2 // boolean enabled
        end local 1 // int userHandle
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   10     0                 this  Lcom/android/internal/widget/LockPatternUtils;
            0   10     1           userHandle  I
            0   10     2              enabled  Z
            0   10     3  managedUserPassword  Ljava/lang/String;
      Exception table:
        from    to  target  type
           2     6       7  Class android.os.RemoteException
    MethodParameters:
                     Name  Flags
      userHandle           
      enabled              
      managedUserPassword  

  public boolean isSeparateProfileChallengeEnabled(int);
    descriptor: (I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // int userHandle
         0: .line 1002
            aload 0 /* this */
            iload 1 /* userHandle */
            invokevirtual com.android.internal.widget.LockPatternUtils.isManagedProfile:(I)Z
            ifeq 1
            aload 0 /* this */
            iload 1 /* userHandle */
            invokevirtual com.android.internal.widget.LockPatternUtils.hasSeparateChallenge:(I)Z
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // int userHandle
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lcom/android/internal/widget/LockPatternUtils;
            0    2     1  userHandle  I
    MethodParameters:
            Name  Flags
      userHandle  

  public boolean isManagedProfileWithUnifiedChallenge(int);
    descriptor: (I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // int userHandle
         0: .line 1009
            aload 0 /* this */
            iload 1 /* userHandle */
            invokevirtual com.android.internal.widget.LockPatternUtils.isManagedProfile:(I)Z
            ifeq 1
            aload 0 /* this */
            iload 1 /* userHandle */
            invokevirtual com.android.internal.widget.LockPatternUtils.hasSeparateChallenge:(I)Z
            ifne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // int userHandle
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lcom/android/internal/widget/LockPatternUtils;
            0    2     1  userHandle  I
    MethodParameters:
            Name  Flags
      userHandle  

  public boolean isSeparateProfileChallengeAllowed(int);
    descriptor: (I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // int userHandle
         0: .line 1016
            aload 0 /* this */
            iload 1 /* userHandle */
            invokevirtual com.android.internal.widget.LockPatternUtils.isManagedProfile:(I)Z
            ifeq 3
         1: .line 1017
            aload 0 /* this */
            invokevirtual com.android.internal.widget.LockPatternUtils.getDevicePolicyManager:()Landroid/app/admin/DevicePolicyManager;
            iload 1 /* userHandle */
            invokevirtual android.app.admin.DevicePolicyManager.isSeparateProfileChallengeAllowed:(I)Z
            ifeq 3
         2: .line 1016
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_0
            ireturn
        end local 1 // int userHandle
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lcom/android/internal/widget/LockPatternUtils;
            0    4     1  userHandle  I
    MethodParameters:
            Name  Flags
      userHandle  

  public boolean isSeparateProfileChallengeAllowedToUnify(int);
    descriptor: (I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // int userHandle
         0: .line 1025
            aload 0 /* this */
            invokevirtual com.android.internal.widget.LockPatternUtils.getDevicePolicyManager:()Landroid/app/admin/DevicePolicyManager;
            iload 1 /* userHandle */
            invokevirtual android.app.admin.DevicePolicyManager.isProfileActivePasswordSufficientForParent:(I)Z
            ifeq 6
         1: .line 1026
            aload 0 /* this */
            invokevirtual com.android.internal.widget.LockPatternUtils.getUserManager:()Landroid/os/UserManager;
         2: .line 1027
            ldc "no_unified_password"
            iload 1 /* userHandle */
            invokestatic android.os.UserHandle.of:(I)Landroid/os/UserHandle;
         3: .line 1026
            invokevirtual android.os.UserManager.hasUserRestriction:(Ljava/lang/String;Landroid/os/UserHandle;)Z
         4: .line 1027
            ifne 6
         5: .line 1025
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         6: iconst_0
            ireturn
        end local 1 // int userHandle
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Lcom/android/internal/widget/LockPatternUtils;
            0    7     1  userHandle  I
    MethodParameters:
            Name  Flags
      userHandle  

  private boolean hasSeparateChallenge(int);
    descriptor: (I)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // int userHandle
         0: .line 1032
            aload 0 /* this */
            invokevirtual com.android.internal.widget.LockPatternUtils.getLockSettings:()Lcom/android/internal/widget/ILockSettings;
            iload 1 /* userHandle */
            invokeinterface com.android.internal.widget.ILockSettings.getSeparateProfileChallengeEnabled:(I)Z
         1: ireturn
         2: .line 1033
      StackMap locals:
      StackMap stack: android.os.RemoteException
            pop
         3: .line 1034
            ldc "LockPatternUtils"
            ldc "Couldn't get separate profile challenge enabled"
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         4: .line 1036
            iconst_0
            ireturn
        end local 1 // int userHandle
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lcom/android/internal/widget/LockPatternUtils;
            0    5     1  userHandle  I
      Exception table:
        from    to  target  type
           0     1       2  Class android.os.RemoteException
    MethodParameters:
            Name  Flags
      userHandle  

  private boolean isManagedProfile(int);
    descriptor: (I)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // int userHandle
         0: .line 1041
            aload 0 /* this */
            invokevirtual com.android.internal.widget.LockPatternUtils.getUserManager:()Landroid/os/UserManager;
            iload 1 /* userHandle */
            invokevirtual android.os.UserManager.getUserInfo:(I)Landroid/content/pm/UserInfo;
            astore 2 /* info */
        start local 2 // android.content.pm.UserInfo info
         1: .line 1042
            aload 2 /* info */
            ifnull 2
            aload 2 /* info */
            invokevirtual android.content.pm.UserInfo.isManagedProfile:()Z
            ifeq 2
            iconst_1
            ireturn
      StackMap locals: android.content.pm.UserInfo
      StackMap stack:
         2: iconst_0
            ireturn
        end local 2 // android.content.pm.UserInfo info
        end local 1 // int userHandle
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lcom/android/internal/widget/LockPatternUtils;
            0    3     1  userHandle  I
            1    3     2        info  Landroid/content/pm/UserInfo;
    MethodParameters:
            Name  Flags
      userHandle  

  public static java.util.List<com.android.internal.widget.LockPatternView$Cell> stringToPattern(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/List;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // java.lang.String string
         0: .line 1051
            aload 0 /* string */
            ifnonnull 2
         1: .line 1052
            aconst_null
            areturn
         2: .line 1055
      StackMap locals:
      StackMap stack:
            invokestatic com.google.android.collect.Lists.newArrayList:()Ljava/util/ArrayList;
            astore 1 /* result */
        start local 1 // java.util.List result
         3: .line 1057
            aload 0 /* string */
            invokevirtual java.lang.String.getBytes:()[B
            astore 2 /* bytes */
        start local 2 // byte[] bytes
         4: .line 1058
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         5: goto 9
         6: .line 1059
      StackMap locals: java.util.List byte[] int
      StackMap stack:
            aload 2 /* bytes */
            iload 3 /* i */
            baload
            bipush 49
            isub
            i2b
            istore 4 /* b */
        start local 4 // byte b
         7: .line 1060
            aload 1 /* result */
            iload 4 /* b */
            iconst_3
            idiv
            iload 4 /* b */
            iconst_3
            irem
            invokestatic com.android.internal.widget.LockPatternView$Cell.of:(II)Lcom/android/internal/widget/LockPatternView$Cell;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // byte b
         8: .line 1058
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 3 /* i */
            aload 2 /* bytes */
            arraylength
            if_icmplt 6
        end local 3 // int i
        10: .line 1062
            aload 1 /* result */
            areturn
        end local 2 // byte[] bytes
        end local 1 // java.util.List result
        end local 0 // java.lang.String string
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   11     0  string  Ljava/lang/String;
            3   11     1  result  Ljava/util/List<Lcom/android/internal/widget/LockPatternView$Cell;>;
            4   11     2   bytes  [B
            5   10     3       i  I
            7    8     4       b  B
    Signature: (Ljava/lang/String;)Ljava/util/List<Lcom/android/internal/widget/LockPatternView$Cell;>;
    MethodParameters:
        Name  Flags
      string  

  public static java.lang.String patternToString(java.util.List<com.android.internal.widget.LockPatternView$Cell>);
    descriptor: (Ljava/util/List;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // java.util.List pattern
         0: .line 1071
            aload 0 /* pattern */
            ifnonnull 2
         1: .line 1072
            ldc ""
            areturn
         2: .line 1074
      StackMap locals:
      StackMap stack:
            aload 0 /* pattern */
            invokeinterface java.util.List.size:()I
            istore 1 /* patternSize */
        start local 1 // int patternSize
         3: .line 1076
            iload 1 /* patternSize */
            newarray 8
            astore 2 /* res */
        start local 2 // byte[] res
         4: .line 1077
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         5: goto 9
         6: .line 1078
      StackMap locals: int byte[] int
      StackMap stack:
            aload 0 /* pattern */
            iload 3 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.android.internal.widget.LockPatternView$Cell
            astore 4 /* cell */
        start local 4 // com.android.internal.widget.LockPatternView$Cell cell
         7: .line 1079
            aload 2 /* res */
            iload 3 /* i */
            aload 4 /* cell */
            invokevirtual com.android.internal.widget.LockPatternView$Cell.getRow:()I
            iconst_3
            imul
            aload 4 /* cell */
            invokevirtual com.android.internal.widget.LockPatternView$Cell.getColumn:()I
            iadd
            bipush 49
            iadd
            i2b
            bastore
        end local 4 // com.android.internal.widget.LockPatternView$Cell cell
         8: .line 1077
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 3 /* i */
            iload 1 /* patternSize */
            if_icmplt 6
        end local 3 // int i
        10: .line 1081
            new java.lang.String
            dup
            aload 2 /* res */
            invokespecial java.lang.String.<init>:([B)V
            areturn
        end local 2 // byte[] res
        end local 1 // int patternSize
        end local 0 // java.util.List pattern
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   11     0      pattern  Ljava/util/List<Lcom/android/internal/widget/LockPatternView$Cell;>;
            3   11     1  patternSize  I
            4   11     2          res  [B
            5   10     3            i  I
            7    8     4         cell  Lcom/android/internal/widget/LockPatternView$Cell;
    Signature: (Ljava/util/List<Lcom/android/internal/widget/LockPatternView$Cell;>;)Ljava/lang/String;
    MethodParameters:
         Name  Flags
      pattern  

  public static java.lang.String patternStringToBaseZero(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // java.lang.String pattern
         0: .line 1085
            aload 0 /* pattern */
            ifnonnull 2
         1: .line 1086
            ldc ""
            areturn
         2: .line 1088
      StackMap locals:
      StackMap stack:
            aload 0 /* pattern */
            invokevirtual java.lang.String.length:()I
            istore 1 /* patternSize */
        start local 1 // int patternSize
         3: .line 1090
            iload 1 /* patternSize */
            newarray 8
            astore 2 /* res */
        start local 2 // byte[] res
         4: .line 1091
            aload 0 /* pattern */
            invokevirtual java.lang.String.getBytes:()[B
            astore 3 /* bytes */
        start local 3 // byte[] bytes
         5: .line 1092
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         6: goto 9
         7: .line 1093
      StackMap locals: java.lang.String int byte[] byte[] int
      StackMap stack:
            aload 2 /* res */
            iload 4 /* i */
            aload 3 /* bytes */
            iload 4 /* i */
            baload
            bipush 49
            isub
            i2b
            bastore
         8: .line 1092
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 4 /* i */
            iload 1 /* patternSize */
            if_icmplt 7
        end local 4 // int i
        10: .line 1095
            new java.lang.String
            dup
            aload 2 /* res */
            invokespecial java.lang.String.<init>:([B)V
            areturn
        end local 3 // byte[] bytes
        end local 2 // byte[] res
        end local 1 // int patternSize
        end local 0 // java.lang.String pattern
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   11     0      pattern  Ljava/lang/String;
            3   11     1  patternSize  I
            4   11     2          res  [B
            5   11     3        bytes  [B
            6   10     4            i  I
    MethodParameters:
         Name  Flags
      pattern  

  public static byte[] patternToHash(java.util.List<com.android.internal.widget.LockPatternView$Cell>);
    descriptor: (Ljava/util/List;)[B
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // java.util.List pattern
         0: .line 1106
            aload 0 /* pattern */
            ifnonnull 2
         1: .line 1107
            aconst_null
            areturn
         2: .line 1110
      StackMap locals:
      StackMap stack:
            aload 0 /* pattern */
            invokeinterface java.util.List.size:()I
            istore 1 /* patternSize */
        start local 1 // int patternSize
         3: .line 1111
            iload 1 /* patternSize */
            newarray 8
            astore 2 /* res */
        start local 2 // byte[] res
         4: .line 1112
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         5: goto 9
         6: .line 1113
      StackMap locals: int byte[] int
      StackMap stack:
            aload 0 /* pattern */
            iload 3 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.android.internal.widget.LockPatternView$Cell
            astore 4 /* cell */
        start local 4 // com.android.internal.widget.LockPatternView$Cell cell
         7: .line 1114
            aload 2 /* res */
            iload 3 /* i */
            aload 4 /* cell */
            invokevirtual com.android.internal.widget.LockPatternView$Cell.getRow:()I
            iconst_3
            imul
            aload 4 /* cell */
            invokevirtual com.android.internal.widget.LockPatternView$Cell.getColumn:()I
            iadd
            i2b
            bastore
        end local 4 // com.android.internal.widget.LockPatternView$Cell cell
         8: .line 1112
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 3 /* i */
            iload 1 /* patternSize */
            if_icmplt 6
        end local 3 // int i
        10: .line 1117
            ldc "SHA-1"
            invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
            astore 3 /* md */
        start local 3 // java.security.MessageDigest md
        11: .line 1118
            aload 3 /* md */
            aload 2 /* res */
            invokevirtual java.security.MessageDigest.digest:([B)[B
            astore 4 /* hash */
        start local 4 // byte[] hash
        12: .line 1119
            aload 4 /* hash */
        13: areturn
        end local 4 // byte[] hash
        end local 3 // java.security.MessageDigest md
        14: .line 1120
      StackMap locals: java.util.List int byte[]
      StackMap stack: java.security.NoSuchAlgorithmException
            pop
        15: .line 1121
            aload 2 /* res */
            areturn
        end local 2 // byte[] res
        end local 1 // int patternSize
        end local 0 // java.util.List pattern
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   16     0      pattern  Ljava/util/List<Lcom/android/internal/widget/LockPatternView$Cell;>;
            3   16     1  patternSize  I
            4   16     2          res  [B
            5   10     3            i  I
            7    8     4         cell  Lcom/android/internal/widget/LockPatternView$Cell;
           11   14     3           md  Ljava/security/MessageDigest;
           12   14     4         hash  [B
      Exception table:
        from    to  target  type
          10    13      14  Class java.security.NoSuchAlgorithmException
    Signature: (Ljava/util/List<Lcom/android/internal/widget/LockPatternView$Cell;>;)[B
    MethodParameters:
         Name  Flags
      pattern  

  private java.lang.String getSalt(int);
    descriptor: (I)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // int userId
         0: .line 1126
            aload 0 /* this */
            ldc "lockscreen.password_salt"
            lconst_0
            iload 1 /* userId */
            invokevirtual com.android.internal.widget.LockPatternUtils.getLong:(Ljava/lang/String;JI)J
            lstore 2 /* salt */
        start local 2 // long salt
         1: .line 1127
            lload 2 /* salt */
            lconst_0
            lcmp
            ifne 8
         2: .line 1129
            ldc "SHA1PRNG"
            invokestatic java.security.SecureRandom.getInstance:(Ljava/lang/String;)Ljava/security/SecureRandom;
            invokevirtual java.security.SecureRandom.nextLong:()J
            lstore 2 /* salt */
         3: .line 1130
            aload 0 /* this */
            ldc "lockscreen.password_salt"
            lload 2 /* salt */
            iload 1 /* userId */
            invokevirtual com.android.internal.widget.LockPatternUtils.setLong:(Ljava/lang/String;JI)V
         4: .line 1131
            ldc "LockPatternUtils"
            new java.lang.StringBuilder
            dup
            ldc "Initialized lock password salt for user: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* userId */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.v:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         5: .line 1132
            goto 8
      StackMap locals: com.android.internal.widget.LockPatternUtils int long
      StackMap stack: java.security.NoSuchAlgorithmException
         6: astore 4 /* e */
        start local 4 // java.security.NoSuchAlgorithmException e
         7: .line 1134
            new java.lang.IllegalStateException
            dup
            ldc "Couldn't get SecureRandom number"
            aload 4 /* e */
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.security.NoSuchAlgorithmException e
         8: .line 1137
      StackMap locals:
      StackMap stack:
            lload 2 /* salt */
            invokestatic java.lang.Long.toHexString:(J)Ljava/lang/String;
            areturn
        end local 2 // long salt
        end local 1 // int userId
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0    this  Lcom/android/internal/widget/LockPatternUtils;
            0    9     1  userId  I
            1    9     2    salt  J
            7    8     4       e  Ljava/security/NoSuchAlgorithmException;
      Exception table:
        from    to  target  type
           2     5       6  Class java.security.NoSuchAlgorithmException
    MethodParameters:
        Name  Flags
      userId  

  public java.lang.String legacyPasswordToHash(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.android.internal.widget.LockPatternUtils this
         0: .line 1163
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tHexEncoding cannot be resolved\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/android/internal/widget/LockPatternUtils;
    MethodParameters:
          Name  Flags
      password  
      userId    

  private java.lang.String passwordToHistoryHash(java.lang.String, byte[], int);
    descriptor: (Ljava/lang/String;[BI)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // com.android.internal.widget.LockPatternUtils this
         0: .line 1181
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tHexEncoding cannot be resolved\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/android/internal/widget/LockPatternUtils;
    MethodParameters:
                Name  Flags
      passwordToHash  
      hashFactor      
      userId          

  public boolean isSecure(int);
    descriptor: (I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // int userId
         0: .line 1192
            aload 0 /* this */
            iload 1 /* userId */
            invokevirtual com.android.internal.widget.LockPatternUtils.getKeyguardStoredPasswordQuality:(I)I
            istore 2 /* mode */
        start local 2 // int mode
         1: .line 1193
            aload 0 /* this */
            iload 2 /* mode */
            iload 1 /* userId */
            invokevirtual com.android.internal.widget.LockPatternUtils.isLockPatternEnabled:(II)Z
            ifne 2
            aload 0 /* this */
            iload 2 /* mode */
            iload 1 /* userId */
            invokevirtual com.android.internal.widget.LockPatternUtils.isLockPasswordEnabled:(II)Z
            ifne 2
            iconst_0
            ireturn
      StackMap locals: int
      StackMap stack:
         2: iconst_1
            ireturn
        end local 2 // int mode
        end local 1 // int userId
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lcom/android/internal/widget/LockPatternUtils;
            0    3     1  userId  I
            1    3     2    mode  I
    MethodParameters:
        Name  Flags
      userId  

  public boolean isLockPasswordEnabled(int);
    descriptor: (I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // int userId
         0: .line 1197
            aload 0 /* this */
            aload 0 /* this */
            iload 1 /* userId */
            invokevirtual com.android.internal.widget.LockPatternUtils.getKeyguardStoredPasswordQuality:(I)I
            iload 1 /* userId */
            invokevirtual com.android.internal.widget.LockPatternUtils.isLockPasswordEnabled:(II)Z
            ireturn
        end local 1 // int userId
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/android/internal/widget/LockPatternUtils;
            0    1     1  userId  I
    MethodParameters:
        Name  Flags
      userId  

  private boolean isLockPasswordEnabled(int, int);
    descriptor: (II)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // int mode
        start local 2 // int userId
         0: .line 1201
            iload 1 /* mode */
            ldc 262144
            if_icmpeq 7
         1: .line 1202
            iload 1 /* mode */
            ldc 131072
            if_icmpeq 7
         2: .line 1203
            iload 1 /* mode */
            ldc 196608
            if_icmpeq 7
         3: .line 1204
            iload 1 /* mode */
            ldc 327680
            if_icmpeq 7
         4: .line 1205
            iload 1 /* mode */
            ldc 393216
            if_icmpeq 7
         5: .line 1206
            iload 1 /* mode */
            ldc 524288
            if_icmpeq 7
         6: .line 1201
            iconst_0
            goto 8
      StackMap locals:
      StackMap stack:
         7: iconst_1
      StackMap locals:
      StackMap stack: int
         8: istore 3 /* passwordEnabled */
        start local 3 // boolean passwordEnabled
         9: .line 1207
            iload 3 /* passwordEnabled */
            ifeq 10
            aload 0 /* this */
            iload 2 /* userId */
            invokevirtual com.android.internal.widget.LockPatternUtils.savedPasswordExists:(I)Z
            ifeq 10
            iconst_1
            ireturn
      StackMap locals: int
      StackMap stack:
        10: iconst_0
            ireturn
        end local 3 // boolean passwordEnabled
        end local 2 // int userId
        end local 1 // int mode
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   11     0             this  Lcom/android/internal/widget/LockPatternUtils;
            0   11     1             mode  I
            0   11     2           userId  I
            9   11     3  passwordEnabled  Z
    MethodParameters:
        Name  Flags
      mode    
      userId  

  public boolean isLockPatternEnabled(int);
    descriptor: (I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // int userId
         0: .line 1214
            aload 0 /* this */
            aload 0 /* this */
            iload 1 /* userId */
            invokevirtual com.android.internal.widget.LockPatternUtils.getKeyguardStoredPasswordQuality:(I)I
            iload 1 /* userId */
            invokevirtual com.android.internal.widget.LockPatternUtils.isLockPatternEnabled:(II)Z
            ireturn
        end local 1 // int userId
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/android/internal/widget/LockPatternUtils;
            0    1     1  userId  I
    MethodParameters:
        Name  Flags
      userId  

  public boolean isLegacyLockPatternEnabled(int);
    descriptor: (I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // int userId
         0: .line 1222
            aload 0 /* this */
            ldc "legacy_lock_pattern_enabled"
            iconst_1
            iload 1 /* userId */
            invokevirtual com.android.internal.widget.LockPatternUtils.getBoolean:(Ljava/lang/String;ZI)Z
            ireturn
        end local 1 // int userId
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/android/internal/widget/LockPatternUtils;
            0    1     1  userId  I
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
        Name  Flags
      userId  

  public void setLegacyLockPatternEnabled(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // int userId
         0: .line 1227
            aload 0 /* this */
            ldc "lock_pattern_autolock"
            iconst_1
            iload 1 /* userId */
            invokevirtual com.android.internal.widget.LockPatternUtils.setBoolean:(Ljava/lang/String;ZI)V
         1: .line 1228
            return
        end local 1 // int userId
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/android/internal/widget/LockPatternUtils;
            0    2     1  userId  I
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
        Name  Flags
      userId  

  private boolean isLockPatternEnabled(int, int);
    descriptor: (II)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // int mode
        start local 2 // int userId
         0: .line 1231
            iload 1 /* mode */
            ldc 65536
            if_icmpne 1
            aload 0 /* this */
            iload 2 /* userId */
            invokevirtual com.android.internal.widget.LockPatternUtils.savedPatternExists:(I)Z
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 2 // int userId
        end local 1 // int mode
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/android/internal/widget/LockPatternUtils;
            0    2     1    mode  I
            0    2     2  userId  I
    MethodParameters:
        Name  Flags
      mode    
      userId  

  public boolean isVisiblePatternEnabled(int);
    descriptor: (I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // int userId
         0: .line 1238
            aload 0 /* this */
            ldc "lock_pattern_visible_pattern"
            iconst_0
            iload 1 /* userId */
            invokevirtual com.android.internal.widget.LockPatternUtils.getBoolean:(Ljava/lang/String;ZI)Z
            ireturn
        end local 1 // int userId
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/android/internal/widget/LockPatternUtils;
            0    1     1  userId  I
    MethodParameters:
        Name  Flags
      userId  

  public void setVisiblePatternEnabled(boolean, int);
    descriptor: (ZI)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // boolean enabled
        start local 2 // int userId
         0: .line 1245
            aload 0 /* this */
            ldc "lock_pattern_visible_pattern"
            iload 1 /* enabled */
            iload 2 /* userId */
            invokevirtual com.android.internal.widget.LockPatternUtils.setBoolean:(Ljava/lang/String;ZI)V
         1: .line 1248
            iload 2 /* userId */
            ifeq 3
         2: .line 1249
            return
         3: .line 1252
      StackMap locals:
      StackMap stack:
            ldc "mount"
            invokestatic android.os.ServiceManager.getService:(Ljava/lang/String;)Landroid/os/IBinder;
            astore 3 /* service */
        start local 3 // android.os.IBinder service
         4: .line 1253
            aload 3 /* service */
            ifnonnull 7
         5: .line 1254
            ldc "LockPatternUtils"
            ldc "Could not find the mount service to update the user info"
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         6: .line 1255
            return
         7: .line 1258
      StackMap locals: android.os.IBinder
      StackMap stack:
            aload 3 /* service */
            invokestatic android.os.storage.IStorageManager$Stub.asInterface:(Landroid/os/IBinder;)Landroid/os/storage/IStorageManager;
            astore 4 /* storageManager */
        start local 4 // android.os.storage.IStorageManager storageManager
         8: .line 1260
            aload 4 /* storageManager */
            ldc "PatternVisible"
            iload 1 /* enabled */
            ifeq 9
            ldc "1"
            goto 10
      StackMap locals: com.android.internal.widget.LockPatternUtils int int android.os.IBinder android.os.storage.IStorageManager
      StackMap stack: android.os.storage.IStorageManager java.lang.String
         9: ldc "0"
      StackMap locals: com.android.internal.widget.LockPatternUtils int int android.os.IBinder android.os.storage.IStorageManager
      StackMap stack: android.os.storage.IStorageManager java.lang.String java.lang.String
        10: invokeinterface android.os.storage.IStorageManager.setField:(Ljava/lang/String;Ljava/lang/String;)V
        11: .line 1261
            goto 14
      StackMap locals:
      StackMap stack: android.os.RemoteException
        12: astore 5 /* e */
        start local 5 // android.os.RemoteException e
        13: .line 1262
            ldc "LockPatternUtils"
            ldc "Error changing pattern visible state"
            aload 5 /* e */
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        end local 5 // android.os.RemoteException e
        14: .line 1264
      StackMap locals:
      StackMap stack:
            return
        end local 4 // android.os.storage.IStorageManager storageManager
        end local 3 // android.os.IBinder service
        end local 2 // int userId
        end local 1 // boolean enabled
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   15     0            this  Lcom/android/internal/widget/LockPatternUtils;
            0   15     1         enabled  Z
            0   15     2          userId  I
            4   15     3         service  Landroid/os/IBinder;
            8   15     4  storageManager  Landroid/os/storage/IStorageManager;
           13   14     5               e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           8    11      12  Class android.os.RemoteException
    MethodParameters:
         Name  Flags
      enabled  
      userId   

  public boolean isVisiblePatternEverChosen(int);
    descriptor: (I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // int userId
         0: .line 1267
            aload 0 /* this */
            ldc "lock_pattern_visible_pattern"
            iload 1 /* userId */
            invokevirtual com.android.internal.widget.LockPatternUtils.getString:(Ljava/lang/String;I)Ljava/lang/String;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // int userId
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/android/internal/widget/LockPatternUtils;
            0    2     1  userId  I
    MethodParameters:
        Name  Flags
      userId  

  public void setVisiblePasswordEnabled(boolean, int);
    descriptor: (ZI)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // boolean enabled
        start local 2 // int userId
         0: .line 1275
            iload 2 /* userId */
            ifeq 2
         1: .line 1276
            return
         2: .line 1279
      StackMap locals:
      StackMap stack:
            ldc "mount"
            invokestatic android.os.ServiceManager.getService:(Ljava/lang/String;)Landroid/os/IBinder;
            astore 3 /* service */
        start local 3 // android.os.IBinder service
         3: .line 1280
            aload 3 /* service */
            ifnonnull 6
         4: .line 1281
            ldc "LockPatternUtils"
            ldc "Could not find the mount service to update the user info"
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         5: .line 1282
            return
         6: .line 1285
      StackMap locals: android.os.IBinder
      StackMap stack:
            aload 3 /* service */
            invokestatic android.os.storage.IStorageManager$Stub.asInterface:(Landroid/os/IBinder;)Landroid/os/storage/IStorageManager;
            astore 4 /* storageManager */
        start local 4 // android.os.storage.IStorageManager storageManager
         7: .line 1287
            aload 4 /* storageManager */
            ldc "PasswordVisible"
            iload 1 /* enabled */
            ifeq 8
            ldc "1"
            goto 9
      StackMap locals: com.android.internal.widget.LockPatternUtils int int android.os.IBinder android.os.storage.IStorageManager
      StackMap stack: android.os.storage.IStorageManager java.lang.String
         8: ldc "0"
      StackMap locals: com.android.internal.widget.LockPatternUtils int int android.os.IBinder android.os.storage.IStorageManager
      StackMap stack: android.os.storage.IStorageManager java.lang.String java.lang.String
         9: invokeinterface android.os.storage.IStorageManager.setField:(Ljava/lang/String;Ljava/lang/String;)V
        10: .line 1288
            goto 13
      StackMap locals:
      StackMap stack: android.os.RemoteException
        11: astore 5 /* e */
        start local 5 // android.os.RemoteException e
        12: .line 1289
            ldc "LockPatternUtils"
            ldc "Error changing password visible state"
            aload 5 /* e */
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        end local 5 // android.os.RemoteException e
        13: .line 1291
      StackMap locals:
      StackMap stack:
            return
        end local 4 // android.os.storage.IStorageManager storageManager
        end local 3 // android.os.IBinder service
        end local 2 // int userId
        end local 1 // boolean enabled
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   14     0            this  Lcom/android/internal/widget/LockPatternUtils;
            0   14     1         enabled  Z
            0   14     2          userId  I
            3   14     3         service  Landroid/os/IBinder;
            7   14     4  storageManager  Landroid/os/storage/IStorageManager;
           12   13     5               e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           7    10      11  Class android.os.RemoteException
    MethodParameters:
         Name  Flags
      enabled  
      userId   

  public boolean isTactileFeedbackEnabled();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // com.android.internal.widget.LockPatternUtils this
         0: .line 1297
            aload 0 /* this */
            getfield com.android.internal.widget.LockPatternUtils.mContentResolver:Landroid/content/ContentResolver;
         1: .line 1298
            ldc "haptic_feedback_enabled"
            iconst_1
            bipush -2
         2: .line 1297
            invokestatic android.provider.Settings$System.getIntForUser:(Landroid/content/ContentResolver;Ljava/lang/String;II)I
            ifeq 3
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_0
            ireturn
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/android/internal/widget/LockPatternUtils;

  public long setLockoutAttemptDeadline(int, int);
    descriptor: (II)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // int userId
        start local 2 // int timeoutMs
         0: .line 1307
            invokestatic android.os.SystemClock.elapsedRealtime:()J
            iload 2 /* timeoutMs */
            i2l
            ladd
            lstore 3 /* deadline */
        start local 3 // long deadline
         1: .line 1308
            iload 1 /* userId */
            sipush -9999
            if_icmpne 3
         2: .line 1311
            lload 3 /* deadline */
            lreturn
         3: .line 1313
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            getfield com.android.internal.widget.LockPatternUtils.mLockoutDeadlines:Landroid/util/SparseLongArray;
            iload 1 /* userId */
            lload 3 /* deadline */
            invokevirtual android.util.SparseLongArray.put:(IJ)V
         4: .line 1314
            lload 3 /* deadline */
            lreturn
        end local 3 // long deadline
        end local 2 // int timeoutMs
        end local 1 // int userId
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lcom/android/internal/widget/LockPatternUtils;
            0    5     1     userId  I
            0    5     2  timeoutMs  I
            1    5     3   deadline  J
    MethodParameters:
           Name  Flags
      userId     
      timeoutMs  

  public long getLockoutAttemptDeadline(int);
    descriptor: (I)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // int userId
         0: .line 1323
            aload 0 /* this */
            getfield com.android.internal.widget.LockPatternUtils.mLockoutDeadlines:Landroid/util/SparseLongArray;
            iload 1 /* userId */
            lconst_0
            invokevirtual android.util.SparseLongArray.get:(IJ)J
            lstore 2 /* deadline */
        start local 2 // long deadline
         1: .line 1324
            invokestatic android.os.SystemClock.elapsedRealtime:()J
            lstore 4 /* now */
        start local 4 // long now
         2: .line 1325
            lload 2 /* deadline */
            lload 4 /* now */
            lcmp
            ifge 5
            lload 2 /* deadline */
            lconst_0
            lcmp
            ifeq 5
         3: .line 1327
            aload 0 /* this */
            getfield com.android.internal.widget.LockPatternUtils.mLockoutDeadlines:Landroid/util/SparseLongArray;
            iload 1 /* userId */
            lconst_0
            invokevirtual android.util.SparseLongArray.put:(IJ)V
         4: .line 1328
            lconst_0
            lreturn
         5: .line 1330
      StackMap locals: long long
      StackMap stack:
            lload 2 /* deadline */
            lreturn
        end local 4 // long now
        end local 2 // long deadline
        end local 1 // int userId
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lcom/android/internal/widget/LockPatternUtils;
            0    6     1    userId  I
            1    6     2  deadline  J
            2    6     4       now  J
    MethodParameters:
        Name  Flags
      userId  

  private boolean getBoolean(java.lang.String, boolean, int);
    descriptor: (Ljava/lang/String;ZI)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // java.lang.String secureSettingKey
        start local 2 // boolean defaultValue
        start local 3 // int userId
         0: .line 1335
            aload 0 /* this */
            invokevirtual com.android.internal.widget.LockPatternUtils.getLockSettings:()Lcom/android/internal/widget/ILockSettings;
            aload 1 /* secureSettingKey */
            iload 2 /* defaultValue */
            iload 3 /* userId */
            invokeinterface com.android.internal.widget.ILockSettings.getBoolean:(Ljava/lang/String;ZI)Z
         1: ireturn
         2: .line 1336
      StackMap locals:
      StackMap stack: android.os.RemoteException
            pop
         3: .line 1337
            iload 2 /* defaultValue */
            ireturn
        end local 3 // int userId
        end local 2 // boolean defaultValue
        end local 1 // java.lang.String secureSettingKey
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    4     0              this  Lcom/android/internal/widget/LockPatternUtils;
            0    4     1  secureSettingKey  Ljava/lang/String;
            0    4     2      defaultValue  Z
            0    4     3            userId  I
      Exception table:
        from    to  target  type
           0     1       2  Class android.os.RemoteException
    MethodParameters:
                  Name  Flags
      secureSettingKey  
      defaultValue      
      userId            

  private void setBoolean(java.lang.String, boolean, int);
    descriptor: (Ljava/lang/String;ZI)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // java.lang.String secureSettingKey
        start local 2 // boolean enabled
        start local 3 // int userId
         0: .line 1343
            aload 0 /* this */
            invokevirtual com.android.internal.widget.LockPatternUtils.getLockSettings:()Lcom/android/internal/widget/ILockSettings;
            aload 1 /* secureSettingKey */
            iload 2 /* enabled */
            iload 3 /* userId */
            invokeinterface com.android.internal.widget.ILockSettings.setBoolean:(Ljava/lang/String;ZI)V
         1: .line 1344
            goto 4
      StackMap locals:
      StackMap stack: android.os.RemoteException
         2: astore 4 /* re */
        start local 4 // android.os.RemoteException re
         3: .line 1346
            ldc "LockPatternUtils"
            new java.lang.StringBuilder
            dup
            ldc "Couldn't write boolean "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* secureSettingKey */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* re */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        end local 4 // android.os.RemoteException re
         4: .line 1348
      StackMap locals:
      StackMap stack:
            return
        end local 3 // int userId
        end local 2 // boolean enabled
        end local 1 // java.lang.String secureSettingKey
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    5     0              this  Lcom/android/internal/widget/LockPatternUtils;
            0    5     1  secureSettingKey  Ljava/lang/String;
            0    5     2           enabled  Z
            0    5     3            userId  I
            3    4     4                re  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           0     1       2  Class android.os.RemoteException
    MethodParameters:
                  Name  Flags
      secureSettingKey  
      enabled           
      userId            

  private long getLong(java.lang.String, long, int);
    descriptor: (Ljava/lang/String;JI)J
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // java.lang.String secureSettingKey
        start local 2 // long defaultValue
        start local 4 // int userHandle
         0: .line 1352
            aload 0 /* this */
            invokevirtual com.android.internal.widget.LockPatternUtils.getLockSettings:()Lcom/android/internal/widget/ILockSettings;
            aload 1 /* secureSettingKey */
            lload 2 /* defaultValue */
            iload 4 /* userHandle */
            invokeinterface com.android.internal.widget.ILockSettings.getLong:(Ljava/lang/String;JI)J
         1: lreturn
         2: .line 1353
      StackMap locals:
      StackMap stack: android.os.RemoteException
            pop
         3: .line 1354
            lload 2 /* defaultValue */
            lreturn
        end local 4 // int userHandle
        end local 2 // long defaultValue
        end local 1 // java.lang.String secureSettingKey
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    4     0              this  Lcom/android/internal/widget/LockPatternUtils;
            0    4     1  secureSettingKey  Ljava/lang/String;
            0    4     2      defaultValue  J
            0    4     4        userHandle  I
      Exception table:
        from    to  target  type
           0     1       2  Class android.os.RemoteException
    MethodParameters:
                  Name  Flags
      secureSettingKey  
      defaultValue      
      userHandle        

  private void setLong(java.lang.String, long, int);
    descriptor: (Ljava/lang/String;JI)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // java.lang.String secureSettingKey
        start local 2 // long value
        start local 4 // int userHandle
         0: .line 1360
            aload 0 /* this */
            invokevirtual com.android.internal.widget.LockPatternUtils.getLockSettings:()Lcom/android/internal/widget/ILockSettings;
            aload 1 /* secureSettingKey */
            lload 2 /* value */
            iload 4 /* userHandle */
            invokeinterface com.android.internal.widget.ILockSettings.setLong:(Ljava/lang/String;JI)V
         1: .line 1361
            goto 4
      StackMap locals:
      StackMap stack: android.os.RemoteException
         2: astore 5 /* re */
        start local 5 // android.os.RemoteException re
         3: .line 1363
            ldc "LockPatternUtils"
            new java.lang.StringBuilder
            dup
            ldc "Couldn't write long "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* secureSettingKey */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* re */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        end local 5 // android.os.RemoteException re
         4: .line 1365
      StackMap locals:
      StackMap stack:
            return
        end local 4 // int userHandle
        end local 2 // long value
        end local 1 // java.lang.String secureSettingKey
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    5     0              this  Lcom/android/internal/widget/LockPatternUtils;
            0    5     1  secureSettingKey  Ljava/lang/String;
            0    5     2             value  J
            0    5     4        userHandle  I
            3    4     5                re  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           0     1       2  Class android.os.RemoteException
    MethodParameters:
                  Name  Flags
      secureSettingKey  
      value             
      userHandle        

  private java.lang.String getString(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // java.lang.String secureSettingKey
        start local 2 // int userHandle
         0: .line 1369
            aload 0 /* this */
            invokevirtual com.android.internal.widget.LockPatternUtils.getLockSettings:()Lcom/android/internal/widget/ILockSettings;
            aload 1 /* secureSettingKey */
            aconst_null
            iload 2 /* userHandle */
            invokeinterface com.android.internal.widget.ILockSettings.getString:(Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String;
         1: areturn
         2: .line 1370
      StackMap locals:
      StackMap stack: android.os.RemoteException
            pop
         3: .line 1371
            aconst_null
            areturn
        end local 2 // int userHandle
        end local 1 // java.lang.String secureSettingKey
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    4     0              this  Lcom/android/internal/widget/LockPatternUtils;
            0    4     1  secureSettingKey  Ljava/lang/String;
            0    4     2        userHandle  I
      Exception table:
        from    to  target  type
           0     1       2  Class android.os.RemoteException
    MethodParameters:
                  Name  Flags
      secureSettingKey  
      userHandle        

  private void setString(java.lang.String, java.lang.String, int);
    descriptor: (Ljava/lang/String;Ljava/lang/String;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // java.lang.String secureSettingKey
        start local 2 // java.lang.String value
        start local 3 // int userHandle
         0: .line 1377
            aload 0 /* this */
            invokevirtual com.android.internal.widget.LockPatternUtils.getLockSettings:()Lcom/android/internal/widget/ILockSettings;
            aload 1 /* secureSettingKey */
            aload 2 /* value */
            iload 3 /* userHandle */
            invokeinterface com.android.internal.widget.ILockSettings.setString:(Ljava/lang/String;Ljava/lang/String;I)V
         1: .line 1378
            goto 4
      StackMap locals:
      StackMap stack: android.os.RemoteException
         2: astore 4 /* re */
        start local 4 // android.os.RemoteException re
         3: .line 1380
            ldc "LockPatternUtils"
            new java.lang.StringBuilder
            dup
            ldc "Couldn't write string "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* secureSettingKey */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* re */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        end local 4 // android.os.RemoteException re
         4: .line 1382
      StackMap locals:
      StackMap stack:
            return
        end local 3 // int userHandle
        end local 2 // java.lang.String value
        end local 1 // java.lang.String secureSettingKey
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    5     0              this  Lcom/android/internal/widget/LockPatternUtils;
            0    5     1  secureSettingKey  Ljava/lang/String;
            0    5     2             value  Ljava/lang/String;
            0    5     3        userHandle  I
            3    4     4                re  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           0     1       2  Class android.os.RemoteException
    MethodParameters:
                  Name  Flags
      secureSettingKey  
      value             
      userHandle        

  public void setPowerButtonInstantlyLocks(boolean, int);
    descriptor: (ZI)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // boolean enabled
        start local 2 // int userId
         0: .line 1385
            aload 0 /* this */
            ldc "lockscreen.power_button_instantly_locks"
            iload 1 /* enabled */
            iload 2 /* userId */
            invokevirtual com.android.internal.widget.LockPatternUtils.setBoolean:(Ljava/lang/String;ZI)V
         1: .line 1386
            return
        end local 2 // int userId
        end local 1 // boolean enabled
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lcom/android/internal/widget/LockPatternUtils;
            0    2     1  enabled  Z
            0    2     2   userId  I
    MethodParameters:
         Name  Flags
      enabled  
      userId   

  public boolean getPowerButtonInstantlyLocks(int);
    descriptor: (I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // int userId
         0: .line 1389
            aload 0 /* this */
            ldc "lockscreen.power_button_instantly_locks"
            iconst_1
            iload 1 /* userId */
            invokevirtual com.android.internal.widget.LockPatternUtils.getBoolean:(Ljava/lang/String;ZI)Z
            ireturn
        end local 1 // int userId
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/android/internal/widget/LockPatternUtils;
            0    1     1  userId  I
    MethodParameters:
        Name  Flags
      userId  

  public boolean isPowerButtonInstantlyLocksEverChosen(int);
    descriptor: (I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // int userId
         0: .line 1393
            aload 0 /* this */
            ldc "lockscreen.power_button_instantly_locks"
            iload 1 /* userId */
            invokevirtual com.android.internal.widget.LockPatternUtils.getString:(Ljava/lang/String;I)Ljava/lang/String;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // int userId
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/android/internal/widget/LockPatternUtils;
            0    2     1  userId  I
    MethodParameters:
        Name  Flags
      userId  

  public void setEnabledTrustAgents(java.util.Collection<android.content.ComponentName>, );
    descriptor: (Ljava/util/Collection;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // java.util.Collection activeTrustAgents
        start local 2 // int userId
         0: .line 1397
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 3 /* sb */
        start local 3 // java.lang.StringBuilder sb
         1: .line 1398
            aload 1 /* activeTrustAgents */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 5
            goto 6
      StackMap locals: com.android.internal.widget.LockPatternUtils java.util.Collection int java.lang.StringBuilder top java.util.Iterator
      StackMap stack:
         2: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast android.content.ComponentName
            astore 4 /* cn */
        start local 4 // android.content.ComponentName cn
         3: .line 1399
            aload 3 /* sb */
            invokevirtual java.lang.StringBuilder.length:()I
            ifle 5
         4: .line 1400
            aload 3 /* sb */
            bipush 44
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         5: .line 1402
      StackMap locals: com.android.internal.widget.LockPatternUtils java.util.Collection int java.lang.StringBuilder android.content.ComponentName java.util.Iterator
      StackMap stack:
            aload 3 /* sb */
            aload 4 /* cn */
            invokevirtual android.content.ComponentName.flattenToShortString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 4 // android.content.ComponentName cn
         6: .line 1398
      StackMap locals: com.android.internal.widget.LockPatternUtils java.util.Collection int java.lang.StringBuilder top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         7: .line 1404
            aload 0 /* this */
            ldc "lockscreen.enabledtrustagents"
            aload 3 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            iload 2 /* userId */
            invokevirtual com.android.internal.widget.LockPatternUtils.setString:(Ljava/lang/String;Ljava/lang/String;I)V
         8: .line 1405
            aload 0 /* this */
            invokevirtual com.android.internal.widget.LockPatternUtils.getTrustManager:()Landroid/app/trust/TrustManager;
            iload 2 /* userId */
            invokevirtual android.app.trust.TrustManager.reportEnabledTrustAgentsChanged:(I)V
         9: .line 1406
            return
        end local 3 // java.lang.StringBuilder sb
        end local 2 // int userId
        end local 1 // java.util.Collection activeTrustAgents
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   10     0               this  Lcom/android/internal/widget/LockPatternUtils;
            0   10     1  activeTrustAgents  Ljava/util/Collection<Landroid/content/ComponentName;>;
            0   10     2             userId  I
            1   10     3                 sb  Ljava/lang/StringBuilder;
            3    6     4                 cn  Landroid/content/ComponentName;
    Signature: (Ljava/util/Collection<Landroid/content/ComponentName;>;I)V
    MethodParameters:
                   Name  Flags
      activeTrustAgents  
      userId             

  public java.util.List<android.content.ComponentName> getEnabledTrustAgents(int);
    descriptor: (I)Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=9, args_size=2
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // int userId
         0: .line 1409
            aload 0 /* this */
            ldc "lockscreen.enabledtrustagents"
            iload 1 /* userId */
            invokevirtual com.android.internal.widget.LockPatternUtils.getString:(Ljava/lang/String;I)Ljava/lang/String;
            astore 2 /* serialized */
        start local 2 // java.lang.String serialized
         1: .line 1410
            aload 2 /* serialized */
            invokestatic android.text.TextUtils.isEmpty:(Ljava/lang/CharSequence;)Z
            ifeq 3
         2: .line 1411
            aconst_null
            areturn
         3: .line 1413
      StackMap locals: java.lang.String
      StackMap stack:
            aload 2 /* serialized */
            ldc ","
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 3 /* split */
        start local 3 // java.lang.String[] split
         4: .line 1414
            new java.util.ArrayList
            dup
            aload 3 /* split */
            arraylength
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 4 /* activeTrustAgents */
        start local 4 // java.util.ArrayList activeTrustAgents
         5: .line 1415
            aload 3 /* split */
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 10
      StackMap locals: com.android.internal.widget.LockPatternUtils int java.lang.String java.lang.String[] java.util.ArrayList top int int java.lang.String[]
      StackMap stack:
         6: aload 8
            iload 6
            aaload
            astore 5 /* s */
        start local 5 // java.lang.String s
         7: .line 1416
            aload 5 /* s */
            invokestatic android.text.TextUtils.isEmpty:(Ljava/lang/CharSequence;)Z
            ifne 9
         8: .line 1417
            aload 4 /* activeTrustAgents */
            aload 5 /* s */
            invokestatic android.content.ComponentName.unflattenFromString:(Ljava/lang/String;)Landroid/content/ComponentName;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 5 // java.lang.String s
         9: .line 1415
      StackMap locals:
      StackMap stack:
            iinc 6 1
      StackMap locals:
      StackMap stack:
        10: iload 6
            iload 7
            if_icmplt 6
        11: .line 1420
            aload 4 /* activeTrustAgents */
            areturn
        end local 4 // java.util.ArrayList activeTrustAgents
        end local 3 // java.lang.String[] split
        end local 2 // java.lang.String serialized
        end local 1 // int userId
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   12     0               this  Lcom/android/internal/widget/LockPatternUtils;
            0   12     1             userId  I
            1   12     2         serialized  Ljava/lang/String;
            4   12     3              split  [Ljava/lang/String;
            5   12     4  activeTrustAgents  Ljava/util/ArrayList<Landroid/content/ComponentName;>;
            7    9     5                  s  Ljava/lang/String;
    Signature: (I)Ljava/util/List<Landroid/content/ComponentName;>;
    MethodParameters:
        Name  Flags
      userId  

  public void requireCredentialEntry(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // int userId
         0: .line 1431
            aload 0 /* this */
            iconst_4
            iload 1 /* userId */
            invokevirtual com.android.internal.widget.LockPatternUtils.requireStrongAuth:(II)V
         1: .line 1432
            return
        end local 1 // int userId
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/android/internal/widget/LockPatternUtils;
            0    2     1  userId  I
    MethodParameters:
        Name  Flags
      userId  

  public void requireStrongAuth(int, int);
    descriptor: (II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // int strongAuthReason
        start local 2 // int userId
         0: .line 1446
            aload 0 /* this */
            invokevirtual com.android.internal.widget.LockPatternUtils.getLockSettings:()Lcom/android/internal/widget/ILockSettings;
            iload 1 /* strongAuthReason */
            iload 2 /* userId */
            invokeinterface com.android.internal.widget.ILockSettings.requireStrongAuth:(II)V
         1: .line 1447
            goto 4
      StackMap locals:
      StackMap stack: android.os.RemoteException
         2: astore 3 /* e */
        start local 3 // android.os.RemoteException e
         3: .line 1448
            ldc "LockPatternUtils"
            new java.lang.StringBuilder
            dup
            ldc "Error while requesting strong auth: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        end local 3 // android.os.RemoteException e
         4: .line 1450
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int userId
        end local 1 // int strongAuthReason
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    5     0              this  Lcom/android/internal/widget/LockPatternUtils;
            0    5     1  strongAuthReason  I
            0    5     2            userId  I
            3    4     3                 e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           0     1       2  Class android.os.RemoteException
    MethodParameters:
                  Name  Flags
      strongAuthReason  
      userId            

  private void onAfterChangingPassword(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // int userHandle
         0: .line 1453
            aload 0 /* this */
            invokevirtual com.android.internal.widget.LockPatternUtils.getTrustManager:()Landroid/app/trust/TrustManager;
            iload 1 /* userHandle */
            invokevirtual android.app.trust.TrustManager.reportEnabledTrustAgentsChanged:(I)V
         1: .line 1454
            return
        end local 1 // int userHandle
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lcom/android/internal/widget/LockPatternUtils;
            0    2     1  userHandle  I
    MethodParameters:
            Name  Flags
      userHandle  

  public boolean isCredentialRequiredToDecrypt(boolean);
    descriptor: (Z)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // boolean defaultValue
         0: .line 1457
            aload 0 /* this */
            getfield com.android.internal.widget.LockPatternUtils.mContentResolver:Landroid/content/ContentResolver;
         1: .line 1458
            ldc "require_password_to_decrypt"
            iconst_m1
         2: .line 1457
            invokestatic android.provider.Settings$Global.getInt:(Landroid/content/ContentResolver;Ljava/lang/String;I)I
            istore 2 /* value */
        start local 2 // int value
         3: .line 1459
            iload 2 /* value */
            iconst_m1
            if_icmpne 4
            iload 1 /* defaultValue */
            goto 6
      StackMap locals: int
      StackMap stack:
         4: iload 2 /* value */
            ifeq 5
            iconst_1
            goto 6
      StackMap locals:
      StackMap stack:
         5: iconst_0
      StackMap locals:
      StackMap stack: int
         6: ireturn
        end local 2 // int value
        end local 1 // boolean defaultValue
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    7     0          this  Lcom/android/internal/widget/LockPatternUtils;
            0    7     1  defaultValue  Z
            3    7     2         value  I
    MethodParameters:
              Name  Flags
      defaultValue  

  public void setCredentialRequiredToDecrypt(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // boolean required
         0: .line 1463
            aload 0 /* this */
            invokevirtual com.android.internal.widget.LockPatternUtils.getUserManager:()Landroid/os/UserManager;
            invokevirtual android.os.UserManager.isSystemUser:()Z
            ifne 4
            aload 0 /* this */
            invokevirtual com.android.internal.widget.LockPatternUtils.getUserManager:()Landroid/os/UserManager;
            invokevirtual android.os.UserManager.isPrimaryUser:()Z
            ifne 4
         1: .line 1464
            new java.lang.IllegalStateException
            dup
         2: .line 1465
            ldc "Only the system or primary user may call setCredentialRequiredForDecrypt()"
         3: .line 1464
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 1468
      StackMap locals:
      StackMap stack:
            invokestatic com.android.internal.widget.LockPatternUtils.isDeviceEncryptionEnabled:()Z
            ifeq 9
         5: .line 1469
            aload 0 /* this */
            getfield com.android.internal.widget.LockPatternUtils.mContext:Landroid/content/Context;
            invokevirtual android.content.Context.getContentResolver:()Landroid/content/ContentResolver;
         6: .line 1470
            ldc "require_password_to_decrypt"
            iload 1 /* required */
            ifeq 7
            iconst_1
            goto 8
      StackMap locals: com.android.internal.widget.LockPatternUtils int
      StackMap stack: android.content.ContentResolver java.lang.String
         7: iconst_0
         8: .line 1469
      StackMap locals: com.android.internal.widget.LockPatternUtils int
      StackMap stack: android.content.ContentResolver java.lang.String int
            invokestatic android.provider.Settings$Global.putInt:(Landroid/content/ContentResolver;Ljava/lang/String;I)Z
            pop
         9: .line 1472
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean required
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   10     0      this  Lcom/android/internal/widget/LockPatternUtils;
            0   10     1  required  Z
    MethodParameters:
          Name  Flags
      required  

  private boolean isDoNotAskCredentialsOnBootSet();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.android.internal.widget.LockPatternUtils this
         0: .line 1475
            aload 0 /* this */
            invokevirtual com.android.internal.widget.LockPatternUtils.getDevicePolicyManager:()Landroid/app/admin/DevicePolicyManager;
            invokevirtual android.app.admin.DevicePolicyManager.getDoNotAskCredentialsOnBoot:()Z
            ireturn
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/android/internal/widget/LockPatternUtils;

  private boolean shouldEncryptWithCredentials(boolean);
    descriptor: (Z)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // boolean defaultValue
         0: .line 1479
            aload 0 /* this */
            iload 1 /* defaultValue */
            invokevirtual com.android.internal.widget.LockPatternUtils.isCredentialRequiredToDecrypt:(Z)Z
            ifeq 1
            aload 0 /* this */
            invokevirtual com.android.internal.widget.LockPatternUtils.isDoNotAskCredentialsOnBootSet:()Z
            ifne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // boolean defaultValue
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lcom/android/internal/widget/LockPatternUtils;
            0    2     1  defaultValue  Z
    MethodParameters:
              Name  Flags
      defaultValue  

  private void throwIfCalledOnMainThread();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.android.internal.widget.LockPatternUtils this
         0: .line 1483
            invokestatic android.os.Looper.getMainLooper:()Landroid/os/Looper;
            invokevirtual android.os.Looper.isCurrentThread:()Z
            ifeq 2
         1: .line 1484
            new java.lang.IllegalStateException
            dup
            ldc "should not be called from the main thread."
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1486
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/android/internal/widget/LockPatternUtils;

  public void registerStrongAuthTracker(com.android.internal.widget.LockPatternUtils$StrongAuthTracker);
    descriptor: (Lcom/android/internal/widget/LockPatternUtils$StrongAuthTracker;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // com.android.internal.widget.LockPatternUtils$StrongAuthTracker strongAuthTracker
         0: .line 1490
            aload 0 /* this */
            invokevirtual com.android.internal.widget.LockPatternUtils.getLockSettings:()Lcom/android/internal/widget/ILockSettings;
            aload 1 /* strongAuthTracker */
            getfield com.android.internal.widget.LockPatternUtils$StrongAuthTracker.mStub:Landroid/app/trust/IStrongAuthTracker$Stub;
            invokeinterface com.android.internal.widget.ILockSettings.registerStrongAuthTracker:(Landroid/app/trust/IStrongAuthTracker;)V
         1: .line 1491
            goto 4
      StackMap locals:
      StackMap stack: android.os.RemoteException
         2: pop
         3: .line 1492
            new java.lang.RuntimeException
            dup
            ldc "Could not register StrongAuthTracker"
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 1494
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.android.internal.widget.LockPatternUtils$StrongAuthTracker strongAuthTracker
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    5     0               this  Lcom/android/internal/widget/LockPatternUtils;
            0    5     1  strongAuthTracker  Lcom/android/internal/widget/LockPatternUtils$StrongAuthTracker;
      Exception table:
        from    to  target  type
           0     1       2  Class android.os.RemoteException
    MethodParameters:
                   Name  Flags
      strongAuthTracker  final

  public void unregisterStrongAuthTracker(com.android.internal.widget.LockPatternUtils$StrongAuthTracker);
    descriptor: (Lcom/android/internal/widget/LockPatternUtils$StrongAuthTracker;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // com.android.internal.widget.LockPatternUtils$StrongAuthTracker strongAuthTracker
         0: .line 1498
            aload 0 /* this */
            invokevirtual com.android.internal.widget.LockPatternUtils.getLockSettings:()Lcom/android/internal/widget/ILockSettings;
            aload 1 /* strongAuthTracker */
            getfield com.android.internal.widget.LockPatternUtils$StrongAuthTracker.mStub:Landroid/app/trust/IStrongAuthTracker$Stub;
            invokeinterface com.android.internal.widget.ILockSettings.unregisterStrongAuthTracker:(Landroid/app/trust/IStrongAuthTracker;)V
         1: .line 1499
            goto 4
      StackMap locals:
      StackMap stack: android.os.RemoteException
         2: astore 2 /* e */
        start local 2 // android.os.RemoteException e
         3: .line 1500
            ldc "LockPatternUtils"
            ldc "Could not unregister StrongAuthTracker"
            aload 2 /* e */
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        end local 2 // android.os.RemoteException e
         4: .line 1502
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.android.internal.widget.LockPatternUtils$StrongAuthTracker strongAuthTracker
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    5     0               this  Lcom/android/internal/widget/LockPatternUtils;
            0    5     1  strongAuthTracker  Lcom/android/internal/widget/LockPatternUtils$StrongAuthTracker;
            3    4     2                  e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           0     1       2  Class android.os.RemoteException
    MethodParameters:
                   Name  Flags
      strongAuthTracker  final

  public int getStrongAuthForUser(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // int userId
         0: .line 1509
            aload 0 /* this */
            invokevirtual com.android.internal.widget.LockPatternUtils.getLockSettings:()Lcom/android/internal/widget/ILockSettings;
            iload 1 /* userId */
            invokeinterface com.android.internal.widget.ILockSettings.getStrongAuthForUser:(I)I
         1: ireturn
         2: .line 1510
      StackMap locals:
      StackMap stack: android.os.RemoteException
            astore 2 /* e */
        start local 2 // android.os.RemoteException e
         3: .line 1511
            ldc "LockPatternUtils"
            ldc "Could not get StrongAuth"
            aload 2 /* e */
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
         4: .line 1512
            aload 0 /* this */
            getfield com.android.internal.widget.LockPatternUtils.mContext:Landroid/content/Context;
            invokestatic com.android.internal.widget.LockPatternUtils$StrongAuthTracker.getDefaultFlags:(Landroid/content/Context;)I
            ireturn
        end local 2 // android.os.RemoteException e
        end local 1 // int userId
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lcom/android/internal/widget/LockPatternUtils;
            0    5     1  userId  I
            3    5     2       e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           0     1       2  Class android.os.RemoteException
    MethodParameters:
        Name  Flags
      userId  

  public boolean isTrustAllowedForUser(int);
    descriptor: (I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // int userId
         0: .line 1520
            aload 0 /* this */
            iload 1 /* userId */
            invokevirtual com.android.internal.widget.LockPatternUtils.getStrongAuthForUser:(I)I
            ifne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // int userId
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/android/internal/widget/LockPatternUtils;
            0    2     1  userId  I
    MethodParameters:
        Name  Flags
      userId  

  public boolean isFingerprintAllowedForUser(int);
    descriptor: (I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // int userId
         0: .line 1527
            aload 0 /* this */
            iload 1 /* userId */
            invokevirtual com.android.internal.widget.LockPatternUtils.getStrongAuthForUser:(I)I
            bipush -5
            iand
            ifne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // int userId
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/android/internal/widget/LockPatternUtils;
            0    2     1  userId  I
    MethodParameters:
        Name  Flags
      userId  

  public boolean isUserInLockdown(int);
    descriptor: (I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // int userId
         0: .line 1531
            aload 0 /* this */
            iload 1 /* userId */
            invokevirtual com.android.internal.widget.LockPatternUtils.getStrongAuthForUser:(I)I
         1: .line 1532
            bipush 32
         2: .line 1531
            if_icmpne 3
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_0
            ireturn
        end local 1 // int userId
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lcom/android/internal/widget/LockPatternUtils;
            0    4     1  userId  I
    MethodParameters:
        Name  Flags
      userId  

  private com.android.internal.widget.ICheckCredentialProgressCallback wrapCallback(com.android.internal.widget.LockPatternUtils$CheckCredentialProgressCallback);
    descriptor: (Lcom/android/internal/widget/LockPatternUtils$CheckCredentialProgressCallback;)Lcom/android/internal/widget/ICheckCredentialProgressCallback;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // com.android.internal.widget.LockPatternUtils$CheckCredentialProgressCallback callback
         0: .line 1537
            aload 1 /* callback */
            ifnonnull 2
         1: .line 1538
            aconst_null
            areturn
         2: .line 1540
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.android.internal.widget.LockPatternUtils.mHandler:Landroid/os/Handler;
            ifnonnull 4
         3: .line 1541
            new java.lang.IllegalStateException
            dup
            ldc "Must construct LockPatternUtils on a looper thread to use progress callbacks."
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 1544
      StackMap locals:
      StackMap stack:
            new com.android.internal.widget.LockPatternUtils$2
            dup
            aload 0 /* this */
            aload 1 /* callback */
            invokespecial com.android.internal.widget.LockPatternUtils$2.<init>:(Lcom/android/internal/widget/LockPatternUtils;Lcom/android/internal/widget/LockPatternUtils$CheckCredentialProgressCallback;)V
            areturn
        end local 1 // com.android.internal.widget.LockPatternUtils$CheckCredentialProgressCallback callback
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lcom/android/internal/widget/LockPatternUtils;
            0    5     1  callback  Lcom/android/internal/widget/LockPatternUtils$CheckCredentialProgressCallback;
    MethodParameters:
          Name  Flags
      callback  final

  private com.android.internal.widget.LockSettingsInternal getLockSettingsInternal();
    descriptor: ()Lcom/android/internal/widget/LockSettingsInternal;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.android.internal.widget.LockPatternUtils this
         0: .line 1555
            ldc Lcom/android/internal/widget/LockSettingsInternal;
            invokestatic com.android.server.LocalServices.getService:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast com.android.internal.widget.LockSettingsInternal
            astore 1 /* service */
        start local 1 // com.android.internal.widget.LockSettingsInternal service
         1: .line 1556
            aload 1 /* service */
            ifnonnull 3
         2: .line 1557
            new java.lang.SecurityException
            dup
            ldc "Only available to system server itself"
            invokespecial java.lang.SecurityException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 1559
      StackMap locals: com.android.internal.widget.LockSettingsInternal
      StackMap stack:
            aload 1 /* service */
            areturn
        end local 1 // com.android.internal.widget.LockSettingsInternal service
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lcom/android/internal/widget/LockPatternUtils;
            1    4     1  service  Lcom/android/internal/widget/LockSettingsInternal;

  public long addEscrowToken(byte[], int);
    descriptor: ([BI)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // byte[] token
        start local 2 // int userId
         0: .line 1574
            aload 0 /* this */
            invokevirtual com.android.internal.widget.LockPatternUtils.getLockSettingsInternal:()Lcom/android/internal/widget/LockSettingsInternal;
            aload 1 /* token */
            iload 2 /* userId */
            invokevirtual com.android.internal.widget.LockSettingsInternal.addEscrowToken:([BI)J
            lreturn
        end local 2 // int userId
        end local 1 // byte[] token
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/android/internal/widget/LockPatternUtils;
            0    1     1   token  [B
            0    1     2  userId  I
    MethodParameters:
        Name  Flags
      token   
      userId  

  public boolean removeEscrowToken(long, int);
    descriptor: (JI)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // long handle
        start local 3 // int userId
         0: .line 1586
            aload 0 /* this */
            invokevirtual com.android.internal.widget.LockPatternUtils.getLockSettingsInternal:()Lcom/android/internal/widget/LockSettingsInternal;
            lload 1 /* handle */
            iload 3 /* userId */
            invokevirtual com.android.internal.widget.LockSettingsInternal.removeEscrowToken:(JI)Z
            ireturn
        end local 3 // int userId
        end local 1 // long handle
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/android/internal/widget/LockPatternUtils;
            0    1     1  handle  J
            0    1     3  userId  I
    MethodParameters:
        Name  Flags
      handle  
      userId  

  public boolean isEscrowTokenActive(long, int);
    descriptor: (JI)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // long handle
        start local 3 // int userId
         0: .line 1596
            aload 0 /* this */
            invokevirtual com.android.internal.widget.LockPatternUtils.getLockSettingsInternal:()Lcom/android/internal/widget/LockSettingsInternal;
            lload 1 /* handle */
            iload 3 /* userId */
            invokevirtual com.android.internal.widget.LockSettingsInternal.isEscrowTokenActive:(JI)Z
            ireturn
        end local 3 // int userId
        end local 1 // long handle
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/android/internal/widget/LockPatternUtils;
            0    1     1  handle  J
            0    1     3  userId  I
    MethodParameters:
        Name  Flags
      handle  
      userId  

  public boolean setLockCredentialWithToken(java.lang.String, int, int, long, byte[], int);
    descriptor: (Ljava/lang/String;IIJ[BI)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=10, args_size=7
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // java.lang.String credential
        start local 2 // int type
        start local 3 // int requestedQuality
        start local 4 // long tokenHandle
        start local 6 // byte[] token
        start local 7 // int userId
         0: .line 1615
            aload 0 /* this */
            invokevirtual com.android.internal.widget.LockPatternUtils.getLockSettingsInternal:()Lcom/android/internal/widget/LockSettingsInternal;
            astore 8 /* localService */
        start local 8 // com.android.internal.widget.LockSettingsInternal localService
         1: .line 1616
            iload 2 /* type */
            iconst_m1
            if_icmpeq 15
         2: .line 1617
            aload 1 /* credential */
            invokestatic android.text.TextUtils.isEmpty:(Ljava/lang/CharSequence;)Z
            ifne 3
            aload 1 /* credential */
            invokevirtual java.lang.String.length:()I
            iconst_4
            if_icmpge 4
         3: .line 1618
      StackMap locals: com.android.internal.widget.LockSettingsInternal
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "password must not be null and at least of length 4"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 1621
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 2 /* type */
            aload 1 /* credential */
            iload 3 /* requestedQuality */
            invokevirtual com.android.internal.widget.LockPatternUtils.computePasswordQuality:(ILjava/lang/String;I)I
            istore 9 /* quality */
        start local 9 // int quality
         5: .line 1622
            aload 8 /* localService */
            aload 1 /* credential */
            iload 2 /* type */
            lload 4 /* tokenHandle */
         6: .line 1623
            aload 6 /* token */
            iload 9 /* quality */
            iload 7 /* userId */
         7: .line 1622
            invokevirtual com.android.internal.widget.LockSettingsInternal.setLockCredentialWithToken:(Ljava/lang/String;IJ[BII)Z
         8: .line 1623
            ifne 10
         9: .line 1624
            iconst_0
            ireturn
        10: .line 1626
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iload 9 /* quality */
            iload 7 /* userId */
            invokevirtual com.android.internal.widget.LockPatternUtils.setKeyguardStoredPasswordQuality:(II)V
        11: .line 1628
            aload 0 /* this */
            aload 1 /* credential */
            iload 9 /* quality */
            iload 7 /* userId */
            invokevirtual com.android.internal.widget.LockPatternUtils.updateEncryptionPasswordIfNeeded:(Ljava/lang/String;II)V
        12: .line 1629
            aload 0 /* this */
            aload 1 /* credential */
            iload 7 /* userId */
            invokevirtual com.android.internal.widget.LockPatternUtils.updatePasswordHistory:(Ljava/lang/String;I)V
        13: .line 1630
            aload 0 /* this */
            iload 7 /* userId */
            invokevirtual com.android.internal.widget.LockPatternUtils.onAfterChangingPassword:(I)V
        end local 9 // int quality
        14: .line 1631
            goto 26
        15: .line 1632
      StackMap locals:
      StackMap stack:
            aload 1 /* credential */
            invokestatic android.text.TextUtils.isEmpty:(Ljava/lang/CharSequence;)Z
            ifne 17
        16: .line 1633
            new java.lang.IllegalArgumentException
            dup
            ldc "password must be emtpy for NONE type"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        17: .line 1635
      StackMap locals:
      StackMap stack:
            aload 8 /* localService */
            aconst_null
            iconst_m1
        18: .line 1636
            lload 4 /* tokenHandle */
            aload 6 /* token */
            iconst_0
            iload 7 /* userId */
        19: .line 1635
            invokevirtual com.android.internal.widget.LockSettingsInternal.setLockCredentialWithToken:(Ljava/lang/String;IJ[BII)Z
        20: .line 1636
            ifne 22
        21: .line 1637
            iconst_0
            ireturn
        22: .line 1639
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            iload 7 /* userId */
            invokevirtual com.android.internal.widget.LockPatternUtils.setKeyguardStoredPasswordQuality:(II)V
        23: .line 1641
            iload 7 /* userId */
            ifne 26
        24: .line 1643
            aload 0 /* this */
            iconst_1
            aconst_null
            invokevirtual com.android.internal.widget.LockPatternUtils.updateEncryptionPassword:(ILjava/lang/String;)V
        25: .line 1644
            aload 0 /* this */
            iconst_0
            invokevirtual com.android.internal.widget.LockPatternUtils.setCredentialRequiredToDecrypt:(Z)V
        26: .line 1647
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 7 /* userId */
            invokevirtual com.android.internal.widget.LockPatternUtils.onAfterChangingPassword:(I)V
        27: .line 1648
            iconst_1
            ireturn
        end local 8 // com.android.internal.widget.LockSettingsInternal localService
        end local 7 // int userId
        end local 6 // byte[] token
        end local 4 // long tokenHandle
        end local 3 // int requestedQuality
        end local 2 // int type
        end local 1 // java.lang.String credential
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   28     0              this  Lcom/android/internal/widget/LockPatternUtils;
            0   28     1        credential  Ljava/lang/String;
            0   28     2              type  I
            0   28     3  requestedQuality  I
            0   28     4       tokenHandle  J
            0   28     6             token  [B
            0   28     7            userId  I
            1   28     8      localService  Lcom/android/internal/widget/LockSettingsInternal;
            5   14     9           quality  I
    MethodParameters:
                  Name  Flags
      credential        
      type              
      requestedQuality  
      tokenHandle       
      token             
      userId            

  public boolean unlockUserWithToken(long, byte[], int);
    descriptor: (J[BI)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // com.android.internal.widget.LockPatternUtils this
        start local 1 // long tokenHandle
        start local 3 // byte[] token
        start local 4 // int userId
         0: .line 1662
            aload 0 /* this */
            invokevirtual com.android.internal.widget.LockPatternUtils.getLockSettingsInternal:()Lcom/android/internal/widget/LockSettingsInternal;
            lload 1 /* tokenHandle */
            aload 3 /* token */
            iload 4 /* userId */
            invokevirtual com.android.internal.widget.LockSettingsInternal.unlockUserWithToken:(J[BI)Z
            ireturn
        end local 4 // int userId
        end local 3 // byte[] token
        end local 1 // long tokenHandle
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lcom/android/internal/widget/LockPatternUtils;
            0    1     1  tokenHandle  J
            0    1     3        token  [B
            0    1     4       userId  I
    MethodParameters:
             Name  Flags
      tokenHandle  
      token        
      userId       

  public void enableSyntheticPassword();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // com.android.internal.widget.LockPatternUtils this
         0: .line 1838
            aload 0 /* this */
            ldc "enable-sp"
            lconst_1
            iconst_0
            invokevirtual com.android.internal.widget.LockPatternUtils.setLong:(Ljava/lang/String;JI)V
         1: .line 1839
            return
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/android/internal/widget/LockPatternUtils;

  public void disableSyntheticPassword();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // com.android.internal.widget.LockPatternUtils this
         0: .line 1842
            aload 0 /* this */
            ldc "enable-sp"
            lconst_0
            iconst_0
            invokevirtual com.android.internal.widget.LockPatternUtils.setLong:(Ljava/lang/String;JI)V
         1: .line 1843
            return
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/android/internal/widget/LockPatternUtils;

  public boolean isSyntheticPasswordEnabled();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // com.android.internal.widget.LockPatternUtils this
         0: .line 1846
            aload 0 /* this */
            ldc "enable-sp"
            lconst_0
            iconst_0
            invokevirtual com.android.internal.widget.LockPatternUtils.getLong:(Ljava/lang/String;JI)J
            lconst_0
            lcmp
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // com.android.internal.widget.LockPatternUtils this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/android/internal/widget/LockPatternUtils;

  public static boolean userOwnsFrpCredential(android.content.Context, android.content.pm.UserInfo);
    descriptor: (Landroid/content/Context;Landroid/content/pm/UserInfo;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // android.content.Context context
        start local 1 // android.content.pm.UserInfo info
         0: .line 1850
            aload 1 /* info */
            ifnull 1
            aload 1 /* info */
            invokevirtual android.content.pm.UserInfo.isPrimary:()Z
            ifeq 1
            aload 1 /* info */
            invokevirtual android.content.pm.UserInfo.isAdmin:()Z
            ifeq 1
            aload 0 /* context */
            invokestatic com.android.internal.widget.LockPatternUtils.frpCredentialEnabled:(Landroid/content/Context;)Z
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // android.content.pm.UserInfo info
        end local 0 // android.content.Context context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0  context  Landroid/content/Context;
            0    2     1     info  Landroid/content/pm/UserInfo;
    MethodParameters:
         Name  Flags
      context  
      info     

  public static boolean frpCredentialEnabled(android.content.Context);
    descriptor: (Landroid/content/Context;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
         0: .line 1855
            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
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    MethodParameters:
         Name  Flags
      context  
}
SourceFile: "LockPatternUtils.java"
NestMembers:
  com.android.internal.widget.LockPatternUtils$1  com.android.internal.widget.LockPatternUtils$2  com.android.internal.widget.LockPatternUtils$CheckCredentialProgressCallback  com.android.internal.widget.LockPatternUtils$RequestThrottledException  com.android.internal.widget.LockPatternUtils$StrongAuthTracker  com.android.internal.widget.LockPatternUtils$StrongAuthTracker$1  com.android.internal.widget.LockPatternUtils$StrongAuthTracker$H  com.android.internal.widget.LockPatternUtils$StrongAuthTracker$StrongAuthFlags
InnerClasses:
  public abstract Stub = android.os.storage.IStorageManager$Stub of android.os.storage.IStorageManager
  public final Global = android.provider.Settings$Global of android.provider.Settings
  public final System = android.provider.Settings$System of android.provider.Settings
  public abstract Stub = com.android.internal.widget.ILockSettings$Stub of com.android.internal.widget.ILockSettings
  com.android.internal.widget.LockPatternUtils$1
  com.android.internal.widget.LockPatternUtils$2
  public abstract CheckCredentialProgressCallback = com.android.internal.widget.LockPatternUtils$CheckCredentialProgressCallback of com.android.internal.widget.LockPatternUtils
  public final RequestThrottledException = com.android.internal.widget.LockPatternUtils$RequestThrottledException of com.android.internal.widget.LockPatternUtils
  public StrongAuthTracker = com.android.internal.widget.LockPatternUtils$StrongAuthTracker of com.android.internal.widget.LockPatternUtils
  public final Cell = com.android.internal.widget.LockPatternView$Cell of com.android.internal.widget.LockPatternView