| Index: infra/bots/recipes/swarm_trigger.expected/Build-Win-MSVC-x86_64-Release.json
 | 
| diff --git a/infra/bots/recipes/swarm_trigger.expected/Build-Win-MSVC-x86_64-Release.json b/infra/bots/recipes/swarm_trigger.expected/Build-Win-MSVC-x86_64-Release.json
 | 
| new file mode 100644
 | 
| index 0000000000000000000000000000000000000000..48a23bf9d38f7f16f757e8627048c306ffd21d85
 | 
| --- /dev/null
 | 
| +++ b/infra/bots/recipes/swarm_trigger.expected/Build-Win-MSVC-x86_64-Release.json
 | 
| @@ -0,0 +1,473 @@
 | 
| +[
 | 
| +  {
 | 
| +    "cmd": [
 | 
| +      "git",
 | 
| +      "rev-parse",
 | 
| +      "HEAD"
 | 
| +    ],
 | 
| +    "cwd": "[ROOT]/skia",
 | 
| +    "name": "git rev-parse",
 | 
| +    "stdout": "/path/to/tmp/"
 | 
| +  },
 | 
| +  {
 | 
| +    "cmd": [
 | 
| +      "python",
 | 
| +      "-c",
 | 
| +      "\"print 'abc123'\""
 | 
| +    ],
 | 
| +    "name": "got_revision",
 | 
| +    "~followup_annotations": [
 | 
| +      "@@@SET_BUILD_PROPERTY@got_revision@\"abc123\"@@@"
 | 
| +    ]
 | 
| +  },
 | 
| +  {
 | 
| +    "cmd": [
 | 
| +      "python",
 | 
| +      "-u",
 | 
| +      "import os\nfor r, _, files in os.walk(os.getcwd()):\n  for fname in files:\n    f = os.path.join(r, fname)\n    if os.path.isfile(f):\n      if os.access(f, os.X_OK):\n        os.chmod(f, 0755)\n      else:\n        os.chmod(f, 0644)\n"
 | 
| +    ],
 | 
| +    "cwd": "[ROOT]/skia",
 | 
| +    "name": "fix filemodes",
 | 
| +    "~followup_annotations": [
 | 
| +      "@@@STEP_LOG_LINE@python.inline@import os@@@",
 | 
| +      "@@@STEP_LOG_LINE@python.inline@for r, _, files in os.walk(os.getcwd()):@@@",
 | 
| +      "@@@STEP_LOG_LINE@python.inline@  for fname in files:@@@",
 | 
| +      "@@@STEP_LOG_LINE@python.inline@    f = os.path.join(r, fname)@@@",
 | 
| +      "@@@STEP_LOG_LINE@python.inline@    if os.path.isfile(f):@@@",
 | 
| +      "@@@STEP_LOG_LINE@python.inline@      if os.access(f, os.X_OK):@@@",
 | 
| +      "@@@STEP_LOG_LINE@python.inline@        os.chmod(f, 0755)@@@",
 | 
| +      "@@@STEP_LOG_LINE@python.inline@      else:@@@",
 | 
| +      "@@@STEP_LOG_LINE@python.inline@        os.chmod(f, 0644)@@@",
 | 
| +      "@@@STEP_LOG_END@python.inline@@@"
 | 
| +    ]
 | 
| +  },
 | 
| +  {
 | 
| +    "cmd": [
 | 
| +      "python",
 | 
| +      "-u",
 | 
| +      "RECIPE_MODULE[depot_tools::git]/resources/git_setup.py",
 | 
| +      "--path",
 | 
| +      "[SLAVE_BUILD]/swarming.client",
 | 
| +      "--url",
 | 
| +      "https://chromium.googlesource.com/external/swarming.client.git"
 | 
| +    ],
 | 
| +    "name": "git setup (swarming_client)"
 | 
| +  },
 | 
| +  {
 | 
| +    "cmd": [
 | 
| +      "git",
 | 
| +      "retry",
 | 
| +      "fetch",
 | 
| +      "origin",
 | 
| +      "master"
 | 
| +    ],
 | 
| +    "cwd": "[SLAVE_BUILD]/swarming.client",
 | 
| +    "name": "git fetch (swarming_client)"
 | 
| +  },
 | 
| +  {
 | 
| +    "cmd": [
 | 
| +      "git",
 | 
| +      "checkout",
 | 
| +      "-f",
 | 
| +      "FETCH_HEAD"
 | 
| +    ],
 | 
| +    "cwd": "[SLAVE_BUILD]/swarming.client",
 | 
| +    "name": "git checkout (swarming_client)"
 | 
| +  },
 | 
| +  {
 | 
| +    "cmd": [
 | 
| +      "git",
 | 
| +      "rev-parse",
 | 
| +      "HEAD"
 | 
| +    ],
 | 
| +    "cwd": "[SLAVE_BUILD]/swarming.client",
 | 
| +    "name": "read revision",
 | 
| +    "stdout": "/path/to/tmp/",
 | 
| +    "~followup_annotations": [
 | 
| +      "@@@STEP_TEXT@<br/>checked out 'deadbeef'<br/>@@@"
 | 
| +    ]
 | 
| +  },
 | 
| +  {
 | 
| +    "cmd": [
 | 
| +      "git",
 | 
| +      "clean",
 | 
| +      "-f",
 | 
| +      "-d",
 | 
| +      "-x"
 | 
| +    ],
 | 
| +    "cwd": "[SLAVE_BUILD]/swarming.client",
 | 
| +    "name": "git clean (swarming_client)"
 | 
| +  },
 | 
| +  {
 | 
| +    "cmd": [
 | 
| +      "git",
 | 
| +      "submodule",
 | 
| +      "sync"
 | 
| +    ],
 | 
| +    "cwd": "[SLAVE_BUILD]/swarming.client",
 | 
| +    "name": "submodule sync (swarming_client)"
 | 
| +  },
 | 
| +  {
 | 
| +    "cmd": [
 | 
| +      "git",
 | 
| +      "submodule",
 | 
| +      "update",
 | 
| +      "--init",
 | 
| +      "--recursive"
 | 
| +    ],
 | 
| +    "cwd": "[SLAVE_BUILD]/swarming.client",
 | 
| +    "name": "submodule update (swarming_client)"
 | 
| +  },
 | 
| +  {
 | 
| +    "cmd": [
 | 
| +      "python",
 | 
| +      "-u",
 | 
| +      "[SLAVE_BUILD]/swarming.client/swarming.py",
 | 
| +      "--version"
 | 
| +    ],
 | 
| +    "name": "swarming.py --version",
 | 
| +    "stdout": "/path/to/tmp/",
 | 
| +    "~followup_annotations": [
 | 
| +      "@@@STEP_TEXT@0.8.6@@@"
 | 
| +    ]
 | 
| +  },
 | 
| +  {
 | 
| +    "cmd": [
 | 
| +      "download_from_google_storage",
 | 
| +      "--no_resume",
 | 
| +      "--platform=linux*",
 | 
| +      "--no_auth",
 | 
| +      "--bucket",
 | 
| +      "chromium-luci",
 | 
| +      "-d",
 | 
| +      "[ROOT]/skia/infra/bots/tools/luci-go/linux64"
 | 
| +    ],
 | 
| +    "name": "download luci-go linux"
 | 
| +  },
 | 
| +  {
 | 
| +    "cmd": [
 | 
| +      "download_from_google_storage",
 | 
| +      "--no_resume",
 | 
| +      "--platform=darwin",
 | 
| +      "--no_auth",
 | 
| +      "--bucket",
 | 
| +      "chromium-luci",
 | 
| +      "-d",
 | 
| +      "[ROOT]/skia/infra/bots/tools/luci-go/mac64"
 | 
| +    ],
 | 
| +    "name": "download luci-go mac"
 | 
| +  },
 | 
| +  {
 | 
| +    "cmd": [
 | 
| +      "download_from_google_storage",
 | 
| +      "--no_resume",
 | 
| +      "--platform=win32",
 | 
| +      "--no_auth",
 | 
| +      "--bucket",
 | 
| +      "chromium-luci",
 | 
| +      "-d",
 | 
| +      "[ROOT]/skia/infra/bots/tools/luci-go/win64"
 | 
| +    ],
 | 
| +    "name": "download luci-go win"
 | 
| +  },
 | 
| +  {
 | 
| +    "cmd": [
 | 
| +      "python",
 | 
| +      "-u",
 | 
| +      "\nimport os, sys\nfrom common import chromium_utils # Error? See https://crbug.com/584783.\n\n\nif os.path.exists(sys.argv[1]):\n  chromium_utils.RemoveDirectory(sys.argv[1])\n",
 | 
| +      "[SLAVE_BUILD]/luci-go"
 | 
| +    ],
 | 
| +    "env": {
 | 
| +      "PYTHONPATH": "[ROOT]/skia/infra/bots/.recipe_deps/build/scripts"
 | 
| +    },
 | 
| +    "name": "rmtree luci-go",
 | 
| +    "~followup_annotations": [
 | 
| +      "@@@STEP_LOG_LINE@python.inline@@@@",
 | 
| +      "@@@STEP_LOG_LINE@python.inline@import os, sys@@@",
 | 
| +      "@@@STEP_LOG_LINE@python.inline@from common import chromium_utils # Error? See https://crbug.com/584783.@@@",
 | 
| +      "@@@STEP_LOG_LINE@python.inline@@@@",
 | 
| +      "@@@STEP_LOG_LINE@python.inline@@@@",
 | 
| +      "@@@STEP_LOG_LINE@python.inline@if os.path.exists(sys.argv[1]):@@@",
 | 
| +      "@@@STEP_LOG_LINE@python.inline@  chromium_utils.RemoveDirectory(sys.argv[1])@@@",
 | 
| +      "@@@STEP_LOG_END@python.inline@@@"
 | 
| +    ]
 | 
| +  },
 | 
| +  {
 | 
| +    "cmd": [
 | 
| +      "python",
 | 
| +      "-u",
 | 
| +      "\nimport shutil\nimport sys\nshutil.copytree(sys.argv[1], sys.argv[2], symlinks=bool(sys.argv[3]))\n",
 | 
| +      "[ROOT]/skia/infra/bots/tools/luci-go",
 | 
| +      "[SLAVE_BUILD]/luci-go",
 | 
| +      "0"
 | 
| +    ],
 | 
| +    "name": "Copy Go binary"
 | 
| +  },
 | 
| +  {
 | 
| +    "cmd": [
 | 
| +      "python",
 | 
| +      "-u",
 | 
| +      "RECIPE_MODULE[build::gsutil]/resources/gsutil_wrapper.py",
 | 
| +      "--",
 | 
| +      "RECIPE_PACKAGE_REPO[depot_tools]/gsutil.py",
 | 
| +      "----",
 | 
| +      "help"
 | 
| +    ],
 | 
| +    "name": "gsutil help"
 | 
| +  },
 | 
| +  {
 | 
| +    "cmd": [
 | 
| +      "python",
 | 
| +      "-u",
 | 
| +      "[ROOT]/skia/tools/buildbot_spec.py",
 | 
| +      "/path/to/tmp/json",
 | 
| +      "Build-Win-MSVC-x86_64-Release"
 | 
| +    ],
 | 
| +    "cwd": "[ROOT]/skia",
 | 
| +    "name": "exec buildbot_spec.py",
 | 
| +    "~followup_annotations": [
 | 
| +      "@@@STEP_LOG_LINE@json.output@{@@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@  \"build_targets\": [@@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@    \"most\"@@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@  ], @@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@  \"builder_cfg\": {@@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@    \"compiler\": \"MSVC\", @@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@    \"configuration\": \"Release\", @@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@    \"is_trybot\": false, @@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@    \"os\": \"Win\", @@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@    \"role\": \"Build\", @@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@    \"target_arch\": \"x86_64\"@@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@  }, @@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@  \"configuration\": \"Release_x64\", @@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@  \"dm_flags\": [@@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@    \"--dummy-flags\"@@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@  ], @@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@  \"do_perf_steps\": false, @@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@  \"do_test_steps\": false, @@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@  \"env\": {@@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@    \"GYP_DEFINES\": \"qt_sdk=C:/Qt/4.8.5/ skia_arch_type=x86_64 skia_warnings_as_errors=1 skia_win_debuggers_path=c:/DbgHelp skia_win_ltcg=0\"@@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@  }, @@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@  \"nanobench_flags\": [@@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@    \"--dummy-flags\"@@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@  ], @@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@  \"upload_dm_results\": true, @@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@  \"upload_perf_results\": false@@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@}@@@",
 | 
| +      "@@@STEP_LOG_END@json.output@@@"
 | 
| +    ]
 | 
| +  },
 | 
| +  {
 | 
| +    "cmd": [
 | 
| +      "python",
 | 
| +      "-u",
 | 
| +      "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
 | 
| +      "[ROOT]/skia/infra/bots/assets/win_toolchain/VERSION",
 | 
| +      "/path/to/tmp/"
 | 
| +    ],
 | 
| +    "name": "read win_toolchain VERSION"
 | 
| +  },
 | 
| +  {
 | 
| +    "cmd": [
 | 
| +      "python",
 | 
| +      "-u",
 | 
| +      "\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.path.isdir(path):\n  if os.path.exists(path):\n    print \"%s exists but is not a dir\" % path\n    sys.exit(1)\n  os.makedirs(path, mode)\n",
 | 
| +      "[SLAVE_BUILD]/swarming_temp_dir",
 | 
| +      "511"
 | 
| +    ],
 | 
| +    "name": "makedirs swarming tmp dir",
 | 
| +    "~followup_annotations": [
 | 
| +      "@@@STEP_LOG_LINE@python.inline@@@@",
 | 
| +      "@@@STEP_LOG_LINE@python.inline@import sys, os@@@",
 | 
| +      "@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@",
 | 
| +      "@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@",
 | 
| +      "@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@",
 | 
| +      "@@@STEP_LOG_LINE@python.inline@  if os.path.exists(path):@@@",
 | 
| +      "@@@STEP_LOG_LINE@python.inline@    print \"%s exists but is not a dir\" % path@@@",
 | 
| +      "@@@STEP_LOG_LINE@python.inline@    sys.exit(1)@@@",
 | 
| +      "@@@STEP_LOG_LINE@python.inline@  os.makedirs(path, mode)@@@",
 | 
| +      "@@@STEP_LOG_END@python.inline@@@"
 | 
| +    ]
 | 
| +  },
 | 
| +  {
 | 
| +    "cmd": [
 | 
| +      "python",
 | 
| +      "-u",
 | 
| +      "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
 | 
| +      "{\n    \"args\": [\n        \"--isolate\", \n        \"[ROOT]/skia/infra/bots/compile_skia.isolate\", \n        \"--isolated\", \n        \"[SLAVE_BUILD]/swarming_temp_dir/skia-task-compile_skia.isolated\", \n        \"--config-variable\", \n        \"OS\", \n        \"Windows\", \n        \"--blacklist\", \n        \".git\", \n        \"--blacklist\", \n        \"out\", \n        \"--blacklist\", \n        \"*.pyc\", \n        \"--blacklist\", \n        \".recipe_deps\", \n        \"--extra-variable\", \n        \"WORKDIR\", \n        \"[SLAVE_BUILD]\"\n    ], \n    \"dir\": \"[SLAVE_BUILD]\", \n    \"version\": 1\n}",
 | 
| +      "[SLAVE_BUILD]/swarming_temp_dir/compile_skia.isolated.gen.json"
 | 
| +    ],
 | 
| +    "name": "Write compile_skia.isolated.gen.json"
 | 
| +  },
 | 
| +  {
 | 
| +    "cmd": [
 | 
| +      "python",
 | 
| +      "-u",
 | 
| +      "RECIPE_MODULE[build::isolate]/resources/isolate.py",
 | 
| +      "[SLAVE_BUILD]/swarming.client",
 | 
| +      "batcharchive",
 | 
| +      "--dump-json",
 | 
| +      "/path/to/tmp/json",
 | 
| +      "--isolate-server",
 | 
| +      "https://isolateserver.appspot.com",
 | 
| +      "--verbose",
 | 
| +      "[SLAVE_BUILD]/swarming_temp_dir/compile_skia.isolated.gen.json"
 | 
| +    ],
 | 
| +    "name": "isolate tests",
 | 
| +    "~followup_annotations": [
 | 
| +      "@@@STEP_LOG_LINE@json.output@{@@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@  \"compile_skia\": \"[dummy hash for compile_skia]\"@@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@}@@@",
 | 
| +      "@@@STEP_LOG_END@json.output@@@",
 | 
| +      "@@@SET_BUILD_PROPERTY@swarm_hashes@{\"compile_skia\": \"[dummy hash for compile_skia]\"}@@@"
 | 
| +    ]
 | 
| +  },
 | 
| +  {
 | 
| +    "cmd": [
 | 
| +      "python",
 | 
| +      "-u",
 | 
| +      "[SLAVE_BUILD]/swarming.client/swarming.py",
 | 
| +      "trigger",
 | 
| +      "--swarming",
 | 
| +      "https://chromium-swarm.appspot.com",
 | 
| +      "--isolate-server",
 | 
| +      "https://isolateserver.appspot.com",
 | 
| +      "--priority",
 | 
| +      "90",
 | 
| +      "--shards",
 | 
| +      "1",
 | 
| +      "--task-name",
 | 
| +      "compile_skia/Windows/[dummy has/Build-Win-MSVC-x86_64-Release/5",
 | 
| +      "--dump-json",
 | 
| +      "/path/to/tmp/json",
 | 
| +      "--expiration",
 | 
| +      "72000",
 | 
| +      "--io-timeout",
 | 
| +      "2400",
 | 
| +      "--hard-timeout",
 | 
| +      "14400",
 | 
| +      "--dimension",
 | 
| +      "gpu",
 | 
| +      "none",
 | 
| +      "--dimension",
 | 
| +      "os",
 | 
| +      "Windows",
 | 
| +      "--dimension",
 | 
| +      "pool",
 | 
| +      "Skia",
 | 
| +      "--tag",
 | 
| +      "allow_milo:1",
 | 
| +      "--tag",
 | 
| +      "buildername:Build-Win-MSVC-x86_64-Release",
 | 
| +      "--tag",
 | 
| +      "buildnumber:5",
 | 
| +      "--tag",
 | 
| +      "data:[dummy hash for compile_skia]",
 | 
| +      "--tag",
 | 
| +      "master:client.skia",
 | 
| +      "--tag",
 | 
| +      "name:compile_skia",
 | 
| +      "--tag",
 | 
| +      "os:Windows",
 | 
| +      "--tag",
 | 
| +      "slavename:skiabot-linux-swarm-000",
 | 
| +      "--tag",
 | 
| +      "stepname:compile_skia on Windows",
 | 
| +      "--idempotent",
 | 
| +      "--cipd-package",
 | 
| +      "t:skia/bots/win_toolchain:version:0",
 | 
| +      "[dummy hash for compile_skia]",
 | 
| +      "--",
 | 
| +      "--workdir",
 | 
| +      "../../..",
 | 
| +      "swarm_compile",
 | 
| +      "buildername=Build-Win-MSVC-x86_64-Release",
 | 
| +      "mastername=client.skia.compile",
 | 
| +      "buildnumber=1",
 | 
| +      "slavename=skiabot-dummy-compile-slave",
 | 
| +      "reason=Triggered by Skia swarm_trigger Recipe",
 | 
| +      "swarm_out_dir=${ISOLATED_OUTDIR}",
 | 
| +      "revision=abc123"
 | 
| +    ],
 | 
| +    "name": "[trigger] compile_skia on Windows",
 | 
| +    "~followup_annotations": [
 | 
| +      "@@@STEP_LOG_LINE@json.output@{@@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@  \"base_task_name\": \"compile_skia/Windows/[dummy has/Build-Win-MSVC-x86_64-Release/5\", @@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@  \"tasks\": {@@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@    \"compile_skia/Windows/[dummy has/Build-Win-MSVC-x86_64-Release/5\": {@@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@      \"shard_index\": 0, @@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@      \"task_id\": \"10000\", @@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@      \"view_url\": \"https://chromium-swarm.appspot.com/user/task/10000\"@@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@    }@@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@  }@@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@}@@@",
 | 
| +      "@@@STEP_LOG_END@json.output@@@",
 | 
| +      "@@@STEP_LINK@shard #0@https://chromium-swarm.appspot.com/user/task/10000@@@",
 | 
| +      "@@@STEP_LINK@view steps on Milo@https://luci-milo.appspot.com/swarming/task/10000@@@"
 | 
| +    ]
 | 
| +  },
 | 
| +  {
 | 
| +    "cmd": [
 | 
| +      "python",
 | 
| +      "-u",
 | 
| +      "[SLAVE_BUILD]/swarming.client/swarming.py",
 | 
| +      "collect",
 | 
| +      "--swarming",
 | 
| +      "https://chromium-swarm.appspot.com",
 | 
| +      "--decorate",
 | 
| +      "--print-status-updates",
 | 
| +      "--json",
 | 
| +      "{\"base_task_name\": \"compile_skia/Windows/[dummy has/Build-Win-MSVC-x86_64-Release/5\", \"tasks\": {\"compile_skia/Windows/[dummy has/Build-Win-MSVC-x86_64-Release/5\": {\"shard_index\": 0, \"task_id\": \"10000\", \"view_url\": \"https://chromium-swarm.appspot.com/user/task/10000\"}}}",
 | 
| +      "--task-summary-json",
 | 
| +      "/path/to/tmp/json"
 | 
| +    ],
 | 
| +    "name": "compile_skia on Windows",
 | 
| +    "~followup_annotations": [
 | 
| +      "@@@STEP_TEXT@swarming pending 71s@@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@{@@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@  \"shards\": [@@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@    {@@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@      \"abandoned_ts\": null, @@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@      \"bot_id\": \"vm30\", @@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@      \"completed_ts\": \"2014-09-25T01:42:00.123\", @@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@      \"created_ts\": \"2014-09-25T01:41:00.123\", @@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@      \"durations\": [@@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@        5.7, @@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@        31.5@@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@      ], @@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@      \"exit_codes\": [@@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@        0, @@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@        0@@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@      ], @@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@      \"failure\": false, @@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@      \"id\": \"148aa78d7aa0000\", @@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@      \"internal_failure\": false, @@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@      \"isolated_out\": {@@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@        \"isolated\": \"abc123\", @@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@        \"isolatedserver\": \"https://isolateserver.appspot.com\", @@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@        \"namespace\": \"default-gzip\", @@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@        \"view_url\": \"blah\"@@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@      }, @@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@      \"modified_ts\": \"2014-09-25 01:42:00\", @@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@      \"name\": \"heartbeat-canary-2014-09-25_01:41:55-os=Windows\", @@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@      \"outputs\": [@@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@        \"Heart beat succeeded on win32.\\n\", @@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@        \"Foo\"@@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@      ], @@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@      \"started_ts\": \"2014-09-25T01:42:11.123\", @@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@      \"state\": 112, @@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@      \"try_number\": 1, @@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@      \"user\": \"unknown\"@@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@    }@@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@  ]@@@",
 | 
| +      "@@@STEP_LOG_LINE@json.output@}@@@",
 | 
| +      "@@@STEP_LOG_END@json.output@@@",
 | 
| +      "@@@STEP_LINK@shard #0 isolated out@blah@@@",
 | 
| +      "@@@STEP_LINK@view steps on Milo@https://luci-milo.appspot.com/swarming/task/148aa78d7aa0000@@@"
 | 
| +    ]
 | 
| +  },
 | 
| +  {
 | 
| +    "name": "$result",
 | 
| +    "recipe_result": null,
 | 
| +    "status_code": 0
 | 
| +  }
 | 
| +]
 | 
| 
 |