anchor.diff:          ? loadResultsMap(path)
           : <String, Map<String, dynamic>>{};
   
  +/// Loads a log from logdog.
  +Future<String> loadLog(String id, String step) async {
  +  final logUrl = Uri.parse("https://logs.chromium.org/"
  +      "logs/dart/buildbucket/cr-buildbucket.appspot.com/"
  +      "$id/+/steps/$step?format=raw");
  +  final client = new HttpClient();
  +  final request =
  +      await client.getUrl(logUrl).timeout(const Duration(seconds: 60));
  +  final response = await request.close().timeout(const Duration(seconds: 60));
  +  if (response.statusCode != HttpStatus.ok) {
  +    throw new Exception("The log at $logUrl doesn't exist");
  +  }
  +  final contents = (await response
  +          .transform(new Utf8Decoder())
  +          .timeout(const Duration(seconds: 60))
  +          .toList())
  +      .join("");
  +  client.close();
  +  return contents;
  +}
  +
   /// Loads the results from the bot.
  -Future<List<Test>> loadResultsFromBot(String bot, ArgResults options) async {
  +Future<List<Test>> loadResultsFromBot(String bot, ArgResults options,
  +    Map<String, dynamic> changelistBuild) async {
     if (options["verbose"]) {
       print("Loading $bot...");
     }
  
positive.code:     print("Selected bot: $bot");
    }
  
    // Load all the latest results for the selected bots, as well as flakiness
    // data, and the set of currently approved results. Each bot's latest build
    // is downloaded in parallel to make this phase faster.
    final testListFutures = <Future>[];
    for (final String bot in bots) {
      testListFutures.add(loadResultsFromBot(bot, options));
    }
  
    // Collect all the tests from the synchronous downloads.
  
negative.code:       print("Note: Approving the failures will turn the "
            "$botPlural green on the next commit.");
      }
      if (options["preapprove"] != null) {
        print("Warning: Preapproval is currently not sticky and somebody else "
            "approving before your CL has landed will undo your preapproval.");
      }
      while (true) {
        stdout.write("Do you want to approve? (yes/no) [yes] ");
        final line = stdin.readLineSync();
  