Version 2.1.1-dev.3.1

* Cherry-pick 46080dd886a622c5520895d49c97506ecedb1df8 to dev
* Cherry-pick fc62cf037343248c5ace87629d8eb1063f9f2428 to dev
* Cherry-pick 770ab5275ac34af62d7c39da8eac8c56fdc48edb to dev
* Cherry-pick 957e194735bda4fcf06cdcc68fa80f3290b17d79 to dev
diff --git a/CHANGELOG.md b/CHANGELOG.md
index f5f621a..7e0cef2 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,10 @@
+## 2.1.1-dev.3.1
+
+* Cherry-pick 46080dd886a622c5520895d49c97506ecedb1df8 to dev
+* Cherry-pick fc62cf037343248c5ace87629d8eb1063f9f2428 to dev
+* Cherry-pick 770ab5275ac34af62d7c39da8eac8c56fdc48edb to dev
+* Cherry-pick 957e194735bda4fcf06cdcc68fa80f3290b17d79 to dev
+
 ## 2.1.1-dev.3.0
 
 * Cherry-pick 3cb16d20e7810a2a378bb897d939f67c0b380d88 to dev
diff --git a/DEPS b/DEPS
index f44b9ec..ae2451a 100644
--- a/DEPS
+++ b/DEPS
@@ -158,27 +158,27 @@
     "@" + Var("clang_format_scripts_rev"),
 
   Var("dart_root") + "/tools/sdks": {
-      "packages": [
-          {
-              "package": "dart/dart-sdk/${{platform}}",
-              "version": "version:2.1.1-dev.1.0",
-          },
-      ],
+      "packages": [{
+          "package": "dart/dart-sdk/${{platform}}",
+          "version": "version:2.1.1-dev.1.0",
+      }],
       "dep_type": "cipd",
   },
   Var("dart_root") + "/third_party/d8": {
-      "packages": [
-          {
-              "package": "dart/d8",
-              "version": "version:6.9.427.23+1",
-          },
-      ],
+      "packages": [{
+          "package": "dart/d8",
+          "version": "version:6.9.427.23+1",
+      }],
       "dep_type": "cipd",
   },
 
-  Var("dart_root") + "/tests/co19_2/src":
-      Var("chromium_git") + "/external/github.com/dart-lang/co19.git" +
-      "@" + Var("co19_2_rev"),
+  Var("dart_root") + "/tests/co19_2/src": {
+      "packages": [{
+          "package": "dart/third_party/co19",
+          "version": "git_revision:" + Var("co19_2_rev"),
+      }],
+      "dep_type": "cipd",
+  },
 
   Var("dart_root") + "/third_party/zlib":
       Var("chromium_git") + "/chromium/src/third_party/zlib.git" +
@@ -190,6 +190,14 @@
       "https://boringssl.googlesource.com/boringssl.git" +
       "@" + Var("boringssl_rev"),
 
+  Var("dart_root") + "/third_party/gsutil": {
+      "packages": [{
+          "package": "infra/gsutil",
+          "version": "version:4.34",
+      }],
+      "dep_type": "cipd",
+  },
+
   Var("dart_root") + "/third_party/root_certificates":
       Var("dart_git") + "root_certificates.git" +
       "@" + Var("root_certificates_rev"),
@@ -451,20 +459,6 @@
     ],
   },
   {
-    "name": "gsutil",
-    "pattern": ".",
-    "action": [
-      "download_from_google_storage",
-      "--no_auth",
-      "--no_resume",
-      "--bucket",
-      "dart-dependencies",
-      "--extract",
-      "-s",
-      Var('dart_root') + "/third_party/gsutil.tar.gz.sha1",
-    ],
-  },
-  {
     # Pull Debian wheezy sysroot for i386 Linux
     'name': 'sysroot_i386',
     'pattern': '.',
diff --git a/third_party/.gitignore b/third_party/.gitignore
index b0b3349..836a11d 100644
--- a/third_party/.gitignore
+++ b/third_party/.gitignore
@@ -9,7 +9,6 @@
 !d8
 !7zip.tar.gz.sha1
 !firefox_jsshell
-!gsutil.tar.gz.sha1
 !clang.tar.gz.sha1
 !unittest.tar.gz.sha1
 !update.sh
diff --git a/third_party/gsutil.tar.gz.sha1 b/third_party/gsutil.tar.gz.sha1
deleted file mode 100644
index cfc510a..0000000
--- a/third_party/gsutil.tar.gz.sha1
+++ /dev/null
@@ -1 +0,0 @@
-99b82a42b98b78fc2a3f155995a16d8d7517b657
\ No newline at end of file
diff --git a/tools/VERSION b/tools/VERSION
index 3457917..f1ad7f9 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -28,4 +28,4 @@
 MINOR 1
 PATCH 1
 PRERELEASE 3
-PRERELEASE_PATCH 0
+PRERELEASE_PATCH 1
diff --git a/tools/bots/dart_sdk.py b/tools/bots/dart_sdk.py
index 50f3978..be81900 100755
--- a/tools/bots/dart_sdk.py
+++ b/tools/bots/dart_sdk.py
@@ -44,14 +44,14 @@
                           'dart-sdk')
   dart_exe =  os.path.join(dart_sdk, 'bin', 'dart')
   dartdoc_dart = os.path.join(bot_utils.DART_DIR,
-                              'third_party', 'pkg' , 'dartdoc' , 'bin' , 
+                              'third_party', 'pkg', 'dartdoc', 'bin',
                               'dartdoc.dart')
   footer_file = os.path.join(bot_utils.DART_DIR,
                               'tools', 'bots', 'dartdoc_footer.html')
   url = 'https://api.dartlang.org/stable'
   with bot.BuildStep('Build API docs by dartdoc'):
     bot_utils.run([dart_exe, dartdoc_dart,
-                  '--sdk-docs','--output', dirname, '--footer' , footer_file,
+                  '--sdk-docs', '--output', dirname, '--footer', footer_file,
                   '--rel-canonical-prefix=' + url])
 
 def CreateUploadVersionFile():
@@ -172,7 +172,7 @@
       throw_on_error=False)
   # If the returncode is nonzero and we can find a specific error message,
   # we know there are no objects with a prefix of [gsu_path].
-  missing = (returncode and 'CommandException: No such object' in stderr)
+  missing = (returncode and 'CommandException: One or more URLs matched no objects.' in stderr)
   # Either the returncode has to be zero or the object must be missing,
   # otherwise throw an exception.
   if not missing and returncode:
diff --git a/tools/bots/test_matrix.json b/tools/bots/test_matrix.json
index a617489..715ce52 100644
--- a/tools/bots/test_matrix.json
+++ b/tools/bots/test_matrix.json
@@ -23,7 +23,10 @@
       "samples/",
       "sdk/",
       "tests/angular/",
-      "tests/co19_2/",
+      "tests/co19_2/co19_2-analyzer.status",
+      "tests/co19_2/co19_2-dart2js.status",
+      "tests/co19_2/co19_2-kernel.status",
+      "tests/co19_2/co19_2-runtime.status",
       "tests/compiler/",
       "tests/corelib_2/",
       "tests/dart/",
@@ -56,7 +59,10 @@
       "samples/",
       "sdk/",
       "tests/angular/",
-      "tests/co19_2/",
+      "tests/co19_2/co19_2-analyzer.status",
+      "tests/co19_2/co19_2-dart2js.status",
+      "tests/co19_2/co19_2-kernel.status",
+      "tests/co19_2/co19_2-runtime.status",
       "tests/compiler/",
       "tests/corelib_2/",
       "tests/dart/",
@@ -136,12 +142,14 @@
       "samples-dev/",
       "tools/",
       "third_party/android_tools/sdk/platform-tools/adb",
-      "third_party/gsutil/",
       "third_party/pkg/",
       "third_party/pkg_tested/",
       "third_party/observatory_pub_packages/packages/",
       "tests/angular/",
-      "tests/co19_2/",
+      "tests/co19_2/co19_2-analyzer.status",
+      "tests/co19_2/co19_2-dart2js.status",
+      "tests/co19_2/co19_2-kernel.status",
+      "tests/co19_2/co19_2-runtime.status",
       "tests/compiler/",
       "tests/corelib_2/",
       "tests/dart/",