diff --git a/dev/bots/README.md b/dev/bots/README.md
index 04ae9e7..517728b 100644
--- a/dev/bots/README.md
+++ b/dev/bots/README.md
@@ -4,7 +4,7 @@
 
 Flutter build results are available at:
 * https://flutter-dashboard.appspot.com/#/build
-  - Aggregate dashboard of the the separate CI systems used by Flutter.
+  - Aggregate dashboard of the separate CI systems used by Flutter.
 * https://cirrus-ci.com/github/flutter/flutter/master
   - Testing is done on PRs and submitted changes on GitHub.
 * https://ci.chromium.org/p/flutter/
diff --git a/packages/flutter/lib/src/cupertino/sliding_segmented_control.dart b/packages/flutter/lib/src/cupertino/sliding_segmented_control.dart
index 99688f6..745ec9c 100644
--- a/packages/flutter/lib/src/cupertino/sliding_segmented_control.dart
+++ b/packages/flutter/lib/src/cupertino/sliding_segmented_control.dart
@@ -976,7 +976,7 @@
 
   // This method is used to convert the original unscaled thumb rect painted in
   // the previous frame, to a Rect that is within the valid boundary defined by
-  // the the child segments.
+  // the child segments.
   //
   // The overall size does not include that of the thumb. That is, if the thumb
   // is located at the first or the last segment, the thumb can get cut off if
diff --git a/packages/flutter/lib/src/material/navigation_rail.dart b/packages/flutter/lib/src/material/navigation_rail.dart
index 0f18709..a57cb1c 100644
--- a/packages/flutter/lib/src/material/navigation_rail.dart
+++ b/packages/flutter/lib/src/material/navigation_rail.dart
@@ -287,7 +287,7 @@
   /// a copy of the [IconThemeData.fallback] with a custom [NavigationRail]
   /// specific color will be used.
   ///
-  /// The default value is Is the [Theme]'s [ThemeData.iconTheme] with a color
+  /// The default value is the [Theme]'s [ThemeData.iconTheme] with a color
   /// of the [Theme]'s [ColorScheme.onSurface] with an opacity of 0.64.
   /// Properties from this icon theme, or
   /// [NavigationRailThemeData.unselectedIconTheme] if this is null, are
@@ -299,7 +299,7 @@
   /// When a [NavigationRailDestination] is not selected,
   /// [unselectedIconTheme] will be used.
   ///
-  /// The default value is Is the [Theme]'s [ThemeData.iconTheme] with a color
+  /// The default value is the [Theme]'s [ThemeData.iconTheme] with a color
   /// of the [Theme]'s [ColorScheme.primary]. Properties from this icon theme,
   /// or [NavigationRailThemeData.selectedIconTheme] if this is null, are
   /// merged into the defaults.
diff --git a/packages/flutter/lib/src/widgets/drag_target.dart b/packages/flutter/lib/src/widgets/drag_target.dart
index 8304e8c..22e7e55 100644
--- a/packages/flutter/lib/src/widgets/drag_target.dart
+++ b/packages/flutter/lib/src/widgets/drag_target.dart
@@ -296,7 +296,7 @@
   )
   final DragAnchor dragAnchor;
 
-  /// A strategy that is used by this draggable to get the the anchor offset when it is dragged.
+  /// A strategy that is used by this draggable to get the anchor offset when it is dragged.
   ///
   /// The anchor offset refers to the distance between the users' fingers and the [feedback] widget when this draggable is dragged.
   ///
diff --git a/packages/flutter/lib/src/widgets/router.dart b/packages/flutter/lib/src/widgets/router.dart
index c3390ae..d55fa38 100644
--- a/packages/flutter/lib/src/widgets/router.dart
+++ b/packages/flutter/lib/src/widgets/router.dart
@@ -146,7 +146,7 @@
 /// considered unusual for these delegates to change during the lifetime of the
 /// [Router].
 ///
-/// If the [Router] itself is disposed while an an asynchronous operation is in
+/// If the [Router] itself is disposed while an asynchronous operation is in
 /// progress, all active asynchronous operations will have their results
 /// discarded also.
 ///
@@ -1108,7 +1108,7 @@
   /// When overriding this method, the configuration returned by this getter
   /// must be able to construct the current app state and build the widget
   /// with the same configuration in the [build] method if it is passed back
-  /// to the the [setNewRoutePath]. Otherwise, the browser backward and forward
+  /// to the [setNewRoutePath]. Otherwise, the browser backward and forward
   /// buttons will not work properly.
   ///
   /// By default, this getter returns null, which prevents the [Router] from
diff --git a/packages/flutter/test/material/popup_menu_test.dart b/packages/flutter/test/material/popup_menu_test.dart
index 584e132..ff1aebc 100644
--- a/packages/flutter/test/material/popup_menu_test.dart
+++ b/packages/flutter/test/material/popup_menu_test.dart
@@ -1490,7 +1490,6 @@
     expect(tester.widget<Container>(find.widgetWithText(Container, 'Item 3')).padding, const EdgeInsets.all(20));
   });
 
-
   testWidgets('Update PopupMenuItem layout while the menu is visible', (WidgetTester tester) async {
     final Key popupMenuButtonKey = UniqueKey();
     final Type menuItemType = const PopupMenuItem<String>(child: Text('item')).runtimeType;
diff --git a/packages/flutter/test/material/scrollbar_theme_test.dart b/packages/flutter/test/material/scrollbar_theme_test.dart
index 7d23636..73709c6 100644
--- a/packages/flutter/test/material/scrollbar_theme_test.dart
+++ b/packages/flutter/test/material/scrollbar_theme_test.dart
@@ -11,7 +11,7 @@
 
 import '../rendering/mock_canvas.dart';
 
-// The const represents the the starting position of the scrollbar thumb for
+// The const represents the starting position of the scrollbar thumb for
 // the below tests. The thumb is 90 pixels long, and 8 pixels wide, with a 2
 // pixel margin to the right edge of the viewport.
 const Rect _kMaterialDesignInitialThumbRect = Rect.fromLTRB(790.0, 0.0, 798.0, 90.0);
diff --git a/packages/flutter/test_private/bin/test_private.dart b/packages/flutter/test_private/bin/test_private.dart
index 096906e..b532f7c 100644
--- a/packages/flutter/test_private/bin/test_private.dart
+++ b/packages/flutter/test_private/bin/test_private.dart
@@ -175,7 +175,7 @@
         return false;
       }
     }
-    // Copy the test files into the the tmpdir's lib directory.
+    // Copy the test files into the tmpdir's lib directory.
     for (final File file in tests) {
       String destination = tmpdir.path;
       try {
diff --git a/packages/flutter_localizations/lib/src/l10n/material_en.arb b/packages/flutter_localizations/lib/src/l10n/material_en.arb
index ed3a104..7e3d7e0 100644
--- a/packages/flutter_localizations/lib/src/l10n/material_en.arb
+++ b/packages/flutter_localizations/lib/src/l10n/material_en.arb
@@ -248,17 +248,17 @@
 
   "dateInputLabel": "Enter Date",
   "@dateInputLabel": {
-    "description": "The label used to describe the input text field used in in the date picker."
+    "description": "The label used to describe the input text field used in the date picker."
   },
 
   "dateRangeStartLabel": "Start Date",
   "@dateRangeStartLabel": {
-    "description": "The label used to describe the starting date input text field used in in the date range picker."
+    "description": "The label used to describe the starting date input text field used in the date range picker."
   },
 
   "dateRangeEndLabel": "End Date",
   "@dateRangeEndLabel": {
-    "description": "The label used to describe the ending date input text field used in in the date range picker."
+    "description": "The label used to describe the ending date input text field used in the date range picker."
   },
 
   "dateRangeStartDateSemanticLabel": "Start date $fullDate",
diff --git a/packages/flutter_test/lib/src/accessibility.dart b/packages/flutter_test/lib/src/accessibility.dart
index ace6b12..63506e2 100644
--- a/packages/flutter_test/lib/src/accessibility.dart
+++ b/packages/flutter_test/lib/src/accessibility.dart
@@ -436,7 +436,7 @@
   ///
   /// Given a list of integers [colors], each representing the color of a pixel
   /// on a part of the screen, generates a contrast ratio report.
-  /// Each colors is given in in ARGB format, as is the parameter for the
+  /// Each colors is given in ARGB format, as is the parameter for the
   /// constructor [Color].
   ///
   /// The contrast ratio of the most frequent light color and the most
diff --git a/packages/flutter_tools/gradle/flutter.gradle b/packages/flutter_tools/gradle/flutter.gradle
index 5bb73d1..19dbcd6 100644
--- a/packages/flutter_tools/gradle/flutter.gradle
+++ b/packages/flutter_tools/gradle/flutter.gradle
@@ -214,7 +214,7 @@
         project.android.buildTypes.all this.&addFlutterDependencies
     }
 
-    private static Boolean shouldShrinkResources(Project project) { 
+    private static Boolean shouldShrinkResources(Project project) {
         if (project.hasProperty("shrink")) {
             return project.property("shrink").toBoolean()
         }
@@ -595,7 +595,7 @@
 
     /**
      * Gets the directory that contains the Flutter source code.
-     * This is the the directory containing the `android/` directory.
+     * This is the directory containing the `android/` directory.
      */
     private File getFlutterSourceDirectory() {
         if (project.flutter.source == null) {
@@ -842,7 +842,7 @@
             }
             return copyFlutterAssetsTask
         } // end def addFlutterDeps
-        
+
         if (isFlutterAppProject()) {
             project.android.applicationVariants.all { variant ->
                 Task assembleTask = getAssembleTask(variant)
diff --git a/packages/flutter_tools/lib/src/persistent_tool_state.dart b/packages/flutter_tools/lib/src/persistent_tool_state.dart
index 833403b..a53255c 100644
--- a/packages/flutter_tools/lib/src/persistent_tool_state.dart
+++ b/packages/flutter_tools/lib/src/persistent_tool_state.dart
@@ -55,7 +55,7 @@
   /// Whether this client was already determined to be or not be a bot.
   bool isRunningOnBot;
 
-  /// The last time the the DevTools package was activated from pub.
+  /// The last time the DevTools package was activated from pub.
   DateTime lastDevToolsActivationTime;
 }
 
