# Copyright 2015 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.

# This is a .pyl, or "Python Literal", file. You can treat it just like a
# .json file, with the following exceptions:
# * all keys must be quoted (use single quotes, please);
# * comments are allowed, using '#' syntax; and
# * trailing commas are allowed.

{
  # This is a map of buildbot master names -> buildbot builder names ->
  # config names (where each config name is a key in the 'configs' dict,
  # below). MB uses this dict to look up which config to use for a given bot.
  'masters': {
    'chromeos.chrome': {
      'chrome-tot-chromeos-amd64-generic': 'cros_chrome_sdk',
      'Chrome4CROS Packages': 'chromeos_with_codecs_release_bot',
      'Linux ChromeOS Buildspec Tests': 'chromeos_with_codecs_release_bot',
    },

    # Take care when changing any of these builders to ensure that you do not
    # include a configuration with 'chrome_with_codecs' since these builders
    # generated publicly advertised non-Official builds which are not allowed
    # to have proprietary codecs enabled.
    'chromium': {
      'Android': 'android_without_codecs_release_bot_minimal_symbols',
      'Linux x64': 'release_bot',
      'Mac': 'release_bot_mac_strip',
      'Win': 'release_bot_x86_minimal_symbols_enable_archive_compression',
      'Win x64': 'release_bot_minimal_symbols_enable_archive_compression',
    },

    'chromium.android': {
      'Android ASAN (dbg)': 'android_clang_asan_debug_bot_minimal_symbols',
      'Android Cronet ARM64 Builder': 'android_cronet_release_bot_minimal_symbols_arm64',
      'Android Cronet ARM64 Builder (dbg)': 'android_cronet_debug_static_bot_arm64',
      'Android Cronet Builder': 'android_cronet_release_bot_minimal_symbols_arm_no_neon',
      'Android Cronet Builder (dbg)': 'android_cronet_debug_static_bot_arm_no_neon',
      'Android Cronet Builder Asan': 'android_cronet_release_bot_minimal_symbols_arm_no_neon_clang_asan',
      'Android Cronet KitKat Builder': 'android_cronet_release_bot_minimal_symbols_arm_no_neon',
      'Android Cronet Lollipop Builder': 'android_cronet_release_bot_minimal_symbols_arm_no_neon',
      'Android Cronet Marshmallow 64bit Builder': 'android_cronet_release_bot_minimal_symbols_arm64',
      'Android Cronet Marshmallow 64bit Perf': 'android_cronet_release_bot_minimal_symbols_arm64',
      'Android Cronet x86 Builder': 'android_cronet_release_bot_minimal_symbols_x86',
      'Android Cronet x86 Builder (dbg)': 'android_cronet_debug_static_bot_x86',
      'Android arm Builder (dbg)': 'android_debug_static_bot',
      'Android arm64 Builder (dbg)': 'android_debug_static_bot_arm64',
      'Android x64 Builder (dbg)': 'android_debug_static_bot_x64',
      'Android x86 Builder (dbg)': 'android_debug_static_bot_x86',
      'Cast Android (dbg)': 'android_cast_debug_static_bot',
      'Deterministic Android': 'android_without_codecs_release_bot_minimal_symbols',
      'Deterministic Android (dbg)': 'android_debug_bot',
      'android-kitkat-arm-rel': 'android_release_bot_minimal_symbols',
      'android-marshmallow-arm64-rel': 'android_release_bot_minimal_symbols_arm64',
    },

    'chromium.android.fyi': {
      'Android Cronet Builder (dbg)': 'android_cronet_debug_static_bot_arm_no_neon',
      'Android Cronet Builder Asan': 'android_cronet_release_bot_minimal_symbols_arm_no_neon_clang_asan',
      'Android Cronet KitKat Builder': 'android_cronet_release_bot_minimal_symbols_arm_no_neon',
      'Memory Infra Tester': 'android_release_thumb_bot',
      'NDK Next arm Builder':
        'android_ndk_next_release_bot_minimal_symbols',
      'NDK Next arm64 Builder':
        'android_ndk_next_release_bot_minimal_symbols_arm64',
      'NDK Next x64 Builder':
        'android_ndk_next_release_bot_minimal_symbols_x64',
      'NDK Next x86 Builder':
        'android_ndk_next_release_bot_minimal_symbols_x86',
      'x64 Device Tester': 'android_shared_release_bot_x64',
      'x86 Cloud Tester': 'android_debug_static_bot_x86',
      'x86 Emulator Tester': 'android_debug_static_bot_x86',
    },

    'chromium.chrome': {
      'Google Chrome ChromeOS': 'official_goma_chromeos',
      'Google Chrome Linux x64': 'official_goma',
      'Google Chrome Mac': 'official_goma',
      'Google Chrome Win': 'official_goma_x86',
    },

    'chromium.chromedriver': {
      'Win7': 'release_bot_x86',
      'Mac 10.6': 'release_bot',
      'Linux': 'release_bot',
      'Linux32': 'release_bot_x86',
    },

    'chromium.chromiumos': {
      'Linux ChromiumOS Full': 'chromeos_with_codecs_release_bot',

      'chromeos-amd64-generic-rel': 'cros_chrome_sdk',
      'chromeos-daisy-rel': 'cros_chrome_sdk',
      'linux-chromeos-rel': 'chromeos_with_codecs_release_bot',
      'linux-chromeos-dbg': 'chromeos_with_codecs_debug_bot',
    },

    'chromium.clang': {
      'CFI Linux CF': 'cfi_full_cfi_icall_cfi_diag_recover_release_static',
      'CFI Linux ToT': 'clang_tot_cfi_full_cfi_icall_cfi_diag_thin_lto_release_static_dcheck_always_on',
      'CFI Linux (icall)': 'cfi_full_diag_icall_release_static_dcheck_always_on',
      'CrWinAsan': 'asan_clang_fuzzer_static_v8_heap_x86_full_symbols_release',
      'CrWinAsan(dll)': 'asan_clang_shared_v8_heap_x86_full_symbols_release',
      'CrWinAsanCov': 'asan_clang_edge_fuzzer_static_v8_heap_x86_full_symbols_release',

      'CrWinClangLLD': 'clang_tot_official_static_no_lld_x86',
      'CrWinClangLLD64': 'clang_tot_shared_release_no_lld_dcheck',
      'CrWinClngLLD64dbg': 'clang_tot_full_symbols_shared_debug_no_lld',
      'CrWinClngLLDdbg': 'clang_tot_full_symbols_shared_debug_no_lld_x86',
      'linux-win_cross-rel': 'clang_tot_win_release_cross',
      'ToTAndroid': 'android_clang_tot_release_minimal_symbols',
      'ToTAndroid64': 'android_clang_tot_release_arm64',
      'ToTAndroidASan': 'android_clang_tot_asan',
      'ToTAndroid (dbg)': 'android_clang_tot_dbg',
      'ToTAndroidCFI': 'android_clang_tot_cfi_full_cfi_diag_thin_lto_release_static_dcheck_always_on',
      'ToTAndroid64': 'android_clang_tot_release_arm64',
      'ToTAndroid x64': 'android_clang_tot_x64',
      'ToTLinux': 'clang_tot_linux_full_symbols_shared_release',
      'ToTLinuxCoverage': 'clang_tot_coverage_minimal_symbols_shared_release_with_libfuzzer',
      'ToTLinux (dbg)': 'clang_tot_shared_debug',
      'ToTLinuxASan': 'clang_tot_asan_lsan_static_release',
      'ToTLinuxASanLibfuzzer': 'libfuzzer_asan_clang_tot_release',
      'ToTLinuxMSan': 'clang_tot_msan_release',
      'ToTLinuxThinLTO': 'clang_tot_release_minimal_symbols_thin_lto_static_use_lld',
      'ToTLinuxUBSanVptr': 'clang_tot_edge_ubsan_no_recover_hack_static_release',
      'ToTMac': 'clang_tot_minimal_symbols_shared_release',
      'ToTMacCoverage': 'clang_tot_coverage_minimal_symbols_shared_release',
      'ToTMac (dbg)': 'clang_tot_shared_debug',
      'ToTMacASan': 'asan_disable_nacl_clang_tot_full_symbols_static_release',
      'ToTWin': 'clang_tot_official_minimal_symbols_static_release_x86',
      'ToTWin(dbg)': 'clang_tot_shared_debug_x86',
      'ToTWin(dll)': 'clang_tot_minimal_symbols_shared_release_x86_dcheck',
      'ToTWin64': 'clang_tot_official_minimal_symbols_static_release',
      'ToTWin64(dbg)': 'clang_tot_shared_debug',
      'ToTWin64(dll)': 'clang_tot_shared_release_dcheck',
      'ToTWinCFI': 'clang_tot_cfi_full_cfi_diag_thin_lto_release_static_dcheck_always_on_x86',
      'ToTWinCFI64': 'clang_tot_cfi_full_cfi_diag_thin_lto_release_static_dcheck_always_on',
      'ToTWinLibcxx64': 'clang_tot_official_optimize_minimal_symbols_static_release_libcxx',
      'ToTWinThinLTO64': 'clang_tot_official_full_symbols_thin_lto_static_use_lld',
      'ToTiOS': 'ios',
      'UBSanVptr Linux': 'ubsan_vptr_release_bot',
    },

    'chromium.fyi': {
      'Afl Upload Linux ASan': 'afl_asan_release_bot',
      'Android Builder (dbg)': 'android_debug_static_bot_vrdata',

      'Android Builder (dbg) Goma Canary': 'android_debug_static_bot_vrdata',

      'CFI Linux CF': 'cfi_full_cfi_icall_cfi_diag_recover_release_static',
      'CFI Linux ToT': 'clang_tot_cfi_full_cfi_icall_cfi_diag_thin_lto_release_static_dcheck_always_on',
      'CFI Linux (icall)': 'cfi_full_diag_icall_release_static_dcheck_always_on',
      'chromeos-amd64-generic-rel-goma-canary': 'cros_chrome_sdk',
      'chromeos-amd64-generic-rel-vm-tests': 'cros_chrome_sdk_headless_ozone',

      'Linux Builder Goma Canary': 'release_bot',
      'Linux x64 Goma Canary (clobber)': 'release_bot',
      'Linux x64 Goma Canary LocalOutputCache': 'release_bot',

      'mac-views-rel': 'mac_views_browser_release_bot',
      'Chromium Mac 10.13': 'release_bot',

      'Mac Builder Goma Canary': 'gpu_tests_release_bot',
      'Mac Goma Canary (clobber)': 'release_bot_mac_strip',
      'Mac Builder (dbg) Goma Canary': 'debug_bot',
      'Mac Builder (dbg) Goma Canary (clobber)': 'debug_bot',
      'Mac Goma Canary LocalOutputCache': 'release_bot_mac_strip',

      'Chromium Windows Analyze': 'windows_analyze',

      'Win7 Builder Goma Canary': 'release_bot_x86_minimal_symbols',
      'Win7 Builder (dbg) Goma Canary': 'debug_trybot_x86_minimal_symbols',
      'Win cl.exe Goma Canary LocalOutputCache': 'release_bot_x86_minimal_symbols_no_clang',
      'Win Builder Goma Canary': 'release_bot_x86_minimal_symbols',
      'Win Builder (dbg) Goma Canary': 'debug_bot_x86_minimal_symbols',
      'Win Goma Canary LocalOutputCache': 'release_bot_x86_minimal_symbols',
      'WinMSVC64 Goma Canary': 'win_msvc_release_bot',

      'fuchsia-fyi-arm64-rel': 'release_bot_fuchsia_arm64',
      'fuchsia-fyi-x64-dbg': 'debug_bot_fuchsia',
      'fuchsia-fyi-x64-rel': 'release_bot_fuchsia',

      'ios-device-goma-canary-clobber': 'ios',

      'ios-simulator': 'ios',
      'Headless Linux (dbg)': 'headless_linux_debug_bot',
      'Jumbo Linux x64': 'jumbo_large_chunks_release_bot_minimal_symbols',
      'Jumbo Mac': 'jumbo_release_bot_minimal_symbols',
      'Jumbo Win x64': 'jumbo_release_bot_minimal_symbols',
      'Libfuzzer Upload Linux ASan': 'libfuzzer_asan_release_bot',
      'Libfuzzer Upload Linux ASan Debug': 'libfuzzer_asan_debug_bot',
      'Libfuzzer Upload Linux MSan': 'libfuzzer_msan_release_bot',
      'Libfuzzer Upload Linux UBSan': 'libfuzzer_ubsan_release_bot',
      'Libfuzzer Upload Mac ASan': 'libfuzzer_mac_asan_release_bot',
      'Linux ARM': 'release_bot_arm',
      'Linux Clang Analyzer': 'linux_chromium_analysis',
      'Linux remote_run Builder': 'release_bot',
      'Linux remote_run Tester': 'release_bot',
      'Linux Viz': 'release_trybot',
      'linux-annotator-rel': 'release_bot',
      'linux-blink-heap-incremental-marking': 'debug_bot_enable_blink_heap_incremental_marking',
      'linux-blink-heap-verification': 'release_bot_enable_blink_heap_verification_dcheck_always_on',
      'linux-chromium-tests-staging-builder': 'release_bot',
      'Mac deterministic': 'release_bot_mac_strip',
      'Mac deterministic (dbg)': 'debug_bot',
      'Mojo ChromiumOS': 'chromeos_with_codecs_release_trybot',
      'Mojo Android': 'android_release_bot_minimal_symbols_arm64',
      'Mojo Linux': 'release_trybot',
      'Mojo Windows': 'release_bot_x86_minimal_symbols',
      'Site Isolation Android': 'android_release_bot_minimal_symbols_arm64',
      'VR Linux': 'vr_release_bot',
      'Win 10 Fast Ring': 'release_trybot',
      'Windows deterministic': 'release_bot_x86_minimal_symbols',
      'Windows Clang deterministic': 'clang_release_bot_minimal_symbols_x86',
      'win-annotator-rel': 'release_bot',
    },

    'chromium.goma': {
      'Chromium Linux Goma Staging': 'release_bot',
      'Chromium Mac Goma Staging': 'release_bot',
      'CrWinGomaStaging': 'release_bot_x86_minimal_symbols',
      'Chromium Linux Goma GCE Staging': 'release_bot',
      'Chromium Mac Goma GCE Staging': 'release_bot',
      'CrWinClangGomaGCEStaging': 'win_clang_release_bot_disable_nacl',
      'Chromium Linux Goma RBE Staging (clobber)': 'release_bot',
      'Chromium Linux Goma RBE Staging': 'release_bot',
      'Chromium Linux Goma RBE Staging (dbg) (clobber)': 'debug_bot',
      'Chromium Linux Goma RBE Staging (dbg)': 'debug_bot',
    },

    'chromium.gpu': {
      # These all use the 'trybot' mixins to ensure that dcheck is on.
      'GPU Mac Builder': 'gpu_tests_release_trybot',
      'GPU Mac Builder (dbg)': 'gpu_tests_debug_trybot',
      'GPU Linux Builder': 'gpu_tests_release_trybot',
      'GPU Linux Builder (dbg)': 'gpu_tests_debug_trybot',
      'GPU Win Builder': 'gpu_tests_release_trybot_x86_minimal_symbols',
      'GPU Win Builder (dbg)': 'gpu_tests_debug_trybot_x86_minimal_symbols',
      'Android Release (Nexus 5X)': 'gpu_tests_android_release_trybot_arm64',
    },

    'chromium.gpu.fyi': {
      # These all use the 'trybot' mixins to ensure that dcheck is on.
      'Android FYI dEQP Release (Nexus 5X)': 'deqp_android_release_trybot_arm64',
      'Android FYI Release (Nexus 5)': 'android_release_trybot',
      'Android FYI Release (Nexus 5X)': 'gpu_tests_android_release_trybot_arm64',
      'Android FYI Release (Nexus 6)': 'android_release_trybot',
      'Android FYI Release (Nexus 6P)': 'android_release_trybot_arm64',
      'Android FYI Release (Nexus 9)': 'android_release_trybot_arm64',
      'Android FYI Release (NVIDIA Shield TV)': 'android_release_trybot_arm64',
      'Android FYI 32 Vk Release (Nexus 5X)': 'gpu_tests_android_vulkan_release_trybot',
      'Android FYI 32 Vk Release (Pixel 2)': 'gpu_tests_android_vulkan_release_trybot',
      'Android FYI 64 Vk Release (Nexus 5X)': 'gpu_tests_android_vulkan_release_trybot_arm64',
      'Android FYI 64 Vk Release (Pixel 2)': 'gpu_tests_android_vulkan_release_trybot_arm64',
      'Android FYI 32 dEQP Vk Release (Nexus 5X)': 'deqp_android_vulkan_release_trybot',
      'Android FYI 32 dEQP Vk Release (Pixel 2)': 'deqp_android_vulkan_release_trybot',
      'Android FYI 64 dEQP Vk Release (Nexus 5X)': 'deqp_android_vulkan_release_trybot_arm64',
      'Android FYI 64 dEQP Vk Release (Pixel 2)': 'deqp_android_vulkan_release_trybot_arm64',
      'GPU FYI Linux Builder': 'gpu_fyi_tests_release_trybot',
      'GPU FYI Linux Ozone Builder': 'gpu_fyi_tests_ozone_linux_system_gbm_libdrm_release_trybot',
      'GPU FYI Linux Builder (dbg)': 'gpu_fyi_tests_debug_trybot',
      'GPU FYI Linux dEQP Builder': 'deqp_release_trybot',
      'GPU FYI Mac Builder': 'gpu_fyi_tests_release_trybot',
      'GPU FYI Mac Builder (dbg)': 'gpu_fyi_tests_debug_trybot',
      'GPU FYI Mac dEQP Builder': 'deqp_release_trybot',
      'GPU FYI Win Builder': 'gpu_fyi_tests_release_trybot_x86',
      'GPU FYI Win Builder (dbg)': 'gpu_fyi_tests_debug_trybot_x86',
      'GPU FYI Win dEQP Builder': 'deqp_release_trybot_x86',
      'GPU FYI Win Clang Builder (dbg)': 'gpu_fyi_tests_win_clang_debug_bot',
      'GPU FYI Win x64 Builder': 'gpu_fyi_tests_release_trybot',
      'GPU FYI Win x64 Builder (dbg)': 'gpu_fyi_tests_debug_trybot',
      'GPU FYI Win x64 dEQP Builder': 'deqp_release_trybot',
      'Linux FYI GPU TSAN Release': 'gpu_fyi_tests_release_trybot_tsan',
      'Mac FYI GPU ASAN Release': 'gpu_fyi_tests_release_trybot_asan',
      'Optional Android Release (Nexus 5X)': 'gpu_tests_android_release_trybot_arm64',
    },

    'chromium.infra.codesearch': {
      'codesearch-gen-chromium-android': {
        'android': 'codesearch_gen_chromium_android_bot',
      },
      'codesearch-gen-chromium-chromiumos': {
        'chromeos': 'codesearch_gen_chromium_chromiumos_bot',
        'linux': 'codesearch_gen_chromium_linux_bot',
      },
      'codesearch-gen-chromium-linux': {
        'linux': 'codesearch_gen_chromium_linux_bot',
      },
      'codesearch-gen-chromium-win': {
        'win': 'codesearch_gen_chromium_win_bot',
      },
    },

    'chromium.linux': {
      'Cast Audio Linux': 'cast_audio_release_bot',
      'Cast Linux': 'cast_release_bot',
      'Deterministic Linux (dbg)': 'debug_bot',
      'Deterministic Linux': 'release_bot',
      'Fuchsia ARM64 Cast Audio': 'release_bot_fuchsia_arm64_cast_audio',
      'Fuchsia ARM64': 'release_bot_fuchsia_arm64',
      'Fuchsia x64 Cast Audio': 'release_bot_fuchsia_cast_audio',
      'Fuchsia x64': 'release_bot_fuchsia',
      'Leak Detection Linux': 'release_bot',
      'Linux Builder (dbg)': 'debug_bot',
      'Linux Builder (dbg)(32)': 'debug_bot_x86',
      'Linux Builder': 'release_bot',
      'linux-gcc-rel': 'release_bot_x86_minimal_symbols_no_clang_cxx11',
      'linux-jumbo-rel': 'jumbo_release_bot_minimal_symbols',
      'linux-ozone-rel': 'ozone_linux_release_bot',
      'linux-xenial-rel': 'release_bot',
    },

    'chromium.lkgr': {
      'ASAN Debug': 'asan_lsan_edge_debug_bot',
      'ASAN Release Media': 'asan_lsan_edge_fuzzer_v8_heap_chromeos_codecs_release_bot',
      'ASAN Release': 'asan_lsan_edge_fuzzer_v8_heap_release_bot',
      'ASan Debug (32-bit x86 with V8-ARM)': 'asan_edge_v8_heap_debug_bot_hybrid',
      'ASan Release (32-bit x86 with V8-ARM)': 'asan_edge_fuzzer_v8_heap_release_bot_hybrid',
      'ASan Release Media (32-bit x86 with V8-ARM)': 'asan_edge_fuzzer_v8_heap_chromeos_codecs_release_bot_hybrid',
      'ChromiumOS ASAN Release': 'chromeos_asan_lsan_edge_fuzzer_v8_heap_release_bot',
      'MSAN Release (chained origins)': 'msan_edge_release_bot',
      'MSAN Release (no origins)': 'msan_no_origins_edge_release_bot',
      'Mac ASAN Debug': 'asan_disable_nacl_edge_fuzzer_v8_heap_debug_symbols_static_bot',
      'Mac ASAN Release Media': 'asan_disable_nacl_edge_fuzzer_v8_heap_chrome_with_codecs_release_bot',
      'Mac ASAN Release': 'asan_disable_nacl_edge_fuzzer_v8_heap_release_bot',
      'TSAN Debug': 'tsan_disable_nacl_debug_bot',
      'TSAN Release': 'tsan_disable_nacl_release_bot',
      'UBSan Release': 'ubsan_release_bot',
      'UBSan vptr Release': 'ubsan_vptr_edge_release_bot',
      'Win ASan Release Media': 'asan_fuzzer_v8_heap_chrome_with_codecs_release_bot_x86',
      'Win ASan Release': 'asan_fuzzer_v8_heap_release_bot',
    },

    'chromium.mac': {
      'Mac Builder': 'gpu_tests_release_bot',
      'Mac Builder (dbg)': 'debug_bot',
      'mac-jumbo-rel': 'jumbo_release_bot_minimal_symbols',
      'ios-device': 'ios',
      'ios-device-xcode-clang': 'ios',
      'ios-simulator': 'ios',
      'ios-simulator-cronet': 'ios',
      'ios-simulator-full-configs': 'ios',
      'ios-simulator-xcode-clang': 'ios',
    },

    'chromium.memory': {
      'Android CFI': 'android_cfi_full_cfi_diag_thin_lto_release_static_dcheck_always_on_goma',
      'Linux ASan LSan Builder': 'asan_lsan_release_trybot',
      'Linux CFI': 'cfi_full_cfi_icall_cfi_diag_thin_lto_release_static_dcheck_always_on_goma',
      'Linux Chromium OS ASan LSan Builder': 'asan_lsan_chromeos_release_trybot',
      'Linux ChromiumOS MSan Builder': 'chromeos_msan_release_bot',
      'Linux MSan Builder': 'msan_release_bot',
      'Linux TSan Builder': 'tsan_disable_nacl_release_bot',
      'Mac ASan 64 Builder': 'asan_full_symbols_disable_nacl_release_bot_dcheck_always_on',
    },

    'chromium.perf': {
      'Android Builder Perf': 'official_goma_minimal_symbols_android',
      'Android arm64 Builder Perf': 'official_goma_minimal_symbols_android_arm64',
      'Android Compile Perf': 'official_goma_minimal_symbols_android',
      'Android arm64 Compile Perf': 'official_goma_minimal_symbols_android_arm64',
      'Linux Builder Perf': 'official_goma_perf',
      'Mac Builder Perf': 'official_goma',
      'Win Builder Perf': 'official_goma_x86',
      'Win x64 Builder Perf': 'official_goma',
    },

    'chromium.perf.fyi': {
      'Linux Compile Perf FYI': 'official_goma_perf',
      'Android Builder Perf FYI': 'official_goma_minimal_symbols_android',
      'Android arm64 Builder Perf FYI': 'official_goma_minimal_symbols_android_arm64',
      'Android CFI Builder Perf FYI': 'official_goma_minimal_symbols_android_thin_lto',
      'Android CFI arm64 Builder Perf FYI': 'official_goma_minimal_symbols_android_thin_lto_arm64',
      'Battor Agent Linux': 'release_bot',
      'Battor Agent Mac': 'release_bot',
      'Battor Agent Win': 'release_bot',
      'Mac Builder Perf FYI': 'official_goma',
      'Win Builder Perf FYI': 'official_goma_x86',
    },

    'chromium.swarm': {
      'Android N5 Swarm': 'android_release_bot_minimal_symbols',
      'Android N5X Swarm': 'android_release_bot_minimal_symbols_arm64',
      'ChromeOS Swarm': 'cros_chrome_sdk',
      'Linux Swarm': 'release_bot',
      'Mac Swarm': 'release_bot_mac_strip',
      'Windows Swarm': 'release_bot_minimal_symbols',
    },

    'client.nacl.sdk': {
      'linux-sdk-asan-multi': 'release_bot',
      'linux-sdk-multi': 'release_bot',
      'linux-sdk-multirel': 'release_bot',
      'mac-sdk-multi': 'release_bot',
      'mac-sdk-multirel': 'release_bot',
      'windows-sdk-multi': 'release_bot_x86_minimal_symbols',
      'windows-sdk-multirel': 'release_bot_x86_minimal_symbols',
    },

    'client.v8.chromium': {
      'Linux - Future': 'v8_future_release_bot',
      'Linux - Future (dbg)': 'v8_future_debug_bot',
      'Linux V8 API Stability': 'release_bot',
    },

    'client.v8.fyi': {
      'Android Builder': 'official_goma_minimal_symbols_android',
      'Android V8 FYI Release (Nexus 5X)': 'gpu_tests_android_release_trybot_arm64',
      'Linux ASAN Builder': 'asan_lsan_release_trybot',
      'Linux Debug Builder': 'debug_bot',
      'Linux V8 FYI Release (NVIDIA)': 'gpu_tests_release_trybot',
      'Linux Release - concurrent marking (NVIDIA)': 'gpu_tests_release_trybot_cm',
      'Linux V8 FYI Release - concurrent marking (NVIDIA)': 'gpu_tests_release_trybot_cm',
      'Linux Snapshot Builder': 'release_bot',
      'Mac V8 FYI Release (Intel)': 'gpu_tests_release_trybot',
      'V8 Android GN (dbg)': 'android_debug_bot',
      'V8 Linux GN': 'release_bot',
      'V8-Blink Linux 64': 'release_bot',
      'V8-Blink Linux 64 - future': 'release_bot',
      'V8-Blink Linux 64 (dbg)': 'release_bot_v8_debug',
      'V8-Blink Mac': 'release_bot',
      'V8-Blink Win': 'release_bot_x86_minimal_symbols',
      'Win V8 FYI Release (NVIDIA)': 'gpu_tests_release_trybot_x86_minimal_symbols',
    },

    'chromium.webkit': {
      'Android Builder': 'android_release_bot_minimal_symbols',
      'WebKit Linux Trusty ASAN': 'asan_lsan_release_bot',
      'WebKit Linux Trusty Leak': 'release_bot',
      'WebKit Linux Trusty MSAN': 'msan_release_bot',
      'WebKit Mac Builder': 'release_bot',
      'WebKit Mac10.13 (retina)': 'release_bot',
      'WebKit Win Builder': 'release_bot_x86_minimal_symbols',
    },

    'chromium.webrtc': {
      'Linux Builder': 'release_bot_chrome_with_codecs',
      'Mac Builder': 'release_bot_chrome_with_codecs',
      'Win Builder': 'release_bot_x86_minimal_symbols_no_com_init_hooks_with_codecs',
    },

    'chromium.webrtc.fyi': {
      'Android Builder': 'android_release_bot_minimal_symbols',
      'Android Builder (dbg)': 'android_debug_static_bot',
      'Android Builder ARM64 (dbg)': 'android_debug_static_bot_arm64',
      'Linux Builder': 'release_bot_chrome_with_codecs',
      'Linux Builder (dbg)': 'debug_bot',
      'Mac Builder': 'release_bot_chrome_with_codecs',
      'Mac Builder (dbg)': 'debug_bot',
      'Win Builder': 'release_bot_x86_minimal_symbols_no_com_init_hooks_with_codecs',
      'Win Builder (dbg)': 'debug_bot_x86_minimal_symbols_no_com_init_hooks_with_codecs',
    },

    'chromium.win': {
      # Windows bots take too long to link w/ full symbols and time out.
      'Win Builder': 'release_bot_x86_minimal_symbols',
      'Win Builder (dbg)': 'debug_bot_x86_minimal_symbols',
      'win-jumbo-rel': 'jumbo_release_bot_minimal_symbols',
      'Win x64 Builder': 'release_bot_minimal_symbols',
      'Win x64 Builder (dbg)': 'debug_bot_minimal_symbols',
    },

    'internal.client.kitchensync': {
      'Linux Canary': 'debug_bot',
      'Linux Dev': 'debug_bot',
      'Mac Dev': 'debug_bot',
      'Windows Dev': 'debug_bot_minimal_symbols',
    },

    # Manually triggered internal builders running on LUCI.
    'luci.infra-internal.prod': {
      'gn-builder-linux': 'gn_linux_upload',
      'gn-builder-mac': 'release_bot',
      'gn-builder-win': 'release_bot_x86_minimal_symbols',
    },

    'tryserver.blink': {
      # Most tryservers should have '_trybot' in their config names, but
      # 'release_trybot' includes 'dcheck_always_on', and the blink
      # release trybots must *not* enable dchecks, because that could
      # cause them to produce different baselines than the release
      # waterfall bots, and run_web_tests.py can't handle that (by design).
      'linux-blink-rel': 'release_bot_minimal_symbols',
      'mac10.10-blink-rel': 'release_bot_minimal_symbols',
      'mac10.11-blink-rel': 'release_bot_minimal_symbols',
      'mac10.12-blink-rel': 'release_bot_minimal_symbols',
      'mac10.13-blink-rel': 'release_bot_minimal_symbols',
      'mac10.13_retina-blink-rel': 'release_bot_minimal_symbols',
      'win7-blink-rel': 'release_bot_x86_minimal_symbols',
      'win10-blink-rel': 'release_bot_x86_minimal_symbols',
      # TODO(dpranke): Delete all the old names once things have been updated.
      'linux_trusty_blink_rel': 'release_bot_minimal_symbols',
      'mac10.10_blink_rel': 'release_bot_minimal_symbols',
      'mac10.11_blink_rel': 'release_bot_minimal_symbols',
      'mac10.12_blink_rel': 'release_bot_minimal_symbols',
      'mac10.13_blink_rel': 'release_bot_minimal_symbols',
      'mac10.13_retina_blink_rel': 'release_bot_minimal_symbols',
      'win7_blink_rel': 'release_bot_x86_minimal_symbols',
      'win10_blink_rel': 'release_bot_x86_minimal_symbols',
    },

    'tryserver.chromium.android': {
      'android-kitkat-arm-rel': 'android_release_trybot',
      'android-marshmallow-arm64-rel': 'android_release_trybot_arm64_no_symbols',
      'android_archive_rel_ng': 'android_release_trybot',
      'android_arm64_dbg_recipe': 'android_debug_trybot_compile_only_arm64',
      'android-binary-size': 'android_binary_size',
      'android_blink_rel': 'android_release_trybot',
      'android_cfi_rel_ng': 'android_cfi_full_cfi_diag_thin_lto_release_static_dcheck_always_on_goma',
      'android_clang_dbg_recipe': 'android_clang_asan_debug_trybot_compile_only',
      'android_compile_dbg': 'android_debug_trybot_compile_only',
      'android_compile_x64_dbg': 'android_debug_trybot_compile_only_x64',
      'android_compile_x86_dbg': 'android_debug_trybot_compile_only_x86',
      'android_coverage': 'android_debug_trybot_java_coverage',
      'android_cronet': 'android_cronet_release_trybot_arm_no_neon',

      # TODO(crbug/597596): Switch this back to debug_trybot when cronet's
      # shared library loading is fixed.
      'android_cronet_tester': 'android_cronet_debug_static_bot_arm_no_neon',

      'android_mojo': 'android_release_trybot_arm64',
      'android_n5x_swarming_dbg': 'android_debug_trybot_arm64',
      'android_optional_gpu_tests_rel': 'gpu_tests_android_release_trybot_arm64',
      'android_unswarmed_pixel_aosp': 'android_debug_trybot_arm64',
      'cast_shell_android': 'android_cast_debug_static_bot_compile_only',
      'gpu-manual-try-android-p-pixel-2-32': 'gpu_tests_android_vulkan_release_trybot',
      'linux_android_dbg_ng': 'android_debug_trybot',
    },

    # TODO(crbug/786044): Remove non-compile debug configs when migrated.
    'tryserver.chromium.angle': {
      'android_angle_rel_ng': 'gpu_tests_android_release_trybot_arm64',
      'android_angle_vk32_rel_ng': 'gpu_tests_android_vulkan_release_trybot',
      'android_angle_vk64_rel_ng': 'gpu_tests_android_vulkan_release_trybot_arm64',
      'android_angle_deqp_rel_ng': 'deqp_android_release_trybot_arm64',
      'android_angle_vk32_deqp_rel_ng': 'deqp_android_vulkan_release_trybot',
      'android_angle_vk64_deqp_rel_ng': 'deqp_android_vulkan_release_trybot_arm64',
      'linux_angle_ozone_rel_ng': 'gpu_fyi_tests_ozone_linux_system_gbm_libdrm_release_trybot',
      'linux_angle_dbg_ng': 'gpu_fyi_tests_debug_trybot',
      'linux_angle_deqp_rel_ng': 'deqp_release_trybot',
      'linux_angle_rel_ng': 'gpu_fyi_tests_release_trybot',
      'mac_angle_dbg_ng': 'gpu_fyi_tests_debug_trybot',
      'mac_angle_rel_ng': 'gpu_fyi_tests_release_trybot',
      'win_angle_dbg_ng': 'gpu_fyi_tests_debug_trybot_x86',
      'win_angle_deqp_rel_ng': 'deqp_release_trybot_x86',
      'win_angle_rel_ng': 'gpu_fyi_tests_release_trybot_x86',
      'win_angle_x64_dbg_ng': 'gpu_fyi_tests_debug_trybot',
      'win_angle_x64_deqp_rel_ng': 'deqp_release_trybot',
      'win_angle_x64_rel_ng': 'gpu_fyi_tests_release_trybot',
    },

    'tryserver.chromium.chromiumos': {
      'chromeos-amd64-generic-rel': 'cros_chrome_sdk',
      'chromeos-daisy-rel': 'cros_chrome_sdk',
      'linux-chromeos-rel': 'chromeos_with_codecs_release_trybot',
      'linux-chromeos-compile-dbg': 'chromeos_with_codecs_debug_bot',
      'linux-chromeos-dbg': 'chromeos_with_codecs_debug_bot',
    },

    'tryserver.chromium.linux': {
      'cast_shell_audio_linux': 'cast_audio_release_trybot',
      'cast_shell_linux': 'cast_release_trybot',
      'chromium_presubmit': 'presubmit',
      'closure_compilation': 'closure_compilation',
      'fuchsia_arm64': 'release_trybot_fuchsia_arm64',
      'fuchsia_arm64_cast_audio': 'release_trybot_fuchsia_arm64_cast_audio',
      'fuchsia-fyi-x64-dbg': 'debug_trybot_fuchsia',
      'fuchsia_x64': 'release_trybot_fuchsia',
      'fuchsia_x64_cast_audio': 'release_trybot_fuchsia_cast_audio',
      'layout_test_leak_detection': 'release_trybot',
      'leak_detection_linux': 'release_trybot',
      'linux-blink-gen-property-trees': 'release_trybot',
      'linux-blink-heap-incremental-marking': 'debug_trybot_enable_blink_heap_incremental_marking',
      'linux-blink-heap-verification-try': 'release_trybot_enable_blink_heap_verification',
      'linux-dcheck-off-rel': 'release_trybot_dcheck_off',
      'linux-goma-rbe-staging-rel': 'gpu_tests_release_trybot_no_symbols',
      'linux-gcc-rel': 'release_bot_x86_minimal_symbols_no_clang_cxx11',
      'linux-jumbo-rel': 'jumbo_release_bot_minimal_symbols',
      'linux-ozone-rel': 'ozone_linux_release_trybot',
      'linux-xenial-rel': 'release_trybot',
      'linux_arm': 'release_trybot_arm',
      'linux_chromium_archive_rel_ng': 'release_bot',
      'linux_chromium_asan_rel_ng': 'asan_lsan_release_trybot',
      'linux_chromium_cfi_rel_ng': 'cfi_full_cfi_icall_cfi_diag_thin_lto_release_static_dcheck_always_on_goma',
      'linux_chromium_chromeos_asan_rel_ng': 'asan_lsan_chromeos_release_trybot',
      'linux_chromium_chromeos_msan_rel_ng': 'chromeos_msan_release_bot',
      'linux_chromium_clobber_deterministic': 'release_trybot',
      'linux_chromium_clobber_rel_ng': 'release_trybot',
      'linux_chromium_compile_dbg_32_ng': 'debug_trybot_x86',
      'linux_chromium_compile_dbg_ng': 'debug_trybot',
      'linux_chromium_compile_rel_ng': 'release_trybot',
      'linux_chromium_dbg_32_ng': 'debug_trybot_x86',
      'linux_chromium_dbg_ng': 'debug_trybot',
      'linux_chromium_gn_upload': 'gn_linux_upload',
      'linux_chromium_headless_rel': 'headless_linux_release_trybot',

      # This is intentionally a release_bot and not a release_trybot;
      # enabling DCHECKs seems to cause flaky failures that don't show up
      # on the continuous builder.
      'linux_chromium_msan_rel_ng': 'msan_release_bot',

      'linux_chromium_rel_ng': 'gpu_tests_release_trybot_no_symbols',
      'linux_chromium_tsan_rel_ng': 'tsan_disable_nacl_release_trybot',
      'linux_chromium_ubsan_rel_ng': 'ubsan_vptr_release_trybot',
      'linux_layout_tests_layout_ng': 'release_trybot',
      'linux_layout_tests_root_layer_scrolls': 'release_trybot',
      'linux_layout_tests_slimming_paint_v2': 'release_trybot',
      'linux_mojo': 'release_trybot',
      'linux_mojo_chromeos': 'chromeos_with_codecs_release_trybot',
      'linux_nacl_sdk': 'release_bot',
      'linux_nacl_sdk_build': 'release_bot',
      'linux_optional_gpu_tests_rel': 'gpu_fyi_tests_release_trybot',
      'linux_upload_clang': 'release_bot',
      'linux_vr': 'vr_release_trybot',
    },

    'tryserver.chromium.mac': {
      'ios-device': 'ios',
      'ios-device-xcode-clang': 'ios',
      'ios-simulator': 'ios',
      'ios-simulator-full-configs': 'ios',
      'ios-simulator-cronet': 'ios',
      'ios-simulator-xcode-clang': 'ios',
      'mac-jumbo-rel': 'jumbo_release_bot_minimal_symbols',
      'mac_chromium_10.10': 'gpu_tests_release_trybot',
      'mac_chromium_10.12_rel_ng': 'gpu_tests_release_trybot',
      'mac_chromium_10.13_rel_ng': 'release_trybot',
      'mac_chromium_archive_rel_ng': 'release_bot_mac_strip',
      'mac_chromium_asan_rel_ng': 'asan_dcheck_disable_nacl_release_bot',
      'mac_chromium_compile_dbg_ng': 'debug_trybot',
      'mac_chromium_compile_rel_ng': 'gpu_tests_release_trybot',
      'mac_chromium_dbg_ng': 'debug_trybot',
      'mac_chromium_gn_upload': 'release_bot',
      'mac_chromium_rel_ng': 'gpu_tests_release_trybot',
      'mac_nacl_sdk': 'release_bot',
      'mac_nacl_sdk_build': 'release_bot',
      'mac_optional_gpu_tests_rel': 'gpu_fyi_tests_release_trybot',
      'mac_upload_clang': 'release_bot',
      'mac-views-rel': 'mac_views_browser_release_trybot',
    },

    'tryserver.chromium.perf': {
      'Android Compile Perf': 'official_goma_minimal_symbols_android',
      'Android arm64 Compile Perf': 'official_goma_minimal_symbols_android_arm64',
      'Linux Builder Perf': 'official_goma_perf',
      'Mac Builder Perf': 'official_goma',
      'obbs_fyi': 'official_goma_perf',
      'Win Builder Perf': 'official_goma_x86',
      'Win x64 Builder Perf': 'official_goma',
    },

    'tryserver.chromium.win': {
      'gpu_manual_try_win7_nvidia_rel': 'gpu_fyi_tests_release_trybot_x86',
      'win7_chromium_rel_ng': 'gpu_tests_release_trybot_x86_minimal_symbols',
      'win7_chromium_rel_loc_exp': 'gpu_tests_release_trybot_x86_minimal_symbols',
      'win10_chromium_x64_dbg_ng': 'debug_trybot',
      'win10_chromium_x64_rel_ng': 'release_trybot',
      'win10_chromium_x64_rel_ng_exp': 'release_trybot',
      'win-annotator-rel': 'release_trybot',
      'win-jumbo-rel': 'jumbo_release_bot_minimal_symbols',
      'win_chromium_gn_upload': 'release_bot_x86_minimal_symbols',
      'win_x64_archive': 'release_trybot',
      'win_archive': 'release_trybot_x86',
      'win_chromium_compile_dbg_ng': 'debug_trybot_x86_minimal_symbols',
      'win_chromium_compile_rel_ng': 'gpu_tests_release_trybot_x86_minimal_symbols',
      'win_chromium_dbg_ng': 'debug_trybot_x86_minimal_symbols',
      'win_chromium_x64_rel_ng': 'release_trybot_minimal_symbols',
      'win_mojo': 'release_trybot_x86',
      'win_nacl_sdk': 'release_bot_x86_minimal_symbols',
      'win_nacl_sdk_build': 'release_bot_x86_minimal_symbols',
      'win_optional_gpu_tests_rel': 'gpu_fyi_tests_release_trybot_x86',
      'win_upload_clang': 'release_bot',
      'win_chrome_official': 'official_goma_x86',
    },

    'tryserver.v8': {
      'v8_linux_blink_rel': 'release_trybot',
      'v8_linux_chromium_gn_rel': 'release_trybot',
    },

    'tryserver.webrtc': {
      'win_chromium_compile': 'gpu_tests_release_trybot_x86_minimal_symbols',
      'mac_chromium_compile': 'gpu_tests_release_trybot',
      'linux_chromium_compile': 'release_trybot',
      'android_chromium_compile': 'android_release_trybot',
      'win_chromium_webrtc_compile_rel_ng': 'gpu_tests_release_trybot_x86_minimal_symbols',
      'mac_chromium_webrtc_compile_rel_ng': 'gpu_tests_release_trybot',
      'linux_chromium_webrtc_compile_rel_ng': 'release_trybot',
      'android_webrtc_compile_rel': 'android_release_trybot',
    },
  },


  # This is the list of configs that you can pass to mb; each config
  # represents a particular combination of gn args that
  # we must support. A given config *may* be platform-specific but
  # is not necessarily so (i.e., we might have mac, win, and linux
  # bots all using the 'release_bot' config).
  'configs': {
    'afl_asan_release_bot': [
      'afl', 'asan', 'release_bot', 'chromeos_codecs', 'pdf_xfa', 'disable_nacl', 'optimize_for_fuzzing',
    ],

    'android_binary_size': [
      'android', 'chrome_with_codecs', 'goma', 'minimal_symbols', 'official_optimize',
    ],

    'android_cast_debug_static_bot': [
      'android', 'cast', 'clang', 'debug_static_bot',
    ],

    'android_cast_debug_static_bot_compile_only': [
      'android', 'cast', 'clang', 'debug_static_bot', 'compile_only',
    ],

    'android_cfi_full_cfi_diag_thin_lto_release_static_dcheck_always_on_goma': [
      'android', 'cfi_full', 'cfi_diag', 'thin_lto', 'release', 'static', 'dcheck_always_on', 'goma',
    ],

    'android_clang_asan_debug_bot_minimal_symbols': [
      'android', 'clang', 'asan', 'debug_bot', 'minimal_symbols',
      'strip_debug_info',
    ],

    'android_clang_asan_debug_trybot_compile_only': [
      'android', 'clang', 'asan', 'debug_trybot', 'compile_only',
    ],

    'android_clang_tot_asan': [
      'android_without_codecs', 'clang_tot', 'asan', 'shared', 'debug', 'minimal_symbols',
      'strip_debug_info',
    ],

    'android_clang_tot_cfi_full_cfi_diag_thin_lto_release_static_dcheck_always_on': [
      'android_without_codecs', 'clang_tot', 'cfi_full', 'cfi_diag', 'thin_lto', 'release',
      'static', 'dcheck_always_on',
    ],

    'android_clang_tot_dbg': [
      'android_without_codecs', 'clang_tot', 'shared', 'debug',
    ],

    'android_clang_tot_release_arm64': [
      'android_without_codecs', 'clang_tot', 'release', 'arm64',
    ],

    'android_clang_tot_x64': [
      'android_without_codecs', 'clang_tot', 'shared', 'x64', 'release',
      'dcheck_always_on',
    ],

    'android_cronet_debug_static_bot_arm64': [
      'android', 'cronet', 'debug_static_bot', 'arm64',
    ],

    'android_cronet_debug_static_bot_arm_no_neon': [
      'android', 'cronet', 'debug_static_bot', 'arm_no_neon',
    ],

    'android_cronet_debug_static_bot_x86': [
      'android', 'cronet', 'debug_static_bot', 'x86',
    ],

    'android_cronet_debug_static_bot_arm64': [
      'android', 'cronet', 'debug_static_bot', 'arm64',
    ],

    'android_cronet_debug_static_bot_arm_no_neon': [
      'android', 'cronet', 'debug_static_bot', 'arm_no_neon',
    ],

    'android_cronet_debug_static_bot_x86': [
      'android', 'cronet', 'debug_static_bot', 'x86',
    ],

    'android_cronet_release_bot_minimal_symbols_arm64': [
      'android', 'cronet', 'official_optimize', 'release_bot', 'minimal_symbols', 'arm64',
      'strip_debug_info',
    ],

    'android_cronet_release_bot_minimal_symbols_arm_no_neon': [
      'android', 'cronet', 'official_optimize', 'release_bot', 'minimal_symbols', 'arm_no_neon',
      'strip_debug_info',
    ],

    'android_cronet_release_bot_minimal_symbols_arm_no_neon_clang_asan': [
      'android', 'cronet', 'release_bot', 'minimal_symbols', 'arm_no_neon', 'clang', 'asan',
      'strip_debug_info',
    ],

    'android_cronet_release_bot_minimal_symbols_x86': [
      'android', 'cronet', 'official_optimize', 'release_bot', 'minimal_symbols', 'x86',
      'strip_debug_info',
    ],

    'android_cronet_release_trybot_arm_no_neon': [
      'android', 'cronet', 'release_trybot', 'arm_no_neon',
    ],

    'android_debug_bot': [
      'android', 'debug_bot',
    ],

    'android_debug_static_bot': [
      'android', 'debug_static_bot',
    ],

    'android_debug_static_bot_vrdata': [
      'android', 'debug_static_bot', 'include_vr_data',
    ],

    'android_debug_static_bot_arm64': [
      'android', 'debug_static_bot', 'arm64',
    ],

    'android_debug_static_bot_x64': [
      'android', 'debug_static_bot', 'x64',
    ],

    'android_debug_static_bot_x86': [
      'android', 'debug_static_bot', 'x86',
    ],

    'android_debug_trybot': [
      'android', 'debug_trybot',
    ],

    'android_debug_trybot_arm64': [
      'android', 'debug_trybot', 'arm64',
    ],

    'android_debug_trybot_compile_only': [
      'android', 'debug_trybot', 'compile_only',
    ],

    'android_debug_trybot_compile_only_arm64': [
      'android', 'debug_trybot', 'compile_only', 'arm64',
    ],

    'android_debug_trybot_compile_only_x64': [
      'android', 'debug_trybot', 'compile_only', 'x64',
    ],

    'android_debug_trybot_compile_only_x86': [
      'android', 'debug_trybot', 'compile_only', 'x86',
    ],

    'android_debug_trybot_java_coverage': [
      'android', 'debug_trybot', 'java_coverage', 'strip_debug_info',
    ],

    'android_ndk_next_release_bot_minimal_symbols': [
      'android', 'ndk_next', 'release_bot', 'minimal_symbols', 'strip_debug_info',
    ],

    'android_ndk_next_release_bot_minimal_symbols_arm64': [
      'android', 'ndk_next', 'release_bot', 'minimal_symbols', 'arm64', 'strip_debug_info',
    ],

    'android_ndk_next_release_bot_minimal_symbols_x64': [
      'android', 'ndk_next', 'release_bot', 'minimal_symbols', 'x64', 'strip_debug_info',
    ],

    'android_ndk_next_release_bot_minimal_symbols_x86': [
      'android', 'ndk_next', 'release_bot', 'minimal_symbols', 'x86', 'strip_debug_info',
    ],

    'android_release_bot_minimal_symbols': [
      'android', 'release_bot', 'minimal_symbols',
      'strip_debug_info',
    ],

    'android_clang_tot_release_minimal_symbols': [
      'android', 'release', 'static', 'minimal_symbols',
      'strip_debug_info', 'clang_tot',
    ],

    'android_release_bot_minimal_symbols_arm64': [
      'android', 'release_bot', 'minimal_symbols', 'arm64',
      'strip_debug_info',
    ],

    'android_release_thumb_bot': [
      'android', 'release_bot', 'arm_thumb',
    ],

    'android_release_trybot': [
      'android', 'release_trybot', 'strip_debug_info',
    ],

    'android_release_trybot_arm64': [
      'android', 'release_trybot', 'arm64', 'strip_debug_info',
    ],

    'android_release_trybot_arm64_no_symbols': [
      'android', 'release_trybot', 'arm64', 'no_symbols',
    ],

    'android_shared_release_bot_x64': [
      'android_without_codecs', 'shared_release_bot', 'x64', 'dcheck_always_on',
    ],

    'android_without_codecs_release_bot_minimal_symbols': [
      'android_without_codecs', 'release_bot', 'minimal_symbols', 'strip_debug_info',
    ],

    'asan_clang_edge_fuzzer_static_v8_heap_x86_full_symbols_release': [
      'asan', 'clang_tot', 'edge', 'fuzzer', 'static', 'v8_heap', 'full_symbols', 'release', 'x64',
    ],

    'asan_clang_shared_v8_heap_x86_full_symbols_release': [
      'asan', 'clang_tot', 'shared', 'v8_heap', 'full_symbols', 'release', 'x64',
    ],

    'asan_clang_fuzzer_static_v8_heap_x86_full_symbols_release': [
      'asan', 'clang_tot', 'fuzzer', 'static', 'v8_heap', 'full_symbols', 'release', 'x64',
    ],

    'asan_dcheck_disable_nacl_release_bot': [
      'asan', 'dcheck_always_on', 'disable_nacl', 'release_bot',
    ],

    'asan_disable_nacl_clang_tot_full_symbols_static_release': [
      'asan', 'disable_nacl', 'clang_tot', 'full_symbols', 'static', 'release',
    ],

    'asan_disable_nacl_edge_fuzzer_v8_heap_chrome_with_codecs_release_bot': [
      'asan', 'disable_nacl', 'edge', 'fuzzer', 'v8_heap', 'chrome_with_codecs', 'release_bot',
    ],

    'asan_disable_nacl_edge_fuzzer_v8_heap_debug_symbols_static_bot': [
      'asan', 'disable_nacl', 'edge', 'fuzzer', 'v8_heap', 'debug_symbols_static_bot',
    ],

    'asan_disable_nacl_edge_fuzzer_v8_heap_release_bot': [
      'asan', 'disable_nacl', 'edge', 'fuzzer', 'v8_heap', 'release_bot',
    ],

    'asan_edge_fuzzer_v8_heap_chromeos_codecs_release_bot_hybrid': [
      'asan', 'edge', 'fuzzer', 'v8_heap', 'chromeos_codecs', 'release_bot', 'hybrid',
    ],

    'asan_edge_fuzzer_v8_heap_release_bot_hybrid': [
      'asan', 'edge', 'fuzzer', 'v8_heap', 'release_bot', 'hybrid',
    ],

    'asan_edge_v8_heap_debug_bot_hybrid': [
      'asan', 'edge', 'v8_heap', 'debug_bot', 'hybrid',
    ],

    'asan_full_symbols_disable_nacl_release_bot_dcheck_always_on': [
      'asan', 'full_symbols', 'disable_nacl', 'release_bot', 'dcheck_always_on',
    ],

    'asan_fuzzer_v8_heap_chrome_with_codecs_release_bot_x86': [
      'clang', 'asan', 'fuzzer', 'v8_heap', 'chrome_with_codecs', 'release_bot', 'x86',
    ],

    'asan_fuzzer_v8_heap_release_bot': [
      'clang', 'asan', 'fuzzer', 'v8_heap', 'release_bot',
    ],

    'asan_lsan_chromeos_release_trybot': [
      'asan', 'lsan', 'chromeos', 'release_trybot',
    ],

    'asan_lsan_edge_debug_bot': [
      'asan', 'lsan', 'edge', 'debug_bot',
    ],

    'asan_lsan_edge_fuzzer_v8_heap_chromeos_codecs_release_bot': [
      'asan', 'lsan', 'edge', 'v8_heap', 'chromeos_codecs', 'release_bot',
    ],

    'asan_lsan_edge_fuzzer_v8_heap_release_bot': [
      'asan', 'lsan', 'edge', 'fuzzer', 'v8_heap', 'release_bot',
    ],

    'asan_lsan_release_bot': [
      'asan', 'lsan', 'release_bot',
    ],

    'asan_lsan_release_trybot': [
      'asan', 'lsan', 'release_trybot',
    ],

    # Cast Linux takes very long in linking, possibly due to being on GCE
    # (crbug/794423).
    'cast_release_bot': [
      'cast', 'release_bot', 'minimal_symbols',
    ],

    'cast_release_trybot': [
      'cast', 'release_trybot',
    ],

    'cast_audio_release_bot': [
      'cast', 'cast_audio', 'release_bot', 'minimal_symbols',
    ],

    'cast_audio_release_trybot': [
      'cast', 'cast_audio', 'release_trybot',
    ],

    'cfi_full_cfi_icall_cfi_diag_recover_release_static': [
      'cfi_full', 'cfi_icall', 'cfi_diag', 'cfi_recover', 'thin_lto', 'release', 'static',
    ],

    'cfi_full_cfi_icall_cfi_diag_thin_lto_release_static_dcheck_always_on_goma': [
      'cfi_full', 'cfi_icall', 'cfi_diag', 'thin_lto', 'release', 'static', 'dcheck_always_on', 'goma',
    ],

    'cfi_full_diag_icall_release_static_dcheck_always_on': [
      'cfi_full', 'cfi_diag', 'cfi_icall', 'clang_tot', 'thin_lto', 'release', 'static', 'dcheck_always_on',
    ],

    'chromeos_asan_lsan_edge_fuzzer_v8_heap_release_bot': [
      'chromeos', 'asan', 'lsan', 'edge', 'fuzzer', 'v8_heap', 'release_bot',
    ],

    'chromeos_msan_release_bot': [
      'chromeos', 'msan', 'release_bot',
    ],

    'chromeos_with_codecs_debug_bot': [
      'chromeos_with_codecs', 'debug_bot', 'use_vaapi',
    ],

    'chromeos_with_codecs_release_bot': [
      'chromeos_with_codecs', 'release_bot', 'use_vaapi',
    ],

    'chromeos_with_codecs_release_trybot': [
      'chromeos_with_codecs', 'release_trybot', 'use_vaapi', 'no_symbols',
    ],

    'clang_release_bot_minimal_symbols_x86': [
      'clang', 'release_bot', 'minimal_symbols', 'x86',
    ],

    'clang_tot_asan_lsan_static_release': [
      'clang_tot', 'asan', 'lsan', 'static', 'release',
    ],

    'clang_tot_cfi_full_cfi_icall_cfi_diag_thin_lto_release_static_dcheck_always_on': [
      'clang_tot', 'cfi_full', 'cfi_icall', 'cfi_diag', 'thin_lto', 'release', 'static', 'dcheck_always_on',
    ],

    'clang_tot_cfi_full_cfi_diag_thin_lto_release_static_dcheck_always_on': [
      'clang_tot', 'cfi_full', 'cfi_diag', 'thin_lto', 'release', 'static', 'dcheck_always_on',
    ],

    'clang_tot_cfi_full_cfi_diag_thin_lto_release_static_dcheck_always_on_x86': [
      'clang_tot', 'cfi_full', 'cfi_diag', 'thin_lto', 'release', 'static', 'dcheck_always_on', 'x86',
    ],

    'clang_tot_edge_ubsan_no_recover_hack_static_release': [
      'clang_tot', 'edge', 'ubsan_no_recover_hack', 'static', 'release',
    ],

    'clang_tot_linux_full_symbols_shared_release': [
      # Enable debug info, as on official builders, to catch issues with
      # optimized debug info.
      'clang_tot', 'full_symbols', 'shared', 'release',
    ],

    'clang_tot_msan_release': [
      'clang_tot', 'msan', 'release',
    ],

    'clang_tot_shared_debug': [
      'clang_tot', 'shared', 'debug',
    ],

    'clang_tot_full_symbols_shared_debug_no_lld': [
      'clang_tot', 'full_symbols', 'shared', 'debug', 'no_lld',
    ],

    'clang_tot_full_symbols_shared_debug_no_lld_x86': [
      'clang_tot', 'full_symbols', 'shared', 'debug', 'no_lld', 'x86',
    ],

    'clang_tot_shared_debug_x86': [
      'clang_tot', 'shared', 'debug', 'x86',
    ],

    'clang_tot_shared_release_no_lld_dcheck': [
      'clang_tot', 'minimal_symbols', 'shared', 'release', 'no_lld', 'dcheck_always_on',
    ],

    'clang_tot_official_static_no_lld_x86': [
      'clang_tot', 'minimal_symbols', 'official', 'static', 'release', 'no_lld', 'x86',
    ],

    'clang_tot_minimal_symbols_shared_release': [
      'clang_tot', 'minimal_symbols', 'shared', 'release',
    ],

    'clang_tot_coverage_minimal_symbols_shared_release_with_libfuzzer': [
      'clang_tot', 'use_clang_coverage', 'minimal_symbols', 'shared', 'release', 'libfuzzer',
    ],

    'clang_tot_coverage_minimal_symbols_shared_release': [
      'clang_tot', 'use_clang_coverage', 'minimal_symbols', 'shared', 'release',
    ],

    'clang_tot_shared_release_dcheck': [
      'clang_tot', 'shared', 'release', 'dcheck_always_on',
    ],

    'clang_tot_minimal_symbols_shared_release_x86_dcheck': [
      'clang_tot', 'minimal_symbols', 'shared', 'release', 'x86', 'dcheck_always_on',
    ],

    'clang_tot_official_full_symbols_thin_lto_static_use_lld': [
      'clang_tot', 'official', 'full_symbols', 'thin_lto', 'static', 'use_lld',
    ],

    'clang_tot_official_minimal_symbols_static_release': [
      'clang_tot', 'official', 'minimal_symbols', 'static', 'release',
    ],

    'clang_tot_official_minimal_symbols_static_release_x86': [
      'clang_tot', 'official', 'minimal_symbols', 'static', 'release', 'x86',
    ],

    'clang_tot_official_optimize_minimal_symbols_static_release_libcxx': [
      'clang_tot', 'official_optimize', 'minimal_symbols', 'static', 'release', 'libcxx',
    ],

    'clang_tot_release_minimal_symbols_thin_lto_static_use_lld': [
      'clang_tot', 'release', 'minimal_symbols', 'thin_lto', 'static', 'use_lld',
    ],

    'clang_tot_shared_debug': [
      'clang_tot', 'shared', 'debug',
    ],

    'closure_compilation': [
      # The closure bots run their own recipe and shouldn't go through MB.
      'error',
    ],

    'codesearch_gen_chromium_android_bot': [
      'goma', 'clang', 'shared', 'debug', 'minimal_symbols', 'arm', 'android_without_codecs',
    ],

    'codesearch_gen_chromium_chromiumos_bot': [
      'goma', 'clang', 'shared', 'debug', 'minimal_symbols', 'x64', 'chromeos',
    ],

    'codesearch_gen_chromium_linux_bot': [
      'goma', 'clang', 'shared', 'debug', 'minimal_symbols', 'x64',
    ],

    'codesearch_gen_chromium_win_bot': [
      'goma', 'clang', 'shared', 'debug', 'minimal_symbols', 'x64',
    ],

    # The 'cros_chrome_sdk_* configs are placeholders that indicate
    # that the GN args are set by the `cros chrome-sdk`
    # wrapper and need to be looked at specially.
    'cros_chrome_sdk': [
      'cros_chrome_sdk',
    ],

    'cros_chrome_sdk_headless_ozone': [
      'cros_chrome_sdk', 'ozone_platform_headless',
    ],

    'debug_bot': [
      'debug_bot',
    ],

    'debug_bot_enable_blink_heap_incremental_marking': [
      'debug_bot', 'enable_blink_heap_incremental_marking',
    ],

    'debug_trybot_enable_blink_heap_incremental_marking': [
      'debug_trybot', 'enable_blink_heap_incremental_marking',
    ],

    'debug_bot_fuchsia': [
      'debug_bot', 'fuchsia',
    ],

    'debug_bot_x86': [
      'debug_bot', 'x86',
    ],

    # compiler.gni implicitly sets symbol_level=1 on Windows if goma is enabled,
    # if MSVC is used.  Explicitly set it here so that it's set consistently for
    # both MSVC and clang.
    'debug_bot_minimal_symbols': [ 'debug_bot', 'minimal_symbols' ],
    'debug_bot_x86_minimal_symbols': [ 'debug_bot', 'x86', 'minimal_symbols' ],

    'debug_bot_x86_minimal_symbols_no_com_init_hooks_with_codecs': [
      'debug_bot', 'x86', 'minimal_symbols', 'no_com_init_hooks', 'chrome_with_codecs'
    ],

    'libfuzzer_asan_debug_bot': [
      'libfuzzer', 'asan', 'debug_bot', 'chromeos_codecs', 'pdf_xfa', 'disable_nacl', 'optimize_for_fuzzing',
    ],

    'debug_trybot': [
      'debug_trybot',
    ],

    'debug_trybot_fuchsia': [
      'debug_trybot', 'fuchsia',
    ],

    'debug_trybot_x86': [
      'debug_trybot', 'x86',
    ],

    'debug_trybot_x86_minimal_symbols': [
      'debug_trybot', 'x86',
    ],

    'deqp_android_release_trybot_arm64': [
      'angle_deqp_tests', 'android', 'release_trybot', 'arm64',
    ],

    'deqp_android_vulkan_release_trybot': [
      'angle_deqp_tests', 'android', 'vulkan', 'release_trybot',
    ],

    'deqp_android_vulkan_release_trybot_arm64': [
      'angle_deqp_tests', 'android', 'vulkan', 'release_trybot', 'arm64',
    ],

    'deqp_release_trybot_x86': [
      'angle_deqp_tests', 'release_trybot', 'x86',
    ],

    'deqp_release_trybot': [
      'angle_deqp_tests', 'release_trybot',
    ],

    'gpu_fyi_tests_debug_trybot': [
      'gpu_fyi_tests', 'debug_trybot',
    ],

    'gpu_fyi_tests_debug_trybot_x86': [
      'gpu_fyi_tests', 'debug_trybot', 'x86',
    ],

    'gpu_fyi_tests_ozone_linux_system_gbm_libdrm_release_trybot': [
      'gpu_fyi_tests', 'ozone_linux', 'system_gbm_libdrm', 'release_trybot',
    ],

    'gpu_fyi_tests_release_trybot': [
      'gpu_fyi_tests', 'release_trybot',
    ],

    'gpu_fyi_tests_release_trybot_asan': [
      'gpu_fyi_tests', 'release_trybot', 'asan', 'full_symbols', 'disable_nacl',
    ],

    'gpu_fyi_tests_release_trybot_tsan': [
      'gpu_fyi_tests', 'release_trybot', 'tsan', 'full_symbols', 'disable_nacl',
    ],

    'gpu_fyi_tests_release_trybot_x86': [
      'gpu_fyi_tests', 'release_trybot', 'x86',
    ],

    'gpu_fyi_tests_win_clang_debug_bot': [
      'gpu_tests', 'internal_gles_conform_tests', 'clang', 'debug_bot', 'minimal_symbols',
    ],

    'gpu_tests_android_release_trybot_arm64': [
      'gpu_tests', 'android', 'release_trybot', 'arm64',
    ],

    'gpu_tests_android_vulkan_release_trybot': [
      'gpu_tests', 'android', 'vulkan', 'release_trybot',
    ],

    'gpu_tests_android_vulkan_release_trybot_arm64': [
      'gpu_tests', 'android', 'vulkan', 'release_trybot', 'arm64',
    ],

    'gpu_tests_debug_trybot': [
      'gpu_tests', 'debug_trybot',
    ],

    'gpu_tests_debug_trybot_x86_minimal_symbols': [
      'gpu_tests', 'debug_trybot', 'x86', 'minimal_symbols',
    ],

    'gpu_tests_release_trybot': [
      'gpu_tests', 'release_trybot',
    ],

    'gpu_tests_release_trybot_no_symbols': [
      'gpu_tests', 'release_trybot', 'no_symbols',
    ],

    'gpu_tests_release_trybot_cm': [
      'gpu_tests', 'release_trybot', 'v8_concurrent_marking',
    ],

    'gpu_tests_release_trybot_x86_minimal_symbols': [
      'gpu_tests', 'release_trybot', 'x86', 'minimal_symbols',
    ],

    'gpu_tests_release_bot': [
      'gpu_tests', 'release_bot',
    ],

    'gn_linux_upload': [
      'gn_linux_upload', 'official', 'goma',
    ],

    'headless_linux_debug_bot': [
      'debug_bot', 'headless',
    ],

    'headless_linux_release_trybot': [
      'release_trybot', 'headless',
    ],

    # The 'ios' config is just used for auditing. iOS bots
    # actually use the ios recipes, not the chromium recipe, and look
    # up their GN arguments via files checked in under //ios/build/bots.
    # It is an error to actually use one of these configs to generate the
    # build files.
    'ios': [ 'error'],

    'jumbo_release_bot_minimal_symbols': [
      'jumbo', 'release_bot', 'minimal_symbols'
    ],

    'jumbo_large_chunks_release_bot_minimal_symbols': [
      'jumbo_non_goma_chunks', 'release_bot', 'minimal_symbols'
    ],

    'libfuzzer_asan_debug_bot': [
      'libfuzzer', 'asan', 'debug_bot', 'chromeos_codecs', 'pdf_xfa', 'disable_nacl', 'optimize_for_fuzzing',
    ],
    'libfuzzer_asan_release_bot': [
      'libfuzzer', 'asan', 'release_bot', 'chromeos_codecs', 'pdf_xfa', 'disable_nacl', 'optimize_for_fuzzing',
    ],


    'libfuzzer_asan_clang_tot_release': [
      'libfuzzer', 'asan', 'clang_tot', 'release', 'chromeos_codecs', 'pdf_xfa', 'disable_nacl',
    ],

    'libfuzzer_mac_asan_release_bot': [
      'libfuzzer', 'asan', 'release_bot', 'chrome_with_codecs', 'pdf_xfa', 'disable_nacl', 'optimize_for_fuzzing',
    ],

    'libfuzzer_msan_release_bot': [
      'libfuzzer', 'msan', 'release_bot', 'chromeos_codecs', 'pdf_xfa', 'disable_nacl', 'optimize_for_fuzzing',
    ],

    'libfuzzer_ubsan_release_bot': [
      'libfuzzer', 'ubsan_security', 'release_bot', 'chromeos_codecs', 'pdf_xfa', 'disable_nacl', 'optimize_for_fuzzing',
    ],

    'linux_chromium_analysis': [
      'analysis'
    ],

    'mac_views_browser_release_bot': [
      'mac_views_browser', 'release_bot',
    ],

    'mac_views_browser_release_trybot': [
      'mac_views_browser', 'release_trybot',
    ],

    'msan_edge_release_bot': [
      'msan', 'edge', 'release_bot',
    ],

    'msan_no_origins_edge_release_bot': [
      'msan_no_origins', 'edge', 'release_bot',
    ],

    'msan_release_bot': [
      'msan', 'release_bot',
    ],

    'official_goma': [
      'official', 'goma',
    ],

    'official_goma_perf': [
      'official', 'goma', 'no_gnome_keyring',
    ],

    'official_goma_chromeos': [
      'official', 'goma', 'chromeos',
    ],

    'official_goma_minimal_symbols_android': [
      'official', 'goma', 'minimal_symbols', 'android',
    ],

    'official_goma_minimal_symbols_android_arm64': [
      'official', 'goma', 'minimal_symbols', 'android', 'arm64',
    ],

    'official_goma_minimal_symbols_android_thin_lto': [
      'official', 'goma', 'minimal_symbols', 'android', 'thin_lto',
    ],

    'official_goma_minimal_symbols_android_thin_lto_arm64': [
      'official', 'goma', 'minimal_symbols', 'android', 'thin_lto', 'arm64',
    ],

    'official_goma_x86': [
      'official', 'goma', 'x86',
    ],

    'ozone_linux_release_bot': [
      'ozone_linux', 'release_bot',
    ],

    'ozone_linux_release_trybot': [
      'ozone_linux', 'release_trybot',
    ],

    'presubmit': [
      # The chromium_presubmit bot does not use mb.
      'error',
    ],

    'release_bot': [
      'release_bot',
    ],

    'release_bot_arm': [
      'release_bot', 'arm',
    ],

    'release_bot_chrome_with_codecs': [
      'release_bot', 'chrome_with_codecs',
    ],

    'release_bot_enable_blink_heap_verification_dcheck_always_on': [
      'release_bot', 'enable_blink_heap_verification', 'dcheck_always_on',
    ],

    'release_bot_fuchsia': [
      'release_bot', 'fuchsia',
    ],

    'release_bot_fuchsia_cast_audio': [
      'release_bot', 'fuchsia', 'cast', 'cast_audio', 'no_symbols',
    ],

    'release_bot_fuchsia_arm64': [
      'release_bot', 'fuchsia', 'arm64',
    ],

    'release_bot_fuchsia_arm64_cast_audio': [
      'release_bot', 'fuchsia', 'arm64', 'cast', 'cast_audio', 'no_symbols',
    ],

    'release_bot_mac_strip': [
      'release_bot', 'mac_strip',
    ],

    'release_bot_v8_debug': [
      'release_bot', 'v8_enable_debugging_features',
    ],

    'release_bot_x86': [
      'release_bot', 'x86',
    ],

    # compiler.gni implicitly sets symbol_level=1 on Windows if goma is enabled,
    # if MSVC is used.  Explicitly set it here so that it's set consistently for
    # both MSVC and clang.
    'release_bot_minimal_symbols': [ 'release_bot', 'minimal_symbols' ],
    'release_bot_x86_minimal_symbols': [ 'release_bot', 'x86', 'minimal_symbols' ],

    'release_bot_minimal_symbols_enable_archive_compression': [
      'release_bot', 'minimal_symbols', 'enable_archive_compression'
    ],

    'release_bot_x86_minimal_symbols_enable_archive_compression': [
      'release_bot', 'x86', 'minimal_symbols', 'enable_archive_compression'
    ],

    'release_bot_x86_minimal_symbols_no_com_init_hooks_with_codecs': [
      'release_bot', 'x86', 'minimal_symbols', 'no_com_init_hooks', 'chrome_with_codecs'
    ],

    'release_trybot': [
      'release_trybot',
    ],

    'release_trybot_dcheck_off': [
      'release_trybot', 'dcheck_off',
    ],

    'release_trybot_minimal_symbols': [
      'release_trybot', 'minimal_symbols',
    ],

    'release_trybot_arm': [
      'release_trybot', 'arm',
    ],

    'release_trybot_enable_blink_heap_verification': [
      'release_trybot', 'enable_blink_heap_verification',
    ],

    'release_trybot_fuchsia': [
      'release_trybot', 'fuchsia',
    ],

    'release_trybot_fuchsia_cast_audio': [
      'release_trybot', 'fuchsia', 'cast', 'cast_audio',
    ],

    'release_trybot_fuchsia_arm64': [
      'release_trybot', 'fuchsia', 'arm64',
    ],

    'release_trybot_fuchsia_arm64_cast_audio': [
      'release_trybot', 'fuchsia', 'arm64', 'cast', 'cast_audio',
    ],

    'release_trybot_x86': [
      'release_trybot', 'x86',
    ],

    'release_bot_x86_minimal_symbols_no_clang': [
      'release_bot', 'x86', 'minimal_symbols', 'no_clang',
    ],

    'release_bot_x86_minimal_symbols_no_clang_cxx11': [
      'release_bot', 'x86', 'minimal_symbols', 'no_clang', 'use_cxx11',
    ],

    'tsan_disable_nacl_debug_bot': [
      'tsan', 'disable_nacl', 'debug_bot',
    ],

    'tsan_disable_nacl_release_bot': [
      'tsan', 'disable_nacl', 'release_bot',
    ],

    'tsan_disable_nacl_release_trybot': [
      'tsan', 'disable_nacl', 'release_trybot',
    ],

    'ubsan_release_bot': [
      'ubsan', 'release_bot',
    ],

    'ubsan_vptr_edge_release_bot': [
      'ubsan_vptr', 'edge', 'release_bot',
    ],

    'ubsan_vptr_release_bot': [
      'ubsan_vptr', 'ubsan_no_recover_hack', 'release_bot',
    ],

    'ubsan_vptr_release_trybot': [
      'ubsan_vptr', 'ubsan_no_recover_hack', 'release_trybot',
    ],

    'v8_future_debug_bot': [
      'v8_future', 'debug_bot',
    ],

    'v8_future_release_bot': [
      'v8_future', 'release_bot',
    ],

    'vr_release_bot': [
      'vr', 'release_bot', 'ozone',
    ],

    'vr_release_trybot': [
      'vr', 'release_trybot', 'ozone',
    ],

    'win_msvc_release_bot': [
      'no_clang', 'release_bot',
    ],

    # TODO(tikuta): Remove this once gcp goma backend supports all windows nacl compilers.
    'win_clang_release_bot_disable_nacl': [
      'clang', 'release_bot', 'minimal_symbols', 'disable_nacl',
    ],

    'clang_tot_win_release_cross': [
      'clang_tot', 'win_cross', 'minimal_symbols', 'shared', 'release', 'dcheck_always_on',
    ],

    'windows_analyze': [
      'no_symbols', 'no_pch', 'shared', 'x86', 'win_analyze',
    ],
  },

  # This is a dict mapping a given 'mixin' name to a dict of settings that
  # mb should use. See //tools/mb/docs/user_guide.md for more information.
  'mixins': {
    'afl': { 'gn_args': 'use_afl=true' },

    'analysis': { 'gn_args': 'use_clang_static_analyzer=true'},

    # We build Android with codecs on most bots to ensure maximum test
    # coverage, but use 'android_without_codecs' on bots responsible for
    # building publicly advertised non-Official Android builds --
    # which are not allowed to have proprietary codecs enabled.
    'android': {
      'mixins': ['android_without_codecs', 'chrome_with_codecs'],
    },

    'android_without_codecs': {
      'gn_args': 'target_os="android"',
    },

    'angle_deqp_tests': {
      'gn_args': 'build_angle_deqp_tests=true',
    },

    'arm': {
      'gn_args': 'target_cpu="arm"',
    },

    'arm64': {
      'gn_args': 'target_cpu="arm64"',
    },

    'arm_no_neon': {
      'mixins': ['arm'],
      'gn_args': 'arm_use_neon=false',
    },

    'arm_thumb': {
      'gn_args': 'arm_use_thumb=true',
    },

    'asan': {
      'gn_args': 'is_asan=true',
    },

    'ffmpeg_branding_chrome': {
      'gn_args': 'ffmpeg_branding="Chrome"',
    },

    'ffmpeg_branding_chromeos': {
      'gn_args': 'ffmpeg_branding="ChromeOS"',
    },

    'cast': {
      'gn_args': 'is_chromecast=true',
    },

    'cast_audio': {
      'gn_args': 'is_cast_audio_only=true'
    },

    'cfi': {
      'gn_args': 'is_cfi=true',
    },

    'cfi_full': {
      'mixins': ['cfi'],
      'gn_args': 'use_cfi_cast=true',
    },

    'cfi_icall': {
      'gn_args': 'use_cfi_icall=true',
    },

    'cfi_diag': {
      'gn_args': 'use_cfi_diag=true',
    },

    'cfi_recover': {
      'gn_args': 'use_cfi_recover=true',
    },

    'chrome_with_codecs': {
      'mixins': ['ffmpeg_branding_chrome', 'proprietary_codecs'],
    },

    'chromeos': {
      'gn_args': 'target_os="chromeos"',
    },

    'chromeos_codecs': {
      'mixins': ['ffmpeg_branding_chromeos', 'proprietary_codecs'],
    },

    'chromeos_with_codecs': {
      'mixins': ['chromeos', 'chromeos_codecs'],
    },

    'clang_tot': {
      'gn_args': 'llvm_force_head_revision=true clang_use_chrome_plugins=false',
      'mixins': ['clang'],
    },

    'clang': {
      'gn_args': 'is_clang=true',
    },

    'no_clang': {
      'gn_args': 'is_clang=false',
    },

    'use_clang_coverage': {
      'gn_args': 'use_clang_coverage=true',
    },

    'use_cxx11': {
      'gn_args': 'use_cxx11=true',
    },

    'compile_only': {
      'mixins': ['no_symbols'],
    },

    'cronet': {
      'gn_args': ('disable_file_support=true disable_ftp_support=true '
                  'enable_websockets=false use_platform_icu_alternatives=true '
                  'use_partition_alloc=false enable_reporting=true '
                  'include_transport_security_state_preload_list=false '
                  'use_crash_key_stubs=true '
                  'clang_use_default_sample_profile=false'),
    },

    'cros_chrome_sdk': {
      # This is used so that the cros chrome_sdk (simplechrome) builders
      # can manage the list of GN args in their .ebuild
      # files and just pass through the desired arguments, hence not
      # really using MB. If a bot uses this mixin, we expect that
      # both GYP_DEFINES and GN_ARGS are set in the environment,
      # and that GYP_DEFINES has chromeos=1 and GN_ARGS has
      # target_os="chromeos" in it.
      'cros_passthrough': True,
    },

    'dcheck_always_on': {
      'gn_args': 'dcheck_always_on=true',
    },

    'dcheck_off': {
      'gn_args': 'dcheck_always_on=false',
    },

    'debug': {
      'gn_args': 'is_debug=true',
    },

    'debug_bot': {
      'mixins': ['debug', 'shared', 'goma'],
    },

    'debug_symbols_static_bot': {
      'mixins': ['debug', 'static', 'goma'],
    },

    'debug_static_bot': {
      'mixins': ['debug', 'static', 'minimal_symbols', 'goma'],
    },

    'debug_trybot': {
      'mixins': ['debug_bot', 'minimal_symbols'],
    },

    'disable_nacl': {
      'gn_args': 'enable_nacl=false',
    },

    'edge': {
      'gn_args': 'sanitizer_coverage_flags="trace-pc-guard"',
    },

    'enable_blink_heap_incremental_marking': {
      'gn_args': 'enable_blink_heap_incremental_marking=true',
    },

    'enable_blink_heap_verification': {
      'gn_args': 'enable_blink_heap_verification=true',
    },

    # This config enable compression on main waterfall win builder to reduce the
    # size of chrome installer which are downloaded by bysecting script many
    # times.
    'enable_archive_compression': {
      'gn_args': 'skip_archive_compression=false',
    },

    # This mixin is used to force configs that use it to fail. It
    # is used in two cases: when we have bots that we haven't looked
    # at yet and don't know whether they need MB or not, and for bots
    # that are test-only and should never run MB.
    'error': {
      'gn_args': 'error',
    },

    'ffmpeg_branding_chromeos': {
      'gn_args': 'ffmpeg_branding="ChromeOS"',
    },

    'full_symbols': {
      'gn_args': 'symbol_level=2',
    },

    'fuzzer': {
      'gn_args': 'enable_ipc_fuzzer=true',
    },

    'gn_linux_upload': {
      # We don't want to require a runtime dependency on glib in the
      # GN binary; ideally we could just turn glib off, but that doesn't
      # actually work, so we need to pretend to be doing an ozone build
      # in order for the flag to actually take effect.
      'gn_args': 'use_ozone=true',
    },

    'goma': {
      # The MB code will properly escape goma_dir if necessary in the GYP
      # code path; the GN code path needs no escaping.
      # We also set strip_absolute_paths to ensure that we can get deterministic
      # builds. This isn't just on by default when goma is on so that devs
      # can do goma builds but still be able to debug by default.
      'gn_args': 'use_goma=true strip_absolute_paths_from_debug_symbols=true',
    },

    'gpu_fyi_tests': {
      'mixins': ['gpu_tests', 'internal_gles_conform_tests'],
    },

    'gpu_tests': {
      'mixins': ['chrome_with_codecs'],
    },

    'headless': {
      'args_file': '//build/args/headless.gn',
    },

    'hybrid': {
      'gn_args': 'v8_target_cpu="arm" target_cpu="x86"',
      'mixins': ['disable_nacl'],
    },

    'include_vr_data': {
      'gn_args': 'include_vr_data=true',
    },

    'internal_gles_conform_tests': {
      'gn_args': 'internal_gles2_conform_tests=true build_angle_gles1_conform_tests=true',
    },

    'java_coverage': {
      'gn_args': 'emma_coverage=true emma_filter="org.chromium.*"',
    },

    'jumbo': {
      'gn_args': 'use_jumbo_build=true',
    },

    'jumbo_non_goma_chunks': {
      'gn_args': 'use_jumbo_build=true jumbo_file_merge_limit=50',
    },

    'libcxx': {
      'gn_args': 'use_custom_libcxx=true',
    },

    'libfuzzer': { 'gn_args': 'use_libfuzzer=true' },

    'lsan': {
      'gn_args': 'is_lsan=true',
    },

    'mac_strip': {
      'gn_args': 'enable_stripping=true',
    },

    'mac_views_browser': {
      'gn_args': 'mac_views_browser=true',
    },

    'minimal_symbols': {
      'gn_args': 'symbol_level=1',
    },

    'msan': {
      'gn_args': 'is_msan=true msan_track_origins=2 use_prebuilt_instrumented_libraries=true',
    },

    'msan_no_origins': {
      'gn_args': 'is_msan=true msan_track_origins=0 use_prebuilt_instrumented_libraries=true',
    },

    'ndk_next': {
      # GCC is unsupported starting in r13.
      'mixins': ['clang'],
      'gn_args': 'android_ndk_version="r13b" android_ndk_major_version=13',
    },

    'no_com_init_hooks': {
      'gn_args': 'com_init_check_hook_disabled=true',
    },

    'no_gnome_keyring': {
      'gn_args': 'use_gnome_keyring=false',
    },

    'no_pch': {
      'gn_args': 'enable_precompiled_headers=false',
    },

    'no_symbols': {
      'gn_args': 'symbol_level=0',
    },

    'official': {
      'mixins': ['official_optimize'],
      'gn_args': 'is_chrome_branded=true',
    },

    'official_optimize': {
      'gn_args': 'is_official_build=true is_debug=false',
    },

    'optimize_for_fuzzing': {
      'gn_args': 'optimize_for_fuzzing=true',
    },

    'ozone': {
      'gn_args': 'use_ozone=true',
    },

    'ozone_linux': {
      'gn_args': ('ozone_auto_platforms=false ozone_platform_wayland=true '
                  'ozone_platform="x11" '
                  'ozone_platform_x11=true ozone_platform_gbm=true '
                  'use_xkbcommon=true use_ozone=true'),
    },

    'ozone_platform_headless': {
      'gn_args': 'ozone_platform_headless=true',
    },

    'fuchsia': {
      'gn_args': 'target_os="fuchsia"',
    },

    'pdf_xfa': {
      'gn_args': 'pdf_enable_xfa=true',
    },

    # Note: This is probably not what you want to use. Instead use one of the
    # chrome_with_codecs or chromeos_with_codecs mixins.
    'proprietary_codecs': {
      'gn_args': 'proprietary_codecs=true',
    },

    'release': {
      'gn_args': 'is_debug=false',
    },

    'release_bot': {
      'mixins': ['release', 'static', 'goma'],
    },

    'release_trybot': {
      'mixins': ['release_bot', 'minimal_symbols', 'dcheck_always_on'],
    },

    'shared': {
      'gn_args': 'is_component_build=true',
    },

    'shared_release_bot': {
      'mixins': ['shared', 'release', 'goma']
    },

    'static': {
      'gn_args': 'is_component_build=false',
    },

    'strip_debug_info': {
      'gn_args': 'strip_debug_info=true',
    },

    'system_gbm_libdrm': {
      'gn_args': 'use_system_libdrm=true use_system_minigbm=true',
    },

    'thin_lto': {
      'gn_args': 'use_thin_lto=true',
    },

    'tsan': {
      'gn_args': 'is_tsan=true',
    },

    'ubsan': {
      'gn_args': 'is_ubsan=true',
    },

    'ubsan_no_recover_hack': {
      # TODO(krasin): Remove when https://llvm.org/bugs/show_bug.cgi?id=25569
      # is fixed and just use ubsan_vptr instead.
      'mixins': ['ubsan_vptr'],
      'gn_args': 'is_ubsan_no_recover=true',
    },

    'ubsan_security': { 'gn_args': 'is_ubsan_security=true' },

    'ubsan_vptr': {
      'gn_args': 'is_ubsan_vptr=true',
    },

    'use_lld': {
      'gn_args': 'use_lld=true',
    },

    'no_lld': {
      'gn_args': 'use_lld=false',
    },

    'use_vaapi': {
      'gn_args': 'use_vaapi=true',
    },

    'v8_concurrent_marking': {
      'gn_args': 'v8_enable_concurrent_marking=true',
    },

    'v8_enable_debugging_features': {
      'gn_args': 'v8_enable_debugging_features=true',
    },

    'v8_future': {
      'gn_args': 'v8_enable_future=true',
    },

    'v8_heap': {
      'gn_args': 'v8_enable_verify_heap=true',
    },

    'vr': {
      'gn_args': 'enable_vr=true',
    },

    'vulkan': {
      'gn_args': 'android32_ndk_api_level=24 android64_ndk_api_level=24',
    },

    'win_cross': {
      'gn_args': 'target_os="win"',
    },

    'win_analyze': {
      'gn_args': 'use_vs_code_analysis=true',
    },

    'x64': {
      'gn_args': 'target_cpu="x64"',
    },

    'x86': {
      'gn_args': 'target_cpu="x86"',
    },
  },
}
