text: # Copyright 2016 The Chromium Authors. All rights reserved.
  # Use of this source code is governed by a BSD-style license that can be
  # found in the LICENSE file.
  
  DEPS = [
      "build",
      "depot_tools/bot_update",
      "depot_tools/gclient",
      "recipe_engine/context",
      "recipe_engine/path",
      "recipe_engine/properties",
      "recipe_engine/python",
      "recipe_engine/step",
      "trigger",
  ]
  
  
  def target_dartino_linux_debug_arm_dev_steps(api):
    build_properties = api.properties.legacy()
    # update scripts step; implicitly run by recipe engine.
    # bot_update step
    src_cfg = api.gclient.make_config()
    soln = src_cfg.solutions.add()
    soln.name = "sdk"
    soln.url = "https://github.com/dartino/sdk.git"
    soln.custom_deps = {}
    soln.custom_vars = {}
    api.gclient.c = src_cfg
    result = api.bot_update.ensure_checkout(no_shallow=True)
    build_properties.update(result.json.output.get("properties", {}))
    # gclient revert step; made unnecessary by bot_update
    # gclient update step; made unnecessary by bot_update
    # gclient runhooks wrapper step
    env = {"CHROMIUM_GYP_SYNTAX_CHECK": "1",
           "LANDMINES_VERBOSE": "1",
           "DEPOT_TOOLS_UPDATE": "0"}
    with api.context(env=env):
      api.build.python("gclient runhooks wrapper",
          api.package_repo_resource("scripts", "slave", "runhooks_wrapper.py"))
    with api.context(cwd=api.path['checkout']):
      with api.step.defer_results():
        # taskkill step
        with api.context(env={
            "BUILDBOT_JAVA_HOME": api.path["checkout"].join(
              "third_party", "java", "linux", "j2sdk")}):
          api.python("Taskkill",
                     api.path["checkout"].join("third_party", "dart", "tools",
                                               "task_kill.py"),
                     args=["--kill_browsers=True"])
        # dartino annotated steps step
        with api.context(env={
            "BUILDBOT_JAVA_HOME": "third_party/java/linux/j2sdk",
            "BUILDBOT_ANNOTATED_STEPS_RUN": "1",
            "BUILDBOT_BUILDERNAME": api.properties["buildername"]}):
          api.python("annotated steps",
                     api.path["checkout"].join("tools", "bots", "dartino.py"),
                     allow_subannotations=True)
        # taskkill step
        with api.context(env={
            "BUILDBOT_JAVA_HOME": api.path["checkout"].join(
              "third_party", "java", "linux", "j2sdk")}):
          api.python("Taskkill",
                     api.path["checkout"].join("third_party", "dart", "tools",
                                               "task_kill.py"),
                     args=["--kill_browsers=True"])
  
  
  def dartino_mac_debug_asan_x86_dev_steps(api):
    build_properties = api.properties.legacy()
    # update scripts step; implicitly run by recipe engine.
    # bot_update step
    src_cfg = api.gclient.make_config()
    soln = src_cfg.solutions.add()
    soln.name = "sdk"
    soln.url = "https://github.com/dartino/sdk.git"
    soln.custom_deps = {}
    soln.custom_vars = {}
    api.gclient.c = src_cfg
    result = api.bot_update.ensure_checkout(no_shallow=True)
    build_properties.update(result.json.output.get("properties", {}))
    # gclient revert step; made unnecessary by bot_update
    # gclient update step; made unnecessary by bot_update
    # gclient runhooks wrapper step
    env = {"CHROMIUM_GYP_SYNTAX_CHECK": "1",
           "LANDMINES_VERBOSE": "1",
           "DEPOT_TOOLS_UPDATE": "0"}
    with api.context(env=env):
      api.build.python("gclient runhooks wrapper",
          api.package_repo_resource("scripts", "slave", "runhooks_wrapper.py"))
    with api.context(cwd=api.path['checkout']):
      with api.step.defer_results():
        # taskkill step
        api.python("Taskkill",
                   api.path["checkout"].join("third_party", "dart", "tools",
                                             "task_kill.py"),
                   args=["--kill_browsers=True"])
        # dartino annotated steps step
        with api.context(env={
            "BUILDBOT_ANNOTATED_STEPS_RUN": "1",
            "BUILDBOT_BUILDERNAME": api.properties["buildername"]}):
          api.python("annotated steps",
                     api.path["checkout"].join("tools", "bots", "dartino.py"),
                     allow_subannotations=True)
        # taskkill step
        api.python("Taskkill",
                   api.path["checkout"].join("third_party", "dart", "tools",
                                             "task_kill.py"),
                   args=["--kill_browsers=True"])
  
  
  def target_dartino_linux_release_arm_dev_steps(api):
    build_properties = api.properties.legacy()
    # update scripts step; implicitly run by recipe engine.
    # bot_update step
    src_cfg = api.gclient.make_config()
    soln = src_cfg.solutions.add()
    soln.name = "sdk"
    soln.url = "https://github.com/dartino/sdk.git"
    soln.custom_deps = {}
    soln.custom_vars = {}
    api.gclient.c = src_cfg
    result = api.bot_update.ensure_checkout(no_shallow=True)
    build_properties.update(result.json.output.get("properties", {}))
    # gclient revert step; made unnecessary by bot_update
    # gclient update step; made unnecessary by bot_update
    # gclient runhooks wrapper step
    env = {"CHROMIUM_GYP_SYNTAX_CHECK": "1",
           "LANDMINES_VERBOSE": "1",
           "DEPOT_TOOLS_UPDATE": "0"}
    with api.context(env=env):
      api.build.python("gclient runhooks wrapper",
          api.package_repo_resource("scripts", "slave", "runhooks_wrapper.py"))
    with api.context(cwd=api.path['checkout']):
      with api.step.defer_results():
        # taskkill step
        with api.context(env={
            "BUILDBOT_JAVA_HOME": api.path["checkout"].join(
              "third_party", "java", "linux", "j2sdk")}):
          api.python("Taskkill",
                     api.path["checkout"].join("third_party", "dart", "tools",
                                               "task_kill.py"),
                     args=["--kill_browsers=True"])
        # dartino annotated steps step
        with api.context(env={
            "BUILDBOT_JAVA_HOME": "third_party/java/linux/j2sdk",
            "BUILDBOT_ANNOTATED_STEPS_RUN": "1",
            "BUILDBOT_BUILDERNAME": api.properties["buildername"]}):
          api.python("annotated steps",
                     api.path["checkout"].join("tools", "bots", "dartino.py"),
                     allow_subannotations=True)
        # taskkill step
        with api.context(env={
            "BUILDBOT_JAVA_HOME": api.path["checkout"].join(
              "third_party", "java", "linux", "j2sdk")}):
          api.python("Taskkill",
                     api.path["checkout"].join("third_party", "dart", "tools",
                                               "task_kill.py"),
                     args=["--kill_browsers=True"])
  
  
  def dartino_lk_debug_arm_qemu_dev_steps(api):
    build_properties = api.properties.legacy()
    # update scripts step; implicitly run by recipe engine.
    # bot_update step
    src_cfg = api.gclient.make_config()
    soln = src_cfg.solutions.add()
    soln.name = "sdk"
    soln.url = "https://github.com/dartino/sdk.git"
    soln.custom_deps = {}
    soln.custom_vars = {}
    api.gclient.c = src_cfg
    result = api.bot_update.ensure_checkout(no_shallow=True)
    build_properties.update(result.json.output.get("properties", {}))
    # gclient revert step; made unnecessary by bot_update
    # gclient update step; made unnecessary by bot_update
    # gclient runhooks wrapper step
    env = {"CHROMIUM_GYP_SYNTAX_CHECK": "1",
           "LANDMINES_VERBOSE": "1",
           "DEPOT_TOOLS_UPDATE": "0"}
    with api.context(env=env):
      api.build.python("gclient runhooks wrapper",
          api.package_repo_resource("scripts", "slave", "runhooks_wrapper.py"))
    with api.context(cwd=api.path['checkout']):
      with api.step.defer_results():
        # taskkill step
        with api.context(env={
            "BUILDBOT_JAVA_HOME": api.path["checkout"].join(
              "third_party", "java", "linux", "j2sdk")}):
          api.python("Taskkill",
                     api.path["checkout"].join("third_party", "dart", "tools",
                                               "task_kill.py"),
                     args=["--kill_browsers=True"])
        # dartino annotated steps step
        with api.context(env={
            "BUILDBOT_JAVA_HOME": "third_party/java/linux/j2sdk",
            "BUILDBOT_ANNOTATED_STEPS_RUN": "1",
            "BUILDBOT_BUILDERNAME": api.properties["buildername"]}):
          api.python("annotated steps",
                     api.path["checkout"].join("tools", "bots", "dartino.py"),
                     allow_subannotations=True)
        # taskkill step
        with api.context(env={
            "BUILDBOT_JAVA_HOME": api.path["checkout"].join(
              "third_party", "java", "linux", "j2sdk")}):
          api.python("Taskkill",
                     api.path["checkout"].join("third_party", "dart", "tools",
                                               "task_kill.py"),
                     args=["--kill_browsers=True"])
  
  
  def dartino_linux_release_asan_x86_steps(api):
    build_properties = api.properties.legacy()
    # update scripts step; implicitly run by recipe engine.
    # bot_update step
    src_cfg = api.gclient.make_config()
    soln = src_cfg.solutions.add()
    soln.name = "sdk"
    soln.url = "https://github.com/dartino/sdk.git"
    soln.custom_deps = {}
    soln.custom_vars = {}
    api.gclient.c = src_cfg
    result = api.bot_update.ensure_checkout(no_shallow=True)
    build_properties.update(result.json.output.get("properties", {}))
    # gclient revert step; made unnecessary by bot_update
    # gclient update step; made unnecessary by bot_update
    # gclient runhooks wrapper step
    env = {"CHROMIUM_GYP_SYNTAX_CHECK": "1",
           "LANDMINES_VERBOSE": "1",
           "DEPOT_TOOLS_UPDATE": "0"}
    with api.context(env=env):
      api.build.python("gclient runhooks wrapper",
          api.package_repo_resource("scripts", "slave", "runhooks_wrapper.py"))
    with api.context(cwd=api.path['checkout']):
      with api.step.defer_results():
        # taskkill step
        with api.context(env={
            "BUILDBOT_JAVA_HOME": api.path["checkout"].join(
              "third_party", "java", "linux", "j2sdk")}):
          api.python("Taskkill",
                     api.path["checkout"].join("third_party", "dart", "tools",
                                               "task_kill.py"),
                     args=["--kill_browsers=True"])
        # dartino annotated steps step
        with api.context(env={
            "BUILDBOT_JAVA_HOME": "third_party/java/linux/j2sdk",
            "BUILDBOT_ANNOTATED_STEPS_RUN": "1",
            "BUILDBOT_BUILDERNAME": api.properties["buildername"]}):
          api.python("annotated steps",
                     api.path["checkout"].join("tools", "bots", "dartino.py"),
                     allow_subannotations=True)
        # taskkill step
        with api.context(env={
            "BUILDBOT_JAVA_HOME": api.path["checkout"].join(
              "third_party", "java", "linux", "j2sdk")}):
          api.python("Taskkill",
                     api.path["checkout"].join("third_party", "dart", "tools",
                                               "task_kill.py"),
                     args=["--kill_browsers=True"])
  
  
  def dartino_mac_release_x86_dev_steps(api):
    build_properties = api.properties.legacy()
    # update scripts step; implicitly run by recipe engine.
    # bot_update step
    src_cfg = api.gclient.make_config()
    soln = src_cfg.solutions.add()
    soln.name = "sdk"
    soln.url = "https://github.com/dartino/sdk.git"
    soln.custom_deps = {}
    soln.custom_vars = {}
    api.gclient.c = src_cfg
    result = api.bot_update.ensure_checkout(no_shallow=True)
    build_properties.update(result.json.output.get("properties", {}))
    # gclient revert step; made unnecessary by bot_update
    # gclient update step; made unnecessary by bot_update
    # gclient runhooks wrapper step
    env = {"CHROMIUM_GYP_SYNTAX_CHECK": "1",
           "LANDMINES_VERBOSE": "1",
           "DEPOT_TOOLS_UPDATE": "0"}
    with api.context(env=env):
      api.build.python("gclient runhooks wrapper",
          api.package_repo_resource("scripts", "slave", "runhooks_wrapper.py"))
    with api.context(cwd=api.path['checkout']):
      with api.step.defer_results():
        # taskkill step
        api.python("Taskkill",
                   api.path["checkout"].join("third_party", "dart", "tools",
                                             "task_kill.py"),
                   args=["--kill_browsers=True"])
        # dartino annotated steps step
        with api.context(env={
            "BUILDBOT_ANNOTATED_STEPS_RUN": "1",
            "BUILDBOT_BUILDERNAME": api.properties["buildername"]}):
          api.python("annotated steps",
                     api.path["checkout"].join("tools", "bots", "dartino.py"),
                     allow_subannotations=True)
        # taskkill step
        api.python("Taskkill",
                   api.path["checkout"].join("third_party", "dart", "tools",
                                             "task_kill.py"),
                   args=["--kill_browsers=True"])
  
  
  def cross_dartino_linux_arm_steps(api):
    build_properties = api.properties.legacy()
    # update scripts step; implicitly run by recipe engine.
    # bot_update step
    src_cfg = api.gclient.make_config()
    soln = src_cfg.solutions.add()
    soln.name = "sdk"
    soln.url = "https://github.com/dartino/sdk.git"
    soln.custom_deps = {}
    soln.custom_vars = {}
    api.gclient.c = src_cfg
    result = api.bot_update.ensure_checkout(no_shallow=True)
    build_properties.update(result.json.output.get("properties", {}))
    # gclient revert step; made unnecessary by bot_update
    # gclient update step; made unnecessary by bot_update
    # gclient runhooks wrapper step
    env = {"CHROMIUM_GYP_SYNTAX_CHECK": "1",
           "LANDMINES_VERBOSE": "1",
           "DEPOT_TOOLS_UPDATE": "0"}
    with api.context(env=env):
      api.build.python("gclient runhooks wrapper",
          api.package_repo_resource("scripts", "slave", "runhooks_wrapper.py"))
    with api.context(cwd=api.path['checkout']):
      with api.step.defer_results():
        # taskkill step
        with api.context(env={
            "BUILDBOT_JAVA_HOME": api.path["checkout"].join(
              "third_party", "java", "linux", "j2sdk")}):
          api.python("Taskkill",
                     api.path["checkout"].join("third_party", "dart", "tools",
                                               "task_kill.py"),
                     args=["--kill_browsers=True"])
        # dartino annotated steps step
        with api.context(env={
            "BUILDBOT_JAVA_HOME": "third_party/java/linux/j2sdk",
            "BUILDBOT_ANNOTATED_STEPS_RUN": "1",
            "BUILDBOT_BUILDERNAME": api.properties["buildername"]}):
          api.python("annotated steps",
                     api.path["checkout"].join("tools", "bots", "dartino.py"),
                     allow_subannotations=True)
        # taskkill step
        with api.context(env={
            "BUILDBOT_JAVA_HOME": api.path["checkout"].join(
              "third_party", "java", "linux", "j2sdk")}):
          api.python("Taskkill",
                     api.path["checkout"].join("third_party", "dart", "tools",
                                               "task_kill.py"),
                     args=["--kill_browsers=True"])
    # trigger step
    trigger_spec = [{"builder_name": "target-dartino-linux-release-arm"},
                    {"builder_name": "target-dartino-linux-debug-arm"}]
    api.trigger(*trigger_spec)
  
  
  def dartino_mac_release_asan_x86_steps(api):
    build_properties = api.properties.legacy()
    # update scripts step; implicitly run by recipe engine.
    # bot_update step
    src_cfg = api.gclient.make_config()
    soln = src_cfg.solutions.add()
    soln.name = "sdk"
    soln.url = "https://github.com/dartino/sdk.git"
    soln.custom_deps = {}
    soln.custom_vars = {}
    api.gclient.c = src_cfg
    result = api.bot_update.ensure_checkout(no_shallow=True)
    build_properties.update(result.json.output.get("properties", {}))
    # gclient revert step; made unnecessary by bot_update
    # gclient update step; made unnecessary by bot_update
    # gclient runhooks wrapper step
    env = {"CHROMIUM_GYP_SYNTAX_CHECK": "1",
           "LANDMINES_VERBOSE": "1",
           "DEPOT_TOOLS_UPDATE": "0"}
    with api.context(env=env):
      api.build.python("gclient runhooks wrapper",
          api.package_repo_resource("scripts", "slave", "runhooks_wrapper.py"))
    with api.context(cwd=api.path['checkout']):
      with api.step.defer_results():
        # taskkill step
        api.python("Taskkill",
                   api.path["checkout"].join("third_party", "dart", "tools",
                                             "task_kill.py"),
                   args=["--kill_browsers=True"])
        # dartino annotated steps step
        with api.context(env={
            "BUILDBOT_ANNOTATED_STEPS_RUN": "1",
            "BUILDBOT_BUILDERNAME": api.properties["buildername"]}):
          api.python("annotated steps",
                     api.path["checkout"].join("tools", "bots", "dartino.py"),
                     allow_subannotations=True)
        # taskkill step
        api.python("Taskkill",
                   api.path["checkout"].join("third_party", "dart", "tools",
                                             "task_kill.py"),
                   args=["--kill_browsers=True"])
  
  
  def cross_dartino_linux_arm_dev_steps(api):
    build_properties = api.properties.legacy()
    # update scripts step; implicitly run by recipe engine.
    # bot_update step
    src_cfg = api.gclient.make_config()
    soln = src_cfg.solutions.add()
    soln.name = "sdk"
    soln.url = "https://github.com/dartino/sdk.git"
    soln.custom_deps = {}
    soln.custom_vars = {}
    api.gclient.c = src_cfg
    result = api.bot_update.ensure_checkout(no_shallow=True)
    build_properties.update(result.json.output.get("properties", {}))
    # gclient revert step; made unnecessary by bot_update
    # gclient update step; made unnecessary by bot_update
    # gclient runhooks wrapper step
    env = {"CHROMIUM_GYP_SYNTAX_CHECK": "1",
           "LANDMINES_VERBOSE": "1",
           "DEPOT_TOOLS_UPDATE": "0"}
    with api.context(env=env):
      api.build.python("gclient runhooks wrapper",
          api.package_repo_resource("scripts", "slave", "runhooks_wrapper.py"))
    with api.context(cwd=api.path['checkout']):
      with api.step.defer_results():
        # taskkill step
        with api.context(env={
            "BUILDBOT_JAVA_HOME": api.path["checkout"].join(
              "third_party", "java", "linux", "j2sdk")}):
          api.python("Taskkill",
                     api.path["checkout"].join("third_party", "dart", "tools",
                                               "task_kill.py"),
                     args=["--kill_browsers=True"])
        # dartino annotated steps step
        with api.context(env={
            "BUILDBOT_JAVA_HOME": "third_party/java/linux/j2sdk",
            "BUILDBOT_ANNOTATED_STEPS_RUN": "1",
            "BUILDBOT_BUILDERNAME": api.properties["buildername"]}):
          api.python("annotated steps",
                     api.path["checkout"].join("tools", "bots", "dartino.py"),
                     allow_subannotations=True)
        # taskkill step
        with api.context(env={
            "BUILDBOT_JAVA_HOME": api.path["checkout"].join(
              "third_party", "java", "linux", "j2sdk")}):
          api.python("Taskkill",
                     api.path["checkout"].join("third_party", "dart", "tools",
                                               "task_kill.py"),
                     args=["--kill_browsers=True"])
    # trigger step
    trigger_spec = [{"builder_name": "target-dartino-linux-release-arm-dev"},
                    {"builder_name": "target-dartino-linux-debug-arm-dev"}]
    api.trigger(*trigger_spec)
  
  
  def dartino_free_rtos_steps(api):
    build_properties = api.properties.legacy()
    # update scripts step; implicitly run by recipe engine.
    # bot_update step
    src_cfg = api.gclient.make_config()
    soln = src_cfg.solutions.add()
    soln.name = "sdk"
    soln.url = "https://github.com/dartino/sdk.git"
    soln.custom_deps = {}
    soln.custom_vars = {}
    api.gclient.c = src_cfg
    result = api.bot_update.ensure_checkout(no_shallow=True)
    build_properties.update(result.json.output.get("properties", {}))
    # gclient revert step; made unnecessary by bot_update
    # gclient update step; made unnecessary by bot_update
    # gclient runhooks wrapper step
    env = {"CHROMIUM_GYP_SYNTAX_CHECK": "1",
           "LANDMINES_VERBOSE": "1",
           "DEPOT_TOOLS_UPDATE": "0"}
    with api.context(env=env):
      api.build.python("gclient runhooks wrapper",
          api.package_repo_resource("scripts", "slave", "runhooks_wrapper.py"))
    with api.context(cwd=api.path['checkout']):
      with api.step.defer_results():
        # taskkill step
        with api.context(env={
            "BUILDBOT_JAVA_HOME": api.path["checkout"].join(
              "third_party", "java", "linux", "j2sdk")}):
          api.python("Taskkill",
                     api.path["checkout"].join("third_party", "dart", "tools",
                                               "task_kill.py"),
                     args=["--kill_browsers=True"])
        # dartino annotated steps step
        with api.context(env={
            "BUILDBOT_JAVA_HOME": "third_party/java/linux/j2sdk",
            "BUILDBOT_ANNOTATED_STEPS_RUN": "1",
            "BUILDBOT_BUILDERNAME": api.properties["buildername"]}):
          api.python("annotated steps",
                     api.path["checkout"].join("tools", "bots", "dartino.py"),
                     allow_subannotations=True)
        # taskkill step
        with api.context(env={
            "BUILDBOT_JAVA_HOME": api.path["checkout"].join(
              "third_party", "java", "linux", "j2sdk")}):
          api.python("Taskkill",
                     api.path["checkout"].join("third_party", "dart", "tools",
                                               "task_kill.py"),
                     args=["--kill_browsers=True"])
  
  
  def dartino_mac_release_x64_sdk_steps(api):
    build_properties = api.properties.legacy()
    # update scripts step; implicitly run by recipe engine.
    # bot_update step
    src_cfg = api.gclient.make_config()
    soln = src_cfg.solutions.add()
    soln.name = "sdk"
    soln.url = "https://github.com/dartino/sdk.git"
    soln.custom_deps = {}
    soln.custom_vars = {}
    api.gclient.c = src_cfg
    result = api.bot_update.ensure_checkout(no_shallow=True)
    build_properties.update(result.json.output.get("properties", {}))
    # gclient revert step; made unnecessary by bot_update
    # gclient update step; made unnecessary by bot_update
    # gclient runhooks wrapper step
    env = {"CHROMIUM_GYP_SYNTAX_CHECK": "1",
           "LANDMINES_VERBOSE": "1",
           "DEPOT_TOOLS_UPDATE": "0"}
    with api.context(env=env):
      api.build.python("gclient runhooks wrapper",
          api.package_repo_resource("scripts", "slave", "runhooks_wrapper.py"))
    with api.context(cwd=api.path['checkout']):
      with api.step.defer_results():
        # taskkill step
        api.python("Taskkill",
                   api.path["checkout"].join("third_party", "dart", "tools",
                                             "task_kill.py"),
                   args=["--kill_browsers=True"])
        # dartino annotated steps step
        with api.context(env={
            "BUILDBOT_ANNOTATED_STEPS_RUN": "1",
            "BUILDBOT_BUILDERNAME": api.properties["buildername"]}):
          api.python("annotated steps",
                     api.path["checkout"].join("tools", "bots", "dartino.py"),
                     allow_subannotations=True)
        # taskkill step
        api.python("Taskkill",
                   api.path["checkout"].join("third_party", "dart", "tools",
                                             "task_kill.py"),
                   args=["--kill_browsers=True"])
  
  
  def dartino_free_rtos_dev_steps(api):
    build_properties = api.properties.legacy()
    # update scripts step; implicitly run by recipe engine.
    # bot_update step
    src_cfg = api.gclient.make_config()
    soln = src_cfg.solutions.add()
    soln.name = "sdk"
    soln.url = "https://github.com/dartino/sdk.git"
    soln.custom_deps = {}
    soln.custom_vars = {}
    api.gclient.c = src_cfg
    result = api.bot_update.ensure_checkout(no_shallow=True)
    build_properties.update(result.json.output.get("properties", {}))
    # gclient revert step; made unnecessary by bot_update
    # gclient update step; made unnecessary by bot_update
    # gclient runhooks wrapper step
    env = {"CHROMIUM_GYP_SYNTAX_CHECK": "1",
           "LANDMINES_VERBOSE": "1",
           "DEPOT_TOOLS_UPDATE": "0"}
    with api.context(env=env):
      api.build.python("gclient runhooks wrapper",
          api.package_repo_resource("scripts", "slave", "runhooks_wrapper.py"))
    with api.context(cwd=api.path['checkout']):
      with api.step.defer_results():
        # taskkill step
        with api.context(env={
            "BUILDBOT_JAVA_HOME": api.path["checkout"].join(
              "third_party", "java", "linux", "j2sdk")}):
          api.python("Taskkill",
                     api.path["checkout"].join("third_party", "dart", "tools",
                                               "task_kill.py"),
                     args=["--kill_browsers=True"])
        # dartino annotated steps step
        with api.context(env={
            "BUILDBOT_JAVA_HOME": "third_party/java/linux/j2sdk",
            "BUILDBOT_ANNOTATED_STEPS_RUN": "1",
            "BUILDBOT_BUILDERNAME": api.properties["buildername"]}):
          api.python("annotated steps",
                     api.path["checkout"].join("tools", "bots", "dartino.py"),
                     allow_subannotations=True)
        # taskkill step
        with api.context(env={
            "BUILDBOT_JAVA_HOME": api.path["checkout"].join(
              "third_party", "java", "linux", "j2sdk")}):
          api.python("Taskkill",
                     api.path["checkout"].join("third_party", "dart", "tools",
                                               "task_kill.py"),
                     args=["--kill_browsers=True"])
  
  
  def dartino_mac_debug_asan_x86_steps(api):
    build_properties = api.properties.legacy()
    # update scripts step; implicitly run by recipe engine.
    # bot_update step
    src_cfg = api.gclient.make_config()
    soln = src_cfg.solutions.add()
    soln.name = "sdk"
    soln.url = "https://github.com/dartino/sdk.git"
    soln.custom_deps = {}
    soln.custom_vars = {}
    api.gclient.c = src_cfg
    result = api.bot_update.ensure_checkout(no_shallow=True)
    build_properties.update(result.json.output.get("properties", {}))
    # gclient revert step; made unnecessary by bot_update
    # gclient update step; made unnecessary by bot_update
    # gclient runhooks wrapper step
    env = {"CHROMIUM_GYP_SYNTAX_CHECK": "1",
           "LANDMINES_VERBOSE": "1",
           "DEPOT_TOOLS_UPDATE": "0"}
    with api.context(env=env):
      api.build.python("gclient runhooks wrapper",
          api.package_repo_resource("scripts", "slave", "runhooks_wrapper.py"))
    with api.context(cwd=api.path['checkout']):
      with api.step.defer_results():
        # taskkill step
        api.python("Taskkill",
                   api.path["checkout"].join("third_party", "dart", "tools",
                                             "task_kill.py"),
                   args=["--kill_browsers=True"])
        # dartino annotated steps step
        with api.context(env={
            "BUILDBOT_ANNOTATED_STEPS_RUN": "1",
            "BUILDBOT_BUILDERNAME": api.properties["buildername"]}):
          api.python("annotated steps",
                     api.path["checkout"].join("tools", "bots", "dartino.py"),
                     allow_subannotations=True)
        # taskkill step
        api.python("Taskkill",
                   api.path["checkout"].join("third_party", "dart", "tools",
                                             "task_kill.py"),
                   args=["--kill_browsers=True"])
  
  
  def dartino_mac_debug_x86_steps(api):
    build_properties = api.properties.legacy()
    # update scripts step; implicitly run by recipe engine.
    # bot_update step
    src_cfg = api.gclient.make_config()
    soln = src_cfg.solutions.add()
    soln.name = "sdk"
    soln.url = "https://github.com/dartino/sdk.git"
    soln.custom_deps = {}
    soln.custom_vars = {}
    api.gclient.c = src_cfg
    result = api.bot_update.ensure_checkout(no_shallow=True)
    build_properties.update(result.json.output.get("properties", {}))
    # gclient revert step; made unnecessary by bot_update
    # gclient update step; made unnecessary by bot_update
    # gclient runhooks wrapper step
    env = {"CHROMIUM_GYP_SYNTAX_CHECK": "1",
           "LANDMINES_VERBOSE": "1",
           "DEPOT_TOOLS_UPDATE": "0"}
    with api.context(env=env):
      api.build.python("gclient runhooks wrapper",
          api.package_repo_resource("scripts", "slave", "runhooks_wrapper.py"))
    with api.context(cwd=api.path['checkout']):
      with api.step.defer_results():
        # taskkill step
        api.python("Taskkill",
                   api.path["checkout"].join("third_party", "dart", "tools",
                                             "task_kill.py"),
                   args=["--kill_browsers=True"])
        # dartino annotated steps step
        with api.context(env={
            "BUILDBOT_ANNOTATED_STEPS_RUN": "1",
            "BUILDBOT_BUILDERNAME": api.properties["buildername"]}):
          api.python("annotated steps",
                     api.path["checkout"].join("tools", "bots", "dartino.py"),
                     allow_subannotations=True)
        # taskkill step
        api.python("Taskkill",
                   api.path["checkout"].join("third_party", "dart", "tools",
                                             "task_kill.py"),
                   args=["--kill_browsers=True"])
  
  
  def target_dartino_linux_debug_arm_steps(api):
    build_properties = api.properties.legacy()
    # update scripts step; implicitly run by recipe engine.
    # bot_update step
    src_cfg = api.gclient.make_config()
    soln = src_cfg.solutions.add()
    soln.name = "sdk"
    soln.url = "https://github.com/dartino/sdk.git"
    soln.custom_deps = {}
    soln.custom_vars = {}
    api.gclient.c = src_cfg
    result = api.bot_update.ensure_checkout(no_shallow=True)
    build_properties.update(result.json.output.get("properties", {}))
    # gclient revert step; made unnecessary by bot_update
    # gclient update step; made unnecessary by bot_update
    # gclient runhooks wrapper step
    env = {"CHROMIUM_GYP_SYNTAX_CHECK": "1",
           "LANDMINES_VERBOSE": "1",
           "DEPOT_TOOLS_UPDATE": "0"}
    with api.context(env=env):
      api.build.python("gclient runhooks wrapper",
          api.package_repo_resource("scripts", "slave", "runhooks_wrapper.py"))
    with api.context(cwd=api.path['checkout']):
      with api.step.defer_results():
        # taskkill step
        with api.context(env={
            "BUILDBOT_JAVA_HOME": api.path["checkout"].join(
              "third_party", "java", "linux", "j2sdk")}):
          api.python("Taskkill",
                     api.path["checkout"].join("third_party", "dart", "tools",
                                               "task_kill.py"),
                     args=["--kill_browsers=True"])
        # dartino annotated steps step
        with api.context(env={
            "BUILDBOT_JAVA_HOME": "third_party/java/linux/j2sdk",
            "BUILDBOT_ANNOTATED_STEPS_RUN": "1",
            "BUILDBOT_BUILDERNAME": api.properties["buildername"]}):
          api.python("annotated steps",
                     api.path["checkout"].join("tools", "bots", "dartino.py"),
                     allow_subannotations=True)
        # taskkill step
        with api.context(env={
            "BUILDBOT_JAVA_HOME": api.path["checkout"].join(
              "third_party", "java", "linux", "j2sdk")}):
          api.python("Taskkill",
                     api.path["checkout"].join("third_party", "dart", "tools",
                                               "task_kill.py"),
                     args=["--kill_browsers=True"])
  
  
  def dartino_win_debug_x86_steps(api):
    build_properties = api.properties.legacy()
    # svnkill step; not necessary in recipes
    # update scripts step; implicitly run by recipe engine.
    # extra taskkill step
    api.build.python("taskkill",
        api.package_repo_resource("scripts", "slave", "kill_processes.py"))
    # bot_update step
    src_cfg = api.gclient.make_config()
    soln = src_cfg.solutions.add()
    soln.name = "sdk"
    soln.url = "https://github.com/dartino/sdk.git"
    soln.custom_deps = {}
    soln.custom_vars = {}
    api.gclient.c = src_cfg
    result = api.bot_update.ensure_checkout(no_shallow=True)
    build_properties.update(result.json.output.get("properties", {}))
    # gclient revert step; made unnecessary by bot_update
    # gclient update step; made unnecessary by bot_update
    # gclient runhooks wrapper step
    env = {"CHROMIUM_GYP_SYNTAX_CHECK": "1",
           "LANDMINES_VERBOSE": "1",
           "DEPOT_TOOLS_UPDATE": "0"}
    with api.context(env=env):
      api.build.python("gclient runhooks wrapper",
          api.package_repo_resource("scripts", "slave", "runhooks_wrapper.py"))
    with api.context(cwd=api.path['checkout']):
      with api.step.defer_results():
        # taskkill step
        api.python("Taskkill",
                   api.path["checkout"].join("third_party", "dart", "tools",
                                             "task_kill.py"),
                   args=["--kill_browsers=True"])
        # dartino annotated steps step
        with api.context(env={
            "BUILDBOT_ANNOTATED_STEPS_RUN": "1",
            "BUILDBOT_BUILDERNAME": api.properties["buildername"]}):
          api.step("annotated steps",
                   ["python_slave",
                    api.path["checkout"].join("tools", "bots", "dartino.py")],
                   allow_subannotations=True)
        # taskkill step
        api.python("Taskkill",
                   api.path["checkout"].join("third_party", "dart", "tools",
                                             "task_kill.py"),
                   args=["--kill_browsers=True"])
  
  
  def dartino_linux_release_x86_dev_steps(api):
    build_properties = api.properties.legacy()
    # update scripts step; implicitly run by recipe engine.
    # bot_update step
    src_cfg = api.gclient.make_config()
    soln = src_cfg.solutions.add()
    soln.name = "sdk"
    soln.url = "https://github.com/dartino/sdk.git"
    soln.custom_deps = {}
    soln.custom_vars = {}
    api.gclient.c = src_cfg
    result = api.bot_update.ensure_checkout(no_shallow=True)
    build_properties.update(result.json.output.get("properties", {}))
    # gclient revert step; made unnecessary by bot_update
    # gclient update step; made unnecessary by bot_update
    # gclient runhooks wrapper step
    env = {"CHROMIUM_GYP_SYNTAX_CHECK": "1",
           "LANDMINES_VERBOSE": "1",
           "DEPOT_TOOLS_UPDATE": "0"}
    with api.context(env=env):
      api.build.python("gclient runhooks wrapper",
          api.package_repo_resource("scripts", "slave", "runhooks_wrapper.py"))
    with api.context(cwd=api.path['checkout']):
      with api.step.defer_results():
        # taskkill step
        with api.context(env={
            "BUILDBOT_JAVA_HOME": api.path["checkout"].join(
              "third_party", "java", "linux", "j2sdk")}):
          api.python("Taskkill",
                     api.path["checkout"].join("third_party", "dart", "tools",
                                               "task_kill.py"),
                     args=["--kill_browsers=True"])
        # dartino annotated steps step
        with api.context(env={
            "BUILDBOT_JAVA_HOME": "third_party/java/linux/j2sdk",
            "BUILDBOT_ANNOTATED_STEPS_RUN": "1",
            "BUILDBOT_BUILDERNAME": api.properties["buildername"]}):
          api.python("annotated steps",
                     api.path["checkout"].join("tools", "bots", "dartino.py"),
                     allow_subannotations=True)
        # taskkill step
        with api.context(env={
            "BUILDBOT_JAVA_HOME": api.path["checkout"].join(
              "third_party", "java", "linux", "j2sdk")}):
          api.python("Taskkill",
                     api.path["checkout"].join("third_party", "dart", "tools",
                                               "task_kill.py"),
                     args=["--kill_browsers=True"])
  
  
  def dartino_mac_debug_x86_dev_steps(api):
    build_properties = api.properties.legacy()
    # update scripts step; implicitly run by recipe engine.
    # bot_update step
    src_cfg = api.gclient.make_config()
    soln = src_cfg.solutions.add()
    soln.name = "sdk"
    soln.url = "https://github.com/dartino/sdk.git"
    soln.custom_deps = {}
    soln.custom_vars = {}
    api.gclient.c = src_cfg
    result = api.bot_update.ensure_checkout(no_shallow=True)
    build_properties.update(result.json.output.get("properties", {}))
    # gclient revert step; made unnecessary by bot_update
    # gclient update step; made unnecessary by bot_update
    # gclient runhooks wrapper step
    env = {"CHROMIUM_GYP_SYNTAX_CHECK": "1",
           "LANDMINES_VERBOSE": "1",
           "DEPOT_TOOLS_UPDATE": "0"}
    with api.context(env=env):
      api.build.python("gclient runhooks wrapper",
          api.package_repo_resource("scripts", "slave", "runhooks_wrapper.py"))
    with api.context(cwd=api.path['checkout']):
      with api.step.defer_results():
        # taskkill step
        api.python("Taskkill",
                   api.path["checkout"].join("third_party", "dart", "tools",
                                             "task_kill.py"),
                   args=["--kill_browsers=True"])
        # dartino annotated steps step
        with api.context(env={
            "BUILDBOT_ANNOTATED_STEPS_RUN": "1",
            "BUILDBOT_BUILDERNAME": api.properties["buildername"]}):
          api.python("annotated steps",
                     api.path["checkout"].join("tools", "bots", "dartino.py"),
                     allow_subannotations=True)
        # taskkill step
        api.python("Taskkill",
                   api.path["checkout"].join("third_party", "dart", "tools",
                                             "task_kill.py"),
                   args=["--kill_browsers=True"])
  
  
  def dartino_linux_release_x64_sdk_dev_steps(api):
    build_properties = api.properties.legacy()
    # update scripts step; implicitly run by recipe engine.
    # bot_update step
    src_cfg = api.gclient.make_config()
    soln = src_cfg.solutions.add()
    soln.name = "sdk"
    soln.url = "https://github.com/dartino/sdk.git"
    soln.custom_deps = {}
    soln.custom_vars = {}
    api.gclient.c = src_cfg
    result = api.bot_update.ensure_checkout(no_shallow=True)
    build_properties.update(result.json.output.get("properties", {}))
    # gclient revert step; made unnecessary by bot_update
    # gclient update step; made unnecessary by bot_update
    # gclient runhooks wrapper step
    env = {"CHROMIUM_GYP_SYNTAX_CHECK": "1",
           "LANDMINES_VERBOSE": "1",
           "DEPOT_TOOLS_UPDATE": "0"}
    with api.context(env=env):
      api.build.python("gclient runhooks wrapper",
          api.package_repo_resource("scripts", "slave", "runhooks_wrapper.py"))
    with api.context(cwd=api.path['checkout']):
      with api.step.defer_results():
        # taskkill step
        with api.context(env={
            "BUILDBOT_JAVA_HOME": api.path["checkout"].join(
              "third_party", "java", "linux", "j2sdk")}):
          api.python("Taskkill",
                     api.path["checkout"].join("third_party", "dart", "tools",
                                               "task_kill.py"),
                     args=["--kill_browsers=True"])
        # dartino annotated steps step
        with api.context(env={
            "BUILDBOT_JAVA_HOME": "third_party/java/linux/j2sdk",
            "BUILDBOT_ANNOTATED_STEPS_RUN": "1",
            "BUILDBOT_BUILDERNAME": api.properties["buildername"]}):
          api.python("annotated steps",
                     api.path["checkout"].join("tools", "bots", "dartino.py"),
                     allow_subannotations=True)
        # taskkill step
        with api.context(env={
            "BUILDBOT_JAVA_HOME": api.path["checkout"].join(
              "third_party", "java", "linux", "j2sdk")}):
          api.python("Taskkill",
                     api.path["checkout"].join("third_party", "dart", "tools",
                                               "task_kill.py"),
                     args=["--kill_browsers=True"])
    # trigger step
    trigger_spec = [{"builder_name": "dartino-mac-release-x64-sdk-dev"}]
    api.trigger(*trigger_spec)
  
  
  def dartino_linux_debug_asan_x86_dev_steps(api):
    build_properties = api.properties.legacy()
    # update scripts step; implicitly run by recipe engine.
    # bot_update step
    src_cfg = api.gclient.make_config()
    soln = src_cfg.solutions.add()
    soln.name = "sdk"
    soln.url = "https://github.com/dartino/sdk.git"
    soln.custom_deps = {}
    soln.custom_vars = {}
    api.gclient.c = src_cfg
    result = api.bot_update.ensure_checkout(no_shallow=True)
    build_properties.update(result.json.output.get("properties", {}))
    # gclient revert step; made unnecessary by bot_update
    # gclient update step; made unnecessary by bot_update
    # gclient runhooks wrapper step
    env = {"CHROMIUM_GYP_SYNTAX_CHECK": "1",
           "LANDMINES_VERBOSE": "1",
           "DEPOT_TOOLS_UPDATE": "0"}
    with api.context(env=env):
      api.build.python("gclient runhooks wrapper",
          api.package_repo_resource("scripts", "slave", "runhooks_wrapper.py"))
    with api.context(cwd=api.path['checkout']):
      with api.step.defer_results():
        # taskkill step
        with api.context(env={
            "BUILDBOT_JAVA_HOME": api.path["checkout"].join(
              "third_party", "java", "linux", "j2sdk")}):
          api.python("Taskkill",
                     api.path["checkout"].join("third_party", "dart", "tools",
                                               "task_kill.py"),
                     args=["--kill_browsers=True"])
        # dartino annotated steps step
        with api.context(env={
            "BUILDBOT_JAVA_HOME": "third_party/java/linux/j2sdk",
            "BUILDBOT_ANNOTATED_STEPS_RUN": "1",
            "BUILDBOT_BUILDERNAME": api.properties["buildername"]}):
          api.python("annotated steps",
                     api.path["checkout"].join("tools", "bots", "dartino.py"),
                     allow_subannotations=True)
        # taskkill step
        with api.context(env={
            "BUILDBOT_JAVA_HOME": api.path["checkout"].join(
              "third_party", "java", "linux", "j2sdk")}):
          api.python("Taskkill",
                     api.path["checkout"].join("third_party", "dart", "tools",
                                               "task_kill.py"),
                     args=["--kill_browsers=True"])
  
  
  def dartino_linux_debug_asan_x86_steps(api):
    build_properties = api.properties.legacy()
    # update scripts step; implicitly run by recipe engine.
    # bot_update step
    src_cfg = api.gclient.make_config()
    soln = src_cfg.solutions.add()
    soln.name = "sdk"
    soln.url = "https://github.com/dartino/sdk.git"
    soln.custom_deps = {}
    soln.custom_vars = {}
    api.gclient.c = src_cfg
    result = api.bot_update.ensure_checkout(no_shallow=True)
    build_properties.update(result.json.output.get("properties", {}))
    # gclient revert step; made unnecessary by bot_update
    # gclient update step; made unnecessary by bot_update
    # gclient runhooks wrapper step
    env = {"CHROMIUM_GYP_SYNTAX_CHECK": "1",
           "LANDMINES_VERBOSE": "1",
           "DEPOT_TOOLS_UPDATE": "0"}
    with api.context(env=env):
      api.build.python("gclient runhooks wrapper",
          api.package_repo_resource("scripts", "slave", "runhooks_wrapper.py"))
    with api.context(cwd=api.path['checkout']):
      with api.step.defer_results():
        # taskkill step
        with api.context(env={
            "BUILDBOT_JAVA_HOME": api.path["checkout"].join(
              "third_party", "java", "linux", "j2sdk")}):
          api.python("Taskkill",
                     api.path["checkout"].join("third_party", "dart", "tools",
                                               "task_kill.py"),
                     args=["--kill_browsers=True"])
        # dartino annotated steps step
        with api.context(env={
            "BUILDBOT_JAVA_HOME": "third_party/java/linux/j2sdk",
            "BUILDBOT_ANNOTATED_STEPS_RUN": "1",
            "BUILDBOT_BUILDERNAME": api.properties["buildername"]}):
          api.python("annotated steps",
                     api.path["checkout"].join("tools", "bots", "dartino.py"),
                     allow_subannotations=True)
        # taskkill step
        with api.context(env={
            "BUILDBOT_JAVA_HOME": api.path["checkout"].join(
              "third_party", "java", "linux", "j2sdk")}):
          api.python("Taskkill",
                     api.path["checkout"].join("third_party", "dart", "tools",
                                               "task_kill.py"),
                     args=["--kill_browsers=True"])
  
  
  def dartino_mac_release_asan_x86_dev_steps(api):
    build_properties = api.properties.legacy()
    # update scripts step; implicitly run by recipe engine.
    # bot_update step
    src_cfg = api.gclient.make_config()
    soln = src_cfg.solutions.add()
    soln.name = "sdk"
    soln.url = "https://github.com/dartino/sdk.git"
    soln.custom_deps = {}
    soln.custom_vars = {}
    api.gclient.c = src_cfg
    result = api.bot_update.ensure_checkout(no_shallow=True)
    build_properties.update(result.json.output.get("properties", {}))
    # gclient revert step; made unnecessary by bot_update
    # gclient update step; made unnecessary by bot_update
    # gclient runhooks wrapper step
    env = {"CHROMIUM_GYP_SYNTAX_CHECK": "1",
           "LANDMINES_VERBOSE": "1",
           "DEPOT_TOOLS_UPDATE": "0"}
    with api.context(env=env):
      api.build.python("gclient runhooks wrapper",
          api.package_repo_resource("scripts", "slave", "runhooks_wrapper.py"))
    with api.context(cwd=api.path['checkout']):
      with api.step.defer_results():
        # taskkill step
        api.python("Taskkill",
                   api.path["checkout"].join("third_party", "dart", "tools",
                                             "task_kill.py"),
                   args=["--kill_browsers=True"])
        # dartino annotated steps step
        with api.context(env={
            "BUILDBOT_ANNOTATED_STEPS_RUN": "1",
            "BUILDBOT_BUILDERNAME": api.properties["buildername"]}):
          api.python("annotated steps",
                     api.path["checkout"].join("tools", "bots", "dartino.py"),
                     allow_subannotations=True)
        # taskkill step
        api.python("Taskkill",
                   api.path["checkout"].join("third_party", "dart", "tools",
                                             "task_kill.py"),
                   args=["--kill_browsers=True"])
  
  
  def target_dartino_linux_release_arm_steps(api):
    build_properties = api.properties.legacy()
    # update scripts step; implicitly run by recipe engine.
    # bot_update step
    src_cfg = api.gclient.make_config()
    soln = src_cfg.solutions.add()
    soln.name = "sdk"
    soln.url = "https://github.com/dartino/sdk.git"
    soln.custom_deps = {}
    soln.custom_vars = {}
    api.gclient.c = src_cfg
    result = api.bot_update.ensure_checkout(no_shallow=True)
    build_properties.update(result.json.output.get("properties", {}))
    # gclient revert step; made unnecessary by bot_update
    # gclient update step; made unnecessary by bot_update
    # gclient runhooks wrapper step
    env = {"CHROMIUM_GYP_SYNTAX_CHECK": "1",
           "LANDMINES_VERBOSE": "1",
           "DEPOT_TOOLS_UPDATE": "0"}
    with api.context(env=env):
      api.build.python("gclient runhooks wrapper",
          api.package_repo_resource("scripts", "slave", "runhooks_wrapper.py"))
    with api.context(cwd=api.path['checkout']):
      with api.step.defer_results():
        # taskkill step
        with api.context(env={
            "BUILDBOT_JAVA_HOME": api.path["checkout"].join(
              "third_party", "java", "linux", "j2sdk")}):
          api.python("Taskkill",
                     api.path["checkout"].join("third_party", "dart", "tools",
                                               "task_kill.py"),
                     args=["--kill_browsers=True"])
        # dartino annotated steps step
        with api.context(env={
            "BUILDBOT_JAVA_HOME": "third_party/java/linux/j2sdk",
            "BUILDBOT_ANNOTATED_STEPS_RUN": "1",
            "BUILDBOT_BUILDERNAME": api.properties["buildername"]}):
          api.python("annotated steps",
                     api.path["checkout"].join("tools", "bots", "dartino.py"),
                     allow_subannotations=True)
        # taskkill step
        with api.context(env={
            "BUILDBOT_JAVA_HOME": api.path["checkout"].join(
              "third_party", "java", "linux", "j2sdk")}):
          api.python("Taskkill",
                     api.path["checkout"].join("third_party", "dart", "tools",
                                               "task_kill.py"),
                     args=["--kill_browsers=True"])
  
  
  def dartino_mac_release_x86_steps(api):
    build_properties = api.properties.legacy()
    # update scripts step; implicitly run by recipe engine.
    # bot_update step
    src_cfg = api.gclient.make_config()
    soln = src_cfg.solutions.add()
    soln.name = "sdk"
    soln.url = "https://github.com/dartino/sdk.git"
    soln.custom_deps = {}
    soln.custom_vars = {}
    api.gclient.c = src_cfg
    result = api.bot_update.ensure_checkout(no_shallow=True)
    build_properties.update(result.json.output.get("properties", {}))
    # gclient revert step; made unnecessary by bot_update
    # gclient update step; made unnecessary by bot_update
    # gclient runhooks wrapper step
    env = {"CHROMIUM_GYP_SYNTAX_CHECK": "1",
           "LANDMINES_VERBOSE": "1",
           "DEPOT_TOOLS_UPDATE": "0"}
    with api.context(env=env):
      api.build.python("gclient runhooks wrapper",
          api.package_repo_resource("scripts", "slave", "runhooks_wrapper.py"))
    with api.context(cwd=api.path['checkout']):
      with api.step.defer_results():
        # taskkill step
        api.python("Taskkill",
                   api.path["checkout"].join("third_party", "dart", "tools",
                                             "task_kill.py"),
                   args=["--kill_browsers=True"])
        # dartino annotated steps step
        with api.context(env={
            "BUILDBOT_ANNOTATED_STEPS_RUN": "1",
            "BUILDBOT_BUILDERNAME": api.properties["buildername"]}):
          api.python("annotated steps",
                     api.path["checkout"].join("tools", "bots", "dartino.py"),
                     allow_subannotations=True)
        # taskkill step
        api.python("Taskkill",
                   api.path["checkout"].join("third_party", "dart", "tools",
                                             "task_kill.py"),
                   args=["--kill_browsers=True"])
  
  
  def dartino_linux_release_x64_sdk_steps(api):
    build_properties = api.properties.legacy()
    # update scripts step; implicitly run by recipe engine.
    # bot_update step
    src_cfg = api.gclient.make_config()
    soln = src_cfg.solutions.add()
    soln.name = "sdk"
    soln.url = "https://github.com/dartino/sdk.git"
    soln.custom_deps = {}
    soln.custom_vars = {}
    api.gclient.c = src_cfg
    result = api.bot_update.ensure_checkout(no_shallow=True)
    build_properties.update(result.json.output.get("properties", {}))
    # gclient revert step; made unnecessary by bot_update
    # gclient update step; made unnecessary by bot_update
    # gclient runhooks wrapper step
    env = {"CHROMIUM_GYP_SYNTAX_CHECK": "1",
           "LANDMINES_VERBOSE": "1",
           "DEPOT_TOOLS_UPDATE": "0"}
    with api.context(env=env):
      api.build.python("gclient runhooks wrapper",
          api.package_repo_resource("scripts", "slave", "runhooks_wrapper.py"))
    with api.context(cwd=api.path['checkout']):
      with api.step.defer_results():
        # taskkill step
        with api.context(env={
            "BUILDBOT_JAVA_HOME": api.path["checkout"].join(
              "third_party", "java", "linux", "j2sdk")}):
          api.python("Taskkill",
                     api.path["checkout"].join("third_party", "dart", "tools",
                                               "task_kill.py"),
                     args=["--kill_browsers=True"])
        # dartino annotated steps step
        with api.context(env={
            "BUILDBOT_JAVA_HOME": "third_party/java/linux/j2sdk",
            "BUILDBOT_ANNOTATED_STEPS_RUN": "1",
            "BUILDBOT_BUILDERNAME": api.properties["buildername"]}):
          api.python("annotated steps",
                     api.path["checkout"].join("tools", "bots", "dartino.py"),
                     allow_subannotations=True)
        # taskkill step
        with api.context(env={
            "BUILDBOT_JAVA_HOME": api.path["checkout"].join(
              "third_party", "java", "linux", "j2sdk")}):
          api.python("Taskkill",
                     api.path["checkout"].join("third_party", "dart", "tools",
                                               "task_kill.py"),
                     args=["--kill_browsers=True"])
    # trigger step
    trigger_spec = [{"builder_name": "dartino-mac-release-x64-sdk"}]
    api.trigger(*trigger_spec)
  
  
  def dartino_lk_debug_arm_qemu_steps(api):
    build_properties = api.properties.legacy()
    # update scripts step; implicitly run by recipe engine.
    # bot_update step
    src_cfg = api.gclient.make_config()
    soln = src_cfg.solutions.add()
    soln.name = "sdk"
    soln.url = "https://github.com/dartino/sdk.git"
    soln.custom_deps = {}
    soln.custom_vars = {}
    api.gclient.c = src_cfg
    result = api.bot_update.ensure_checkout(no_shallow=True)
    build_properties.update(result.json.output.get("properties", {}))
    # gclient revert step; made unnecessary by bot_update
    # gclient update step; made unnecessary by bot_update
    # gclient runhooks wrapper step
    env = {"CHROMIUM_GYP_SYNTAX_CHECK": "1",
           "LANDMINES_VERBOSE": "1",
           "DEPOT_TOOLS_UPDATE": "0"}
    with api.context(env=env):
      api.build.python("gclient runhooks wrapper",
          api.package_repo_resource("scripts", "slave", "runhooks_wrapper.py"))
    with api.context(cwd=api.path['checkout']):
      with api.step.defer_results():
        # taskkill step
        with api.context(env={
            "BUILDBOT_JAVA_HOME": api.path["checkout"].join(
              "third_party", "java", "linux", "j2sdk")}):
          api.python("Taskkill",
                     api.path["checkout"].join("third_party", "dart", "tools",
                                               "task_kill.py"),
                     args=["--kill_browsers=True"])
        # dartino annotated steps step
        with api.context(env={
            "BUILDBOT_JAVA_HOME": "third_party/java/linux/j2sdk",
            "BUILDBOT_ANNOTATED_STEPS_RUN": "1",
            "BUILDBOT_BUILDERNAME": api.properties["buildername"]}):
          api.python("annotated steps",
                     api.path["checkout"].join("tools", "bots", "dartino.py"),
                     allow_subannotations=True)
        # taskkill step
        with api.context(env={
            "BUILDBOT_JAVA_HOME": api.path["checkout"].join(
              "third_party", "java", "linux", "j2sdk")}):
          api.python("Taskkill",
                     api.path["checkout"].join("third_party", "dart", "tools",
                                               "task_kill.py"),
                     args=["--kill_browsers=True"])
  
  
  def dartino_mac_release_x64_sdk_dev_steps(api):
    build_properties = api.properties.legacy()
    # update scripts step; implicitly run by recipe engine.
    # bot_update step
    src_cfg = api.gclient.make_config()
    soln = src_cfg.solutions.add()
    soln.name = "sdk"
    soln.url = "https://github.com/dartino/sdk.git"
    soln.custom_deps = {}
    soln.custom_vars = {}
    api.gclient.c = src_cfg
    result = api.bot_update.ensure_checkout(no_shallow=True)
    build_properties.update(result.json.output.get("properties", {}))
    # gclient revert step; made unnecessary by bot_update
    # gclient update step; made unnecessary by bot_update
    # gclient runhooks wrapper step
    env = {"CHROMIUM_GYP_SYNTAX_CHECK": "1",
           "LANDMINES_VERBOSE": "1",
           "DEPOT_TOOLS_UPDATE": "0"}
    with api.context(env=env):
      api.build.python("gclient runhooks wrapper",
          api.package_repo_resource("scripts", "slave", "runhooks_wrapper.py"))
    with api.context(cwd=api.path['checkout']):
      with api.step.defer_results():
        # taskkill step
        api.python("Taskkill",
                   api.path["checkout"].join("third_party", "dart", "tools",
                                             "task_kill.py"),
                   args=["--kill_browsers=True"])
        # dartino annotated steps step
        with api.context(env={
            "BUILDBOT_ANNOTATED_STEPS_RUN": "1",
            "BUILDBOT_BUILDERNAME": api.properties["buildername"]}):
          api.python("annotated steps",
                     api.path["checkout"].join("tools", "bots", "dartino.py"),
                     allow_subannotations=True)
        # taskkill step
        api.python("Taskkill",
                   api.path["checkout"].join("third_party", "dart", "tools",
                                             "task_kill.py"),
                   args=["--kill_browsers=True"])
  
  
  def dartino_linux_release_asan_x86_dev_steps(api):
    build_properties = api.properties.legacy()
    # update scripts step; implicitly run by recipe engine.
    # bot_update step
    src_cfg = api.gclient.make_config()
    soln = src_cfg.solutions.add()
    soln.name = "sdk"
    soln.url = "https://github.com/dartino/sdk.git"
    soln.custom_deps = {}
    soln.custom_vars = {}
    api.gclient.c = src_cfg
    result = api.bot_update.ensure_checkout(no_shallow=True)
    build_properties.update(result.json.output.get("properties", {}))
    # gclient revert step; made unnecessary by bot_update
    # gclient update step; made unnecessary by bot_update
    # gclient runhooks wrapper step
    env = {"CHROMIUM_GYP_SYNTAX_CHECK": "1",
           "LANDMINES_VERBOSE": "1",
           "DEPOT_TOOLS_UPDATE": "0"}
    with api.context(env=env):
      api.build.python("gclient runhooks wrapper",
          api.package_repo_resource("scripts", "slave", "runhooks_wrapper.py"))
    with api.context(cwd=api.path['checkout']):
      with api.step.defer_results():
        # taskkill step
        with api.context(env={
            "BUILDBOT_JAVA_HOME": api.path["checkout"].join(
              "third_party", "java", "linux", "j2sdk")}):
          api.python("Taskkill",
                     api.path["checkout"].join("third_party", "dart", "tools",
                                               "task_kill.py"),
                     args=["--kill_browsers=True"])
        # dartino annotated steps step
        with api.context(env={
            "BUILDBOT_JAVA_HOME": "third_party/java/linux/j2sdk",
            "BUILDBOT_ANNOTATED_STEPS_RUN": "1",
            "BUILDBOT_BUILDERNAME": api.properties["buildername"]}):
          api.python("annotated steps",
                     api.path["checkout"].join("tools", "bots", "dartino.py"),
                     allow_subannotations=True)
        # taskkill step
        with api.context(env={
            "BUILDBOT_JAVA_HOME": api.path["checkout"].join(
              "third_party", "java", "linux", "j2sdk")}):
          api.python("Taskkill",
                     api.path["checkout"].join("third_party", "dart", "tools",
                                               "task_kill.py"),
                     args=["--kill_browsers=True"])
  
  
  def dartino_linux_debug_x86_steps(api):
    build_properties = api.properties.legacy()
    # update scripts step; implicitly run by recipe engine.
    # bot_update step
    src_cfg = api.gclient.make_config()
    soln = src_cfg.solutions.add()
    soln.name = "sdk"
    soln.url = "https://github.com/dartino/sdk.git"
    soln.custom_deps = {}
    soln.custom_vars = {}
    api.gclient.c = src_cfg
    result = api.bot_update.ensure_checkout(no_shallow=True)
    build_properties.update(result.json.output.get("properties", {}))
    # gclient revert step; made unnecessary by bot_update
    # gclient update step; made unnecessary by bot_update
    # gclient runhooks wrapper step
    env = {"CHROMIUM_GYP_SYNTAX_CHECK": "1",
           "LANDMINES_VERBOSE": "1",
           "DEPOT_TOOLS_UPDATE": "0"}
    with api.context(env=env):
      api.build.python("gclient runhooks wrapper",
          api.package_repo_resource("scripts", "slave", "runhooks_wrapper.py"))
    with api.context(cwd=api.path['checkout']):
      with api.step.defer_results():
        # taskkill step
        with api.context(env={
            "BUILDBOT_JAVA_HOME": api.path["checkout"].join(
              "third_party", "java", "linux", "j2sdk")}):
          api.python("Taskkill",
                     api.path["checkout"].join("third_party", "dart", "tools",
                                               "task_kill.py"),
                     args=["--kill_browsers=True"])
        # dartino annotated steps step
        with api.context(env={
            "BUILDBOT_JAVA_HOME": "third_party/java/linux/j2sdk",
            "BUILDBOT_ANNOTATED_STEPS_RUN": "1",
            "BUILDBOT_BUILDERNAME": api.properties["buildername"]}):
          api.python("annotated steps",
                     api.path["checkout"].join("tools", "bots", "dartino.py"),
                     allow_subannotations=True)
        # taskkill step
        with api.context(env={
            "BUILDBOT_JAVA_HOME": api.path["checkout"].join(
              "third_party", "java", "linux", "j2sdk")}):
          api.python("Taskkill",
                     api.path["checkout"].join("third_party", "dart", "tools",
                                               "task_kill.py"),
                     args=["--kill_browsers=True"])
  
  
  def dartino_linux_release_x86_steps(api):
    build_properties = api.properties.legacy()
    # update scripts step; implicitly run by recipe engine.
    # bot_update step
    src_cfg = api.gclient.make_config()
    soln = src_cfg.solutions.add()
    soln.name = "sdk"
    soln.url = "https://github.com/dartino/sdk.git"
    soln.custom_deps = {}
    soln.custom_vars = {}
    api.gclient.c = src_cfg
    result = api.bot_update.ensure_checkout(no_shallow=True)
    build_properties.update(result.json.output.get("properties", {}))
    # gclient revert step; made unnecessary by bot_update
    # gclient update step; made unnecessary by bot_update
    # gclient runhooks wrapper step
    env = {"CHROMIUM_GYP_SYNTAX_CHECK": "1",
           "LANDMINES_VERBOSE": "1",
           "DEPOT_TOOLS_UPDATE": "0"}
    with api.context(env=env):
      api.build.python("gclient runhooks wrapper",
          api.package_repo_resource("scripts", "slave", "runhooks_wrapper.py"))
    with api.context(cwd=api.path['checkout']):
      with api.step.defer_results():
        # taskkill step
        with api.context(env={
            "BUILDBOT_JAVA_HOME": api.path["checkout"].join(
              "third_party", "java", "linux", "j2sdk")}):
          api.python("Taskkill",
                     api.path["checkout"].join("third_party", "dart", "tools",
                                               "task_kill.py"),
                     args=["--kill_browsers=True"])
        # dartino annotated steps step
        with api.context(env={
            "BUILDBOT_JAVA_HOME": "third_party/java/linux/j2sdk",
            "BUILDBOT_ANNOTATED_STEPS_RUN": "1",
            "BUILDBOT_BUILDERNAME": api.properties["buildername"]}):
          api.python("annotated steps",
                     api.path["checkout"].join("tools", "bots", "dartino.py"),
                     allow_subannotations=True)
        # taskkill step
        with api.context(env={
            "BUILDBOT_JAVA_HOME": api.path["checkout"].join(
              "third_party", "java", "linux", "j2sdk")}):
          api.python("Taskkill",
                     api.path["checkout"].join("third_party", "dart", "tools",
                                               "task_kill.py"),
                     args=["--kill_browsers=True"])
  
  
  def dartino_linux_debug_x86_dev_steps(api):
    build_properties = api.properties.legacy()
    # update scripts step; implicitly run by recipe engine.
    # bot_update step
    src_cfg = api.gclient.make_config()
    soln = src_cfg.solutions.add()
    soln.name = "sdk"
    soln.url = "https://github.com/dartino/sdk.git"
    soln.custom_deps = {}
    soln.custom_vars = {}
    api.gclient.c = src_cfg
    result = api.bot_update.ensure_checkout(no_shallow=True)
    build_properties.update(result.json.output.get("properties", {}))
    # gclient revert step; made unnecessary by bot_update
    # gclient update step; made unnecessary by bot_update
    # gclient runhooks wrapper step
    env = {"CHROMIUM_GYP_SYNTAX_CHECK": "1",
           "LANDMINES_VERBOSE": "1",
           "DEPOT_TOOLS_UPDATE": "0"}
    with api.context(env=env):
      api.build.python("gclient runhooks wrapper",
          api.package_repo_resource("scripts", "slave", "runhooks_wrapper.py"))
    with api.context(cwd=api.path['checkout']):
      with api.step.defer_results():
        # taskkill step
        with api.context(env={
            "BUILDBOT_JAVA_HOME": api.path["checkout"].join(
              "third_party", "java", "linux", "j2sdk")}):
          api.python("Taskkill",
                     api.path["checkout"].join("third_party", "dart", "tools",
                                               "task_kill.py"),
                     args=["--kill_browsers=True"])
        # dartino annotated steps step
        with api.context(env={
            "BUILDBOT_JAVA_HOME": "third_party/java/linux/j2sdk",
            "BUILDBOT_ANNOTATED_STEPS_RUN": "1",
            "BUILDBOT_BUILDERNAME": api.properties["buildername"]}):
          api.python("annotated steps",
                     api.path["checkout"].join("tools", "bots", "dartino.py"),
                     allow_subannotations=True)
        # taskkill step
        with api.context(env={
            "BUILDBOT_JAVA_HOME": api.path["checkout"].join(
              "third_party", "java", "linux", "j2sdk")}):
          api.python("Taskkill",
                     api.path["checkout"].join("third_party", "dart", "tools",
                                               "task_kill.py"),
                     args=["--kill_browsers=True"])
  
  
  def dartino_win_debug_x86_dev_steps(api):
    build_properties = api.properties.legacy()
    # svnkill step; not necessary in recipes
    # update scripts step; implicitly run by recipe engine.
    # extra taskkill step
    api.build.python("taskkill",
        api.package_repo_resource("scripts", "slave", "kill_processes.py"))
    # bot_update step
    src_cfg = api.gclient.make_config()
    soln = src_cfg.solutions.add()
    soln.name = "sdk"
    soln.url = "https://github.com/dartino/sdk.git"
    soln.custom_deps = {}
    soln.custom_vars = {}
    api.gclient.c = src_cfg
    result = api.bot_update.ensure_checkout(no_shallow=True)
    build_properties.update(result.json.output.get("properties", {}))
    # gclient revert step; made unnecessary by bot_update
    # gclient update step; made unnecessary by bot_update
    # gclient runhooks wrapper step
    env = {"CHROMIUM_GYP_SYNTAX_CHECK": "1",
           "LANDMINES_VERBOSE": "1",
           "DEPOT_TOOLS_UPDATE": "0"}
    with api.context(env=env):
      api.build.python("gclient runhooks wrapper",
          api.package_repo_resource("scripts", "slave", "runhooks_wrapper.py"))
    with api.context(cwd=api.path['checkout']):
      with api.step.defer_results():
        # taskkill step
        api.python("Taskkill",
                   api.path["checkout"].join("third_party", "dart", "tools",
                                             "task_kill.py"),
                   args=["--kill_browsers=True"])
        # dartino annotated steps step
        with api.context(env={
            "BUILDBOT_ANNOTATED_STEPS_RUN": "1",
            "BUILDBOT_BUILDERNAME": api.properties["buildername"]}):
          api.step("annotated steps",
                   ["python_slave",
                    api.path["checkout"].join("tools", "bots", "dartino.py")],
                   allow_subannotations=True)
        # taskkill step
        api.python("Taskkill",
                   api.path["checkout"].join("third_party", "dart", "tools",
                                             "task_kill.py"),
                   args=["--kill_browsers=True"])
  
  
  dispatch_directory = {
    'target-dartino-linux-debug-arm-dev':
        target_dartino_linux_debug_arm_dev_steps,
    'dartino-mac-debug-asan-x86-dev': dartino_mac_debug_asan_x86_dev_steps,
    'target-dartino-linux-release-arm-dev':
        target_dartino_linux_release_arm_dev_steps,
    'dartino-lk-debug-arm-qemu-dev': dartino_lk_debug_arm_qemu_dev_steps,
    'dartino-linux-release-asan-x86': dartino_linux_release_asan_x86_steps,
    'dartino-mac-release-x86-dev': dartino_mac_release_x86_dev_steps,
    'cross-dartino-linux-arm': cross_dartino_linux_arm_steps,
    'dartino-mac-release-asan-x86': dartino_mac_release_asan_x86_steps,
    'cross-dartino-linux-arm-dev': cross_dartino_linux_arm_dev_steps,
    'dartino-free-rtos': dartino_free_rtos_steps,
    'dartino-mac-release-x64-sdk': dartino_mac_release_x64_sdk_steps,
    'dartino-free-rtos-dev': dartino_free_rtos_dev_steps,
    'dartino-mac-debug-asan-x86': dartino_mac_debug_asan_x86_steps,
    'dartino-mac-debug-x86': dartino_mac_debug_x86_steps,
    'target-dartino-linux-debug-arm': target_dartino_linux_debug_arm_steps,
    'dartino-win-debug-x86': dartino_win_debug_x86_steps,
    'dartino-linux-release-x86-dev': dartino_linux_release_x86_dev_steps,
    'dartino-mac-debug-x86-dev': dartino_mac_debug_x86_dev_steps,
    'dartino-linux-release-x64-sdk-dev': dartino_linux_release_x64_sdk_dev_steps,
    'dartino-linux-debug-asan-x86-dev': dartino_linux_debug_asan_x86_dev_steps,
    'dartino-linux-debug-asan-x86': dartino_linux_debug_asan_x86_steps,
    'dartino-mac-release-asan-x86-dev': dartino_mac_release_asan_x86_dev_steps,
    'target-dartino-linux-release-arm': target_dartino_linux_release_arm_steps,
    'dartino-mac-release-x86': dartino_mac_release_x86_steps,
    'dartino-linux-release-x64-sdk': dartino_linux_release_x64_sdk_steps,
    'dartino-lk-debug-arm-qemu': dartino_lk_debug_arm_qemu_steps,
    'dartino-mac-release-x64-sdk-dev': dartino_mac_release_x64_sdk_dev_steps,
    'dartino-linux-release-asan-x86-dev':
        dartino_linux_release_asan_x86_dev_steps,
    'dartino-linux-debug-x86': dartino_linux_debug_x86_steps,
    'dartino-linux-release-x86': dartino_linux_release_x86_steps,
    'dartino-linux-debug-x86-dev': dartino_linux_debug_x86_dev_steps,
    'dartino-win-debug-x86-dev': dartino_win_debug_x86_dev_steps,
  }
  
  
  def RunSteps(api):
    if api.properties["buildername"] not in dispatch_directory:
      raise api.step.StepFailure("Builder unsupported by recipe.")
    else:
      dispatch_directory[api.properties["buildername"]](api)
  
  def GenTests(api):
    yield (api.test('target_dartino_linux_debug_arm_dev') +
      api.properties(mastername='client.fletch') +
      api.properties(buildername='target-dartino-linux-debug-arm-dev') +
      api.properties(revision='123456789abcdef') +
      api.properties(bot_id='TestSlave')
          )
    yield (api.test('dartino_mac_debug_asan_x86_dev') +
      api.properties(mastername='client.fletch') +
      api.properties(buildername='dartino-mac-debug-asan-x86-dev') +
      api.properties(revision='123456789abcdef') +
      api.properties(bot_id='TestSlave')
          )
    yield (api.test('target_dartino_linux_release_arm_dev') +
      api.properties(mastername='client.fletch') +
      api.properties(buildername='target-dartino-linux-release-arm-dev') +
      api.properties(revision='123456789abcdef') +
      api.properties(bot_id='TestSlave')
          )
    yield (api.test('dartino_lk_debug_arm_qemu_dev') +
      api.properties(mastername='client.fletch') +
      api.properties(buildername='dartino-lk-debug-arm-qemu-dev') +
      api.properties(revision='123456789abcdef') +
      api.properties(bot_id='TestSlave')
          )
    yield (api.test('dartino_linux_release_asan_x86') +
      api.properties(mastername='client.fletch') +
      api.properties(buildername='dartino-linux-release-asan-x86') +
      api.properties(revision='123456789abcdef') +
      api.properties(bot_id='TestSlave')
          )
    yield (api.test('dartino_mac_release_x86_dev') +
      api.properties(mastername='client.fletch') +
      api.properties(buildername='dartino-mac-release-x86-dev') +
      api.properties(revision='123456789abcdef') +
      api.properties(bot_id='TestSlave')
          )
    yield (api.test('cross_dartino_linux_arm') +
      api.properties(mastername='client.fletch') +
      api.properties(buildername='cross-dartino-linux-arm') +
      api.properties(revision='123456789abcdef') +
      api.properties(bot_id='TestSlave')
          )
    yield (api.test('dartino_mac_release_asan_x86') +
      api.properties(mastername='client.fletch') +
      api.properties(buildername='dartino-mac-release-asan-x86') +
      api.properties(revision='123456789abcdef') +
      api.properties(bot_id='TestSlave')
          )
    yield (api.test('cross_dartino_linux_arm_dev') +
      api.properties(mastername='client.fletch') +
      api.properties(buildername='cross-dartino-linux-arm-dev') +
      api.properties(revision='123456789abcdef') +
      api.properties(bot_id='TestSlave')
          )
    yield (api.test('dartino_free_rtos') +
      api.properties(mastername='client.fletch') +
      api.properties(buildername='dartino-free-rtos') +
      api.properties(revision='123456789abcdef') +
      api.properties(bot_id='TestSlave')
          )
    yield (api.test('dartino_mac_release_x64_sdk') +
      api.properties(mastername='client.fletch') +
      api.properties(buildername='dartino-mac-release-x64-sdk') +
      api.properties(revision='123456789abcdef') +
      api.properties(bot_id='TestSlave')
          )
    yield (api.test('dartino_free_rtos_dev') +
      api.properties(mastername='client.fletch') +
      api.properties(buildername='dartino-free-rtos-dev') +
      api.properties(revision='123456789abcdef') +
      api.properties(bot_id='TestSlave')
          )
    yield (api.test('dartino_mac_debug_asan_x86') +
      api.properties(mastername='client.fletch') +
      api.properties(buildername='dartino-mac-debug-asan-x86') +
      api.properties(revision='123456789abcdef') +
      api.properties(bot_id='TestSlave')
          )
    yield (api.test('dartino_mac_debug_x86') +
      api.properties(mastername='client.fletch') +
      api.properties(buildername='dartino-mac-debug-x86') +
      api.properties(revision='123456789abcdef') +
      api.properties(bot_id='TestSlave')
          )
    yield (api.test('target_dartino_linux_debug_arm') +
      api.properties(mastername='client.fletch') +
      api.properties(buildername='target-dartino-linux-debug-arm') +
      api.properties(revision='123456789abcdef') +
      api.properties(bot_id='TestSlave')
          )
    yield (api.test('dartino_win_debug_x86') +
      api.properties(mastername='client.fletch') +
      api.properties(buildername='dartino-win-debug-x86') +
      api.properties(revision='123456789abcdef') +
      api.properties(bot_id='TestSlave')
          )
    yield (api.test('dartino_linux_release_x86_dev') +
      api.properties(mastername='client.fletch') +
      api.properties(buildername='dartino-linux-release-x86-dev') +
      api.properties(revision='123456789abcdef') +
      api.properties(bot_id='TestSlave')
          )
    yield (api.test('dartino_mac_debug_x86_dev') +
      api.properties(mastername='client.fletch') +
      api.properties(buildername='dartino-mac-debug-x86-dev') +
      api.properties(revision='123456789abcdef') +
      api.properties(bot_id='TestSlave')
          )
    yield (api.test('dartino_linux_release_x64_sdk_dev') +
      api.properties(mastername='client.fletch') +
      api.properties(buildername='dartino-linux-release-x64-sdk-dev') +
      api.properties(revision='123456789abcdef') +
      api.properties(bot_id='TestSlave')
          )
    yield (api.test('dartino_linux_debug_asan_x86_dev') +
      api.properties(mastername='client.fletch') +
      api.properties(buildername='dartino-linux-debug-asan-x86-dev') +
      api.properties(revision='123456789abcdef') +
      api.properties(bot_id='TestSlave')
          )
    yield (api.test('dartino_linux_debug_asan_x86') +
      api.properties(mastername='client.fletch') +
      api.properties(buildername='dartino-linux-debug-asan-x86') +
      api.properties(revision='123456789abcdef') +
      api.properties(bot_id='TestSlave')
          )
    yield (api.test('dartino_mac_release_asan_x86_dev') +
      api.properties(mastername='client.fletch') +
      api.properties(buildername='dartino-mac-release-asan-x86-dev') +
      api.properties(revision='123456789abcdef') +
      api.properties(bot_id='TestSlave')
          )
    yield (api.test('target_dartino_linux_release_arm') +
      api.properties(mastername='client.fletch') +
      api.properties(buildername='target-dartino-linux-release-arm') +
      api.properties(revision='123456789abcdef') +
      api.properties(bot_id='TestSlave')
          )
    yield (api.test('dartino_mac_release_x86') +
      api.properties(mastername='client.fletch') +
      api.properties(buildername='dartino-mac-release-x86') +
      api.properties(revision='123456789abcdef') +
      api.properties(bot_id='TestSlave')
          )
    yield (api.test('dartino_linux_release_x64_sdk') +
      api.properties(mastername='client.fletch') +
      api.properties(buildername='dartino-linux-release-x64-sdk') +
      api.properties(revision='123456789abcdef') +
      api.properties(bot_id='TestSlave')
          )
    yield (api.test('dartino_lk_debug_arm_qemu') +
      api.properties(mastername='client.fletch') +
      api.properties(buildername='dartino-lk-debug-arm-qemu') +
      api.properties(revision='123456789abcdef') +
      api.properties(bot_id='TestSlave')
          )
    yield (api.test('dartino_mac_release_x64_sdk_dev') +
      api.properties(mastername='client.fletch') +
      api.properties(buildername='dartino-mac-release-x64-sdk-dev') +
      api.properties(revision='123456789abcdef') +
      api.properties(bot_id='TestSlave')
          )
    yield (api.test('dartino_linux_release_asan_x86_dev') +
      api.properties(mastername='client.fletch') +
      api.properties(buildername='dartino-linux-release-asan-x86-dev') +
      api.properties(revision='123456789abcdef') +
      api.properties(bot_id='TestSlave')
          )
    yield (api.test('dartino_linux_debug_x86') +
      api.properties(mastername='client.fletch') +
      api.properties(buildername='dartino-linux-debug-x86') +
      api.properties(revision='123456789abcdef') +
      api.properties(bot_id='TestSlave')
          )
    yield (api.test('dartino_linux_release_x86') +
      api.properties(mastername='client.fletch') +
      api.properties(buildername='dartino-linux-release-x86') +
      api.properties(revision='123456789abcdef') +
      api.properties(bot_id='TestSlave')
          )
    yield (api.test('dartino_linux_debug_x86_dev') +
      api.properties(mastername='client.fletch') +
      api.properties(buildername='dartino-linux-debug-x86-dev') +
      api.properties(revision='123456789abcdef') +
      api.properties(bot_id='TestSlave')
          )
    yield (api.test('dartino_win_debug_x86_dev') +
      api.properties(mastername='client.fletch') +
      api.properties(buildername='dartino-win-debug-x86-dev') +
      api.properties(revision='123456789abcdef') +
      api.properties(bot_id='TestSlave')
          )
    yield (api.test('builder_not_in_dispatch_directory') +
      api.properties(mastername='client.fletch') +
      api.properties(buildername='nonexistent_builder') +
      api.properties(bot_id='TestSlave')
          )
  