Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5a128c4f authored by Jeff Sharkey's avatar Jeff Sharkey Committed by android-build-merger
Browse files

Merge "Refactoring FBE APIs based on council feedback." into nyc-dev

am: a0a58a2f

* commit 'a0a58a2f':
  Refactoring FBE APIs based on council feedback.
parents 205ec381 a0a58a2f
Loading
Loading
Loading
Loading
+19 −25
Original line number Diff line number Diff line
@@ -443,6 +443,7 @@ package android {
    field public static final deprecated int dayOfWeekTextAppearance = 16843925; // 0x1010495
    field public static final int debuggable = 16842767; // 0x101000f
    field public static final int defaultHeight = 16844021; // 0x10104f5
    field public static final int defaultToDeviceProtectedStorage = 16844037; // 0x1010505
    field public static final int defaultValue = 16843245; // 0x10101ed
    field public static final int defaultWidth = 16844020; // 0x10104f4
    field public static final int delay = 16843212; // 0x10101cc
@@ -462,6 +463,7 @@ package android {
    field public static final int dialogTheme = 16843528; // 0x1010308
    field public static final int dialogTitle = 16843250; // 0x10101f2
    field public static final int digits = 16843110; // 0x1010166
    field public static final int directBootAware = 16844038; // 0x1010506
    field public static final int direction = 16843217; // 0x10101d1
    field public static final deprecated int directionDescriptions = 16843681; // 0x10103a1
    field public static final int directionPriority = 16843218; // 0x10101d2
@@ -510,7 +512,6 @@ package android {
    field public static final int ellipsize = 16842923; // 0x10100ab
    field public static final int ems = 16843096; // 0x1010158
    field public static final int enabled = 16842766; // 0x101000e
    field public static final int encryptionAware = 16844038; // 0x1010506
    field public static final int end = 16843996; // 0x10104dc
    field public static final int endColor = 16843166; // 0x101019e
    field public static final int endX = 16844051; // 0x1010513
@@ -575,7 +576,6 @@ package android {
    field public static final int fontFamily = 16843692; // 0x10103ac
    field public static final int fontFeatureSettings = 16843959; // 0x10104b7
    field public static final int footerDividersEnabled = 16843311; // 0x101022f
    field public static final int forceDeviceEncrypted = 16844037; // 0x1010505
    field public static final int foreground = 16843017; // 0x1010109
    field public static final int foregroundGravity = 16843264; // 0x1010200
    field public static final int foregroundTint = 16843885; // 0x101046d
@@ -7974,7 +7974,7 @@ package android.content {
    method public abstract int checkUriPermission(android.net.Uri, java.lang.String, java.lang.String, int, int, int);
    method public abstract deprecated void clearWallpaper() throws java.io.IOException;
    method public abstract android.content.Context createConfigurationContext(android.content.res.Configuration);
    method public abstract android.content.Context createDeviceEncryptedStorageContext();
    method public abstract android.content.Context createDeviceProtectedStorageContext();
    method public abstract android.content.Context createDisplayContext(android.view.Display);
    method public abstract android.content.Context createPackageContext(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException;
    method public abstract java.lang.String[] databaseList();
@@ -8032,10 +8032,10 @@ package android.content {
    method public abstract deprecated int getWallpaperDesiredMinimumHeight();
    method public abstract deprecated int getWallpaperDesiredMinimumWidth();
    method public abstract void grantUriPermission(java.lang.String, android.net.Uri, int);
    method public abstract boolean isDeviceEncryptedStorage();
    method public abstract boolean isDeviceProtectedStorage();
    method public boolean isRestricted();
    method public abstract boolean migrateDatabaseFrom(android.content.Context, java.lang.String);
    method public abstract boolean migrateSharedPreferencesFrom(android.content.Context, java.lang.String);
    method public abstract boolean moveDatabaseFrom(android.content.Context, java.lang.String);
    method public abstract boolean moveSharedPreferencesFrom(android.content.Context, java.lang.String);
    method public final android.content.res.TypedArray obtainStyledAttributes(int[]);
    method public final android.content.res.TypedArray obtainStyledAttributes(int, int[]) throws android.content.res.Resources.NotFoundException;
    method public final android.content.res.TypedArray obtainStyledAttributes(android.util.AttributeSet, int[]);
@@ -8170,7 +8170,7 @@ package android.content {
    method public int checkUriPermission(android.net.Uri, java.lang.String, java.lang.String, int, int, int);
    method public deprecated void clearWallpaper() throws java.io.IOException;
    method public android.content.Context createConfigurationContext(android.content.res.Configuration);
    method public android.content.Context createDeviceEncryptedStorageContext();
    method public android.content.Context createDeviceProtectedStorageContext();
    method public android.content.Context createDisplayContext(android.view.Display);
    method public android.content.Context createPackageContext(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException;
    method public java.lang.String[] databaseList();
@@ -8222,9 +8222,9 @@ package android.content {
    method public deprecated int getWallpaperDesiredMinimumHeight();
    method public deprecated int getWallpaperDesiredMinimumWidth();
    method public void grantUriPermission(java.lang.String, android.net.Uri, int);
    method public boolean isDeviceEncryptedStorage();
    method public boolean migrateDatabaseFrom(android.content.Context, java.lang.String);
    method public boolean migrateSharedPreferencesFrom(android.content.Context, java.lang.String);
    method public boolean isDeviceProtectedStorage();
    method public boolean moveDatabaseFrom(android.content.Context, java.lang.String);
    method public boolean moveSharedPreferencesFrom(android.content.Context, java.lang.String);
    method public java.io.FileInputStream openFileInput(java.lang.String) throws java.io.FileNotFoundException;
    method public java.io.FileOutputStream openFileOutput(java.lang.String, int) throws java.io.FileNotFoundException;
    method public android.database.sqlite.SQLiteDatabase openOrCreateDatabase(java.lang.String, int, android.database.sqlite.SQLiteDatabase.CursorFactory);
@@ -9315,10 +9315,9 @@ package android.content.pm {
    field public java.lang.String backupAgentName;
    field public java.lang.String className;
    field public int compatibleWidthLimitDp;
    field public java.lang.String credentialEncryptedDataDir;
    field public java.lang.String dataDir;
    field public int descriptionRes;
    field public java.lang.String deviceEncryptedDataDir;
    field public java.lang.String deviceProtectedDataDir;
    field public boolean enabled;
    field public int flags;
    field public int largestWidthLimitDp;
@@ -9355,8 +9354,8 @@ package android.content.pm {
    method public boolean isEnabled();
    field public android.content.pm.ApplicationInfo applicationInfo;
    field public int descriptionRes;
    field public boolean directBootAware;
    field public boolean enabled;
    field public boolean encryptionAware;
    field public boolean exported;
    field public java.lang.String processName;
  }
@@ -9827,11 +9826,10 @@ package android.content.pm {
    field public static final int GET_URI_PERMISSION_PATTERNS = 2048; // 0x800
    field public static final int MATCH_ALL = 131072; // 0x20000
    field public static final int MATCH_DEFAULT_ONLY = 65536; // 0x10000
    field public static final int MATCH_DIRECT_BOOT_AWARE = 524288; // 0x80000
    field public static final int MATCH_DIRECT_BOOT_UNAWARE = 262144; // 0x40000
    field public static final int MATCH_DISABLED_COMPONENTS = 512; // 0x200
    field public static final int MATCH_DISABLED_UNTIL_USED_COMPONENTS = 32768; // 0x8000
    field public static final int MATCH_ENCRYPTION_AWARE = 524288; // 0x80000
    field public static final int MATCH_ENCRYPTION_AWARE_AND_UNAWARE = 786432; // 0xc0000
    field public static final int MATCH_ENCRYPTION_UNAWARE = 262144; // 0x40000
    field public static final int MATCH_SYSTEM_ONLY = 1048576; // 0x100000
    field public static final int MATCH_UNINSTALLED_PACKAGES = 8192; // 0x2000
    field public static final long MAXIMUM_VERIFICATION_TIMEOUT = 3600000L; // 0x36ee80L
@@ -29370,10 +29368,6 @@ package android.os {
    method public boolean isSystemUser();
    method public boolean isUserAGoat();
    method public boolean isUserRunning(android.os.UserHandle);
    method public deprecated boolean isUserRunningAndLocked();
    method public deprecated boolean isUserRunningAndLocked(android.os.UserHandle);
    method public deprecated boolean isUserRunningAndUnlocked();
    method public deprecated boolean isUserRunningAndUnlocked(android.os.UserHandle);
    method public boolean isUserRunningOrStopping(android.os.UserHandle);
    method public boolean isUserUnlocked();
    method public boolean isUserUnlocked(android.os.UserHandle);
@@ -29935,7 +29929,7 @@ package android.preference {
    method public void setSharedPreferencesMode(int);
    method public void setSharedPreferencesName(java.lang.String);
    method public void setStorageDefault();
    method public void setStorageDeviceEncrypted();
    method public void setStorageDeviceProtected();
    field public static final java.lang.String KEY_HAS_SET_DEFAULT_VALUES = "_has_set_default_values";
    field public static final java.lang.String METADATA_KEY_PREFERENCES = "android.preference";
  }
@@ -37912,7 +37906,7 @@ package android.test.mock {
    method public int checkUriPermission(android.net.Uri, java.lang.String, java.lang.String, int, int, int);
    method public void clearWallpaper();
    method public android.content.Context createConfigurationContext(android.content.res.Configuration);
    method public android.content.Context createDeviceEncryptedStorageContext();
    method public android.content.Context createDeviceProtectedStorageContext();
    method public android.content.Context createDisplayContext(android.view.Display);
    method public android.content.Context createPackageContext(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException;
    method public java.lang.String[] databaseList();
@@ -37963,9 +37957,9 @@ package android.test.mock {
    method public int getWallpaperDesiredMinimumHeight();
    method public int getWallpaperDesiredMinimumWidth();
    method public void grantUriPermission(java.lang.String, android.net.Uri, int);
    method public boolean isDeviceEncryptedStorage();
    method public boolean migrateDatabaseFrom(android.content.Context, java.lang.String);
    method public boolean migrateSharedPreferencesFrom(android.content.Context, java.lang.String);
    method public boolean isDeviceProtectedStorage();
    method public boolean moveDatabaseFrom(android.content.Context, java.lang.String);
    method public boolean moveSharedPreferencesFrom(android.content.Context, java.lang.String);
    method public java.io.FileInputStream openFileInput(java.lang.String) throws java.io.FileNotFoundException;
    method public java.io.FileOutputStream openFileOutput(java.lang.String, int) throws java.io.FileNotFoundException;
    method public android.database.sqlite.SQLiteDatabase openOrCreateDatabase(java.lang.String, int, android.database.sqlite.SQLiteDatabase.CursorFactory);
+41 −0
Original line number Diff line number Diff line
@@ -17,12 +17,40 @@ package android.app.admin {

}

package android.content {

  public abstract class Context {
    method public deprecated android.content.Context createCredentialEncryptedStorageContext();
    method public deprecated android.content.Context createDeviceEncryptedStorageContext();
    method public deprecated boolean isCredentialEncryptedStorage();
    method public deprecated boolean isDeviceEncryptedStorage();
    method public deprecated boolean migrateDatabaseFrom(android.content.Context, java.lang.String);
    method public deprecated boolean migrateSharedPreferencesFrom(android.content.Context, java.lang.String);
  }

}

package android.content.pm {

  public class ApplicationInfo extends android.content.pm.PackageItemInfo implements android.os.Parcelable {
    field public deprecated java.lang.String credentialEncryptedDataDir;
    field public deprecated java.lang.String deviceEncryptedDataDir;
  }

  public class ComponentInfo extends android.content.pm.PackageItemInfo {
    field public deprecated boolean encryptionAware;
  }

  public class PackageInfo implements android.os.Parcelable {
    field public static final int REQUESTED_PERMISSION_REQUIRED = 1; // 0x1
  }

  public abstract class PackageManager {
    field public static final deprecated int MATCH_ENCRYPTION_AWARE = 524288; // 0x80000
    field public static final deprecated int MATCH_ENCRYPTION_AWARE_AND_UNAWARE = 786432; // 0xc0000
    field public static final deprecated int MATCH_ENCRYPTION_UNAWARE = 262144; // 0x40000
  }

}

package android.database {
@@ -98,6 +126,19 @@ package android.os {
    method public android.graphics.drawable.Drawable getBadgedDrawableForUser(android.graphics.drawable.Drawable, android.os.UserHandle, android.graphics.Rect, int);
    method public android.graphics.drawable.Drawable getBadgedIconForUser(android.graphics.drawable.Drawable, android.os.UserHandle);
    method public java.lang.CharSequence getBadgedLabelForUser(java.lang.CharSequence, android.os.UserHandle);
    method public deprecated boolean isUserRunningAndLocked();
    method public deprecated boolean isUserRunningAndLocked(android.os.UserHandle);
    method public deprecated boolean isUserRunningAndUnlocked();
    method public deprecated boolean isUserRunningAndUnlocked(android.os.UserHandle);
  }

}

package android.preference {

  public class PreferenceManager {
    method public deprecated void setStorageCredentialEncrypted();
    method public deprecated void setStorageDeviceEncrypted();
  }

}
+27 −32
Original line number Diff line number Diff line
@@ -538,6 +538,7 @@ package android {
    field public static final deprecated int dayOfWeekTextAppearance = 16843925; // 0x1010495
    field public static final int debuggable = 16842767; // 0x101000f
    field public static final int defaultHeight = 16844021; // 0x10104f5
    field public static final int defaultToDeviceProtectedStorage = 16844037; // 0x1010505
    field public static final int defaultValue = 16843245; // 0x10101ed
    field public static final int defaultWidth = 16844020; // 0x10104f4
    field public static final int delay = 16843212; // 0x10101cc
@@ -557,6 +558,7 @@ package android {
    field public static final int dialogTheme = 16843528; // 0x1010308
    field public static final int dialogTitle = 16843250; // 0x10101f2
    field public static final int digits = 16843110; // 0x1010166
    field public static final int directBootAware = 16844038; // 0x1010506
    field public static final int direction = 16843217; // 0x10101d1
    field public static final deprecated int directionDescriptions = 16843681; // 0x10103a1
    field public static final int directionPriority = 16843218; // 0x10101d2
@@ -605,7 +607,6 @@ package android {
    field public static final int ellipsize = 16842923; // 0x10100ab
    field public static final int ems = 16843096; // 0x1010158
    field public static final int enabled = 16842766; // 0x101000e
    field public static final int encryptionAware = 16844038; // 0x1010506
    field public static final int end = 16843996; // 0x10104dc
    field public static final int endColor = 16843166; // 0x101019e
    field public static final int endX = 16844051; // 0x1010513
@@ -670,7 +671,6 @@ package android {
    field public static final int fontFamily = 16843692; // 0x10103ac
    field public static final int fontFeatureSettings = 16843959; // 0x10104b7
    field public static final int footerDividersEnabled = 16843311; // 0x101022f
    field public static final int forceDeviceEncrypted = 16844037; // 0x1010505
    field public static final int foreground = 16843017; // 0x1010109
    field public static final int foregroundGravity = 16843264; // 0x1010200
    field public static final int foregroundTint = 16843885; // 0x101046d
@@ -8272,8 +8272,8 @@ package android.content {
    method public abstract int checkUriPermission(android.net.Uri, java.lang.String, java.lang.String, int, int, int);
    method public abstract deprecated void clearWallpaper() throws java.io.IOException;
    method public abstract android.content.Context createConfigurationContext(android.content.res.Configuration);
    method public abstract android.content.Context createCredentialEncryptedStorageContext();
    method public abstract android.content.Context createDeviceEncryptedStorageContext();
    method public abstract android.content.Context createCredentialProtectedStorageContext();
    method public abstract android.content.Context createDeviceProtectedStorageContext();
    method public abstract android.content.Context createDisplayContext(android.view.Display);
    method public abstract android.content.Context createPackageContext(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException;
    method public abstract java.lang.String[] databaseList();
@@ -8331,11 +8331,11 @@ package android.content {
    method public abstract deprecated int getWallpaperDesiredMinimumHeight();
    method public abstract deprecated int getWallpaperDesiredMinimumWidth();
    method public abstract void grantUriPermission(java.lang.String, android.net.Uri, int);
    method public abstract boolean isCredentialEncryptedStorage();
    method public abstract boolean isDeviceEncryptedStorage();
    method public abstract boolean isCredentialProtectedStorage();
    method public abstract boolean isDeviceProtectedStorage();
    method public boolean isRestricted();
    method public abstract boolean migrateDatabaseFrom(android.content.Context, java.lang.String);
    method public abstract boolean migrateSharedPreferencesFrom(android.content.Context, java.lang.String);
    method public abstract boolean moveDatabaseFrom(android.content.Context, java.lang.String);
    method public abstract boolean moveSharedPreferencesFrom(android.content.Context, java.lang.String);
    method public final android.content.res.TypedArray obtainStyledAttributes(int[]);
    method public final android.content.res.TypedArray obtainStyledAttributes(int, int[]) throws android.content.res.Resources.NotFoundException;
    method public final android.content.res.TypedArray obtainStyledAttributes(android.util.AttributeSet, int[]);
@@ -8479,8 +8479,8 @@ package android.content {
    method public int checkUriPermission(android.net.Uri, java.lang.String, java.lang.String, int, int, int);
    method public deprecated void clearWallpaper() throws java.io.IOException;
    method public android.content.Context createConfigurationContext(android.content.res.Configuration);
    method public android.content.Context createCredentialEncryptedStorageContext();
    method public android.content.Context createDeviceEncryptedStorageContext();
    method public android.content.Context createCredentialProtectedStorageContext();
    method public android.content.Context createDeviceProtectedStorageContext();
    method public android.content.Context createDisplayContext(android.view.Display);
    method public android.content.Context createPackageContext(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException;
    method public java.lang.String[] databaseList();
@@ -8532,10 +8532,10 @@ package android.content {
    method public deprecated int getWallpaperDesiredMinimumHeight();
    method public deprecated int getWallpaperDesiredMinimumWidth();
    method public void grantUriPermission(java.lang.String, android.net.Uri, int);
    method public boolean isCredentialEncryptedStorage();
    method public boolean isDeviceEncryptedStorage();
    method public boolean migrateDatabaseFrom(android.content.Context, java.lang.String);
    method public boolean migrateSharedPreferencesFrom(android.content.Context, java.lang.String);
    method public boolean isCredentialProtectedStorage();
    method public boolean isDeviceProtectedStorage();
    method public boolean moveDatabaseFrom(android.content.Context, java.lang.String);
    method public boolean moveSharedPreferencesFrom(android.content.Context, java.lang.String);
    method public java.io.FileInputStream openFileInput(java.lang.String) throws java.io.FileNotFoundException;
    method public java.io.FileOutputStream openFileOutput(java.lang.String, int) throws java.io.FileNotFoundException;
    method public android.database.sqlite.SQLiteDatabase openOrCreateDatabase(java.lang.String, int, android.database.sqlite.SQLiteDatabase.CursorFactory);
@@ -9638,10 +9638,10 @@ package android.content.pm {
    field public java.lang.String backupAgentName;
    field public java.lang.String className;
    field public int compatibleWidthLimitDp;
    field public java.lang.String credentialEncryptedDataDir;
    field public java.lang.String credentialProtectedDataDir;
    field public java.lang.String dataDir;
    field public int descriptionRes;
    field public java.lang.String deviceEncryptedDataDir;
    field public java.lang.String deviceProtectedDataDir;
    field public boolean enabled;
    field public int flags;
    field public int largestWidthLimitDp;
@@ -9678,8 +9678,8 @@ package android.content.pm {
    method public boolean isEnabled();
    field public android.content.pm.ApplicationInfo applicationInfo;
    field public int descriptionRes;
    field public boolean directBootAware;
    field public boolean enabled;
    field public boolean encryptionAware;
    field public boolean exported;
    field public java.lang.String processName;
  }
@@ -10216,11 +10216,10 @@ package android.content.pm {
    field public static final int MASK_PERMISSION_FLAGS = 255; // 0xff
    field public static final int MATCH_ALL = 131072; // 0x20000
    field public static final int MATCH_DEFAULT_ONLY = 65536; // 0x10000
    field public static final int MATCH_DIRECT_BOOT_AWARE = 524288; // 0x80000
    field public static final int MATCH_DIRECT_BOOT_UNAWARE = 262144; // 0x40000
    field public static final int MATCH_DISABLED_COMPONENTS = 512; // 0x200
    field public static final int MATCH_DISABLED_UNTIL_USED_COMPONENTS = 32768; // 0x8000
    field public static final int MATCH_ENCRYPTION_AWARE = 524288; // 0x80000
    field public static final int MATCH_ENCRYPTION_AWARE_AND_UNAWARE = 786432; // 0xc0000
    field public static final int MATCH_ENCRYPTION_UNAWARE = 262144; // 0x40000
    field public static final int MATCH_SYSTEM_ONLY = 1048576; // 0x100000
    field public static final int MATCH_UNINSTALLED_PACKAGES = 8192; // 0x2000
    field public static final long MAXIMUM_VERIFICATION_TIMEOUT = 3600000L; // 0x36ee80L
@@ -31716,10 +31715,6 @@ package android.os {
    method public boolean isSystemUser();
    method public boolean isUserAGoat();
    method public boolean isUserRunning(android.os.UserHandle);
    method public deprecated boolean isUserRunningAndLocked();
    method public deprecated boolean isUserRunningAndLocked(android.os.UserHandle);
    method public deprecated boolean isUserRunningAndUnlocked();
    method public deprecated boolean isUserRunningAndUnlocked(android.os.UserHandle);
    method public boolean isUserRunningOrStopping(android.os.UserHandle);
    method public boolean isUserUnlocked();
    method public boolean isUserUnlocked(android.os.UserHandle);
@@ -32280,9 +32275,9 @@ package android.preference {
    method public static void setDefaultValues(android.content.Context, java.lang.String, int, int, boolean);
    method public void setSharedPreferencesMode(int);
    method public void setSharedPreferencesName(java.lang.String);
    method public void setStorageCredentialEncrypted();
    method public void setStorageCredentialProtected();
    method public void setStorageDefault();
    method public void setStorageDeviceEncrypted();
    method public void setStorageDeviceProtected();
    field public static final java.lang.String KEY_HAS_SET_DEFAULT_VALUES = "_has_set_default_values";
    field public static final java.lang.String METADATA_KEY_PREFERENCES = "android.preference";
  }
@@ -40659,8 +40654,8 @@ package android.test.mock {
    method public int checkUriPermission(android.net.Uri, java.lang.String, java.lang.String, int, int, int);
    method public void clearWallpaper();
    method public android.content.Context createConfigurationContext(android.content.res.Configuration);
    method public android.content.Context createCredentialEncryptedStorageContext();
    method public android.content.Context createDeviceEncryptedStorageContext();
    method public android.content.Context createCredentialProtectedStorageContext();
    method public android.content.Context createDeviceProtectedStorageContext();
    method public android.content.Context createDisplayContext(android.view.Display);
    method public android.content.Context createPackageContext(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException;
    method public java.lang.String[] databaseList();
@@ -40711,10 +40706,10 @@ package android.test.mock {
    method public int getWallpaperDesiredMinimumHeight();
    method public int getWallpaperDesiredMinimumWidth();
    method public void grantUriPermission(java.lang.String, android.net.Uri, int);
    method public boolean isCredentialEncryptedStorage();
    method public boolean isDeviceEncryptedStorage();
    method public boolean migrateDatabaseFrom(android.content.Context, java.lang.String);
    method public boolean migrateSharedPreferencesFrom(android.content.Context, java.lang.String);
    method public boolean isCredentialProtectedStorage();
    method public boolean isDeviceProtectedStorage();
    method public boolean moveDatabaseFrom(android.content.Context, java.lang.String);
    method public boolean moveSharedPreferencesFrom(android.content.Context, java.lang.String);
    method public java.io.FileInputStream openFileInput(java.lang.String) throws java.io.FileNotFoundException;
    method public java.io.FileOutputStream openFileOutput(java.lang.String, int) throws java.io.FileNotFoundException;
    method public android.database.sqlite.SQLiteDatabase openOrCreateDatabase(java.lang.String, int, android.database.sqlite.SQLiteDatabase.CursorFactory);
+41 −0

File changed.

Preview size limit exceeded, changes collapsed.

+19 −25

File changed.

Preview size limit exceeded, changes collapsed.

Loading