| # Copyright (c) 2016 The WebRTC project authors. All Rights Reserved. | 
 | # | 
 | # Use of this source code is governed by a BSD-style license | 
 | # that can be found in the LICENSE file in the root of the source | 
 | # tree. An additional intellectual property rights grant can be found | 
 | # in the file PATENTS.  All contributing project authors may | 
 | # be found in the AUTHORS file in the root of the source tree. | 
 |  | 
 | # FOR DETAILS ON THIS FILE SEE THE MAIN COPY IN //tools/mb/mb_config.pyl. | 
 | # This is configuration for standalone WebRTC bots. It is used to keep the bot | 
 | # configurations source-side instead of in the buildbot scripts. That makes it | 
 | # easy to try different configurations of GN args in tryjob patches. | 
 |  | 
 | { | 
 |   # This is a map of buildbot builder group names -> buildbot builder names -> | 
 |   # config names (where each config name is a key in the 'configs' dict, | 
 |   # above). mb uses this dict to look up which config to use for a given bot. | 
 |   # The builders should be sorted by the order they appear in the /builders | 
 |   # page on the buildbots, *not* alphabetically. | 
 |   'builder_groups': { | 
 |     # This is required because WebRTC mb.py overwrites the default configs | 
 |     # and Chromium's mb.py checks the default config contains 'chromium'. | 
 |     'chromium': {}, | 
 |     'chromium.infra.codesearch': { | 
 |       'codesearch-gen-webrtc-android': { | 
 |         'android': 'android_debug_static_bot_arm', | 
 |       }, | 
 |       'codesearch-gen-webrtc-linux': { | 
 |         'linux': 'codesearch_gen_linux_bot', | 
 |       } | 
 |     }, | 
 |     'client.webrtc': { | 
 |       # Android | 
 |       'Android32': 'android_release_bot_arm', | 
 |       'Android32 (dbg)': 'android_debug_static_bot_arm', | 
 |       'Android32 (more configs)': { | 
 |         'dummy_audio_file_devices_no_protobuf': | 
 |         'dummy_audio_file_devices_no_protobuf_android_arm', | 
 |         'rtti_no_sctp': 'rtti_no_sctp_android_arm', | 
 |       }, | 
 |       'Android32 Builder arm': 'android_pure_release_bot_arm', | 
 |       'Android32 Builder x86': 'android_release_bot_x86', | 
 |       'Android32 Builder x86 (dbg)': 'android_debug_static_bot_x86', | 
 |       'Android64': 'android_release_bot_arm64', | 
 |       'Android64 (dbg)': 'android_debug_static_bot_arm64', | 
 |       'Android64 Builder arm64': 'android_pure_release_bot_arm64', | 
 |       'Android64 Builder x64 (dbg)': 'android_debug_static_bot_x64', | 
 |  | 
 |       # Fuchsia | 
 |       'Fuchsia Builder': 'release_bot_x64_fuchsia', | 
 |       'Fuchsia Release': 'release_bot_x64_fuchsia', | 
 |  | 
 |       # Linux | 
 |       # "More configs" bots will build all the following configs in sequence. | 
 |       # This is using MB's "phases" feature. | 
 |       'Linux (more configs)': { | 
 |         'dummy_audio_file_devices_no_protobuf': | 
 |         'dummy_audio_file_devices_no_protobuf_x64', | 
 |         'rtti_no_sctp': 'rtti_no_sctp_x64', | 
 |         'openssl': 'openssl_x64', | 
 |       }, | 
 |       'Linux Asan': 'asan_lsan_clang_release_bot_x64', | 
 |       'Linux MSan': 'msan_clang_release_bot_x64', | 
 |       'Linux Tsan v2': 'tsan_clang_release_bot_x64', | 
 |       'Linux UBSan': 'ubsan_clang_release_bot_x64', | 
 |       'Linux UBSan vptr': 'ubsan_vptr_clang_release_bot_x64', | 
 |       'Linux32 Debug': 'no_h264_debug_bot_x86', | 
 |       'Linux32 Debug (ARM)': 'debug_bot_arm', | 
 |       'Linux32 Release': 'release_bot_x86', | 
 |       'Linux32 Release (ARM)': 'release_bot_arm', | 
 |       'Linux64 Builder': 'pure_release_bot_x64', | 
 |       'Linux64 Debug': 'debug_bot_x64', | 
 |       'Linux64 Debug (ARM)': 'debug_bot_arm64', | 
 |       'Linux64 Release': 'release_bot_x64', | 
 |       'Linux64 Release (ARM)': 'release_bot_arm64', | 
 |       'Linux64 Release (Libfuzzer)': 'libfuzzer_asan_release_bot_x64', | 
 |  | 
 |       # Mac | 
 |       'Mac Asan': 'mac_asan_clang_release_bot_x64', | 
 |       'Mac64 Builder': 'pure_release_bot_x64', | 
 |       'Mac64 Debug': 'debug_bot_x64', | 
 |       'Mac64 Release': 'release_bot_x64', | 
 |       'MacARM64 M1 Release': 'release_bot_arm64', | 
 |       'MacArm64 Builder': 'release_bot_arm64', | 
 |  | 
 |       # Windows | 
 |       'Win (more configs)': { | 
 |         'dummy_audio_file_devices_no_protobuf': | 
 |         'dummy_audio_file_devices_no_protobuf_x86', | 
 |         'rtti_no_sctp': 'rtti_no_sctp_no_unicode_win_x86', | 
 |       }, | 
 |       'Win32 Debug (Clang)': 'win_clang_debug_bot_x86', | 
 |       'Win32 Release (Clang)': 'win_clang_release_bot_x86', | 
 |       'Win64 ASan': 'win_asan_clang_release_bot_x64', | 
 |       'Win64 Builder (Clang)': 'win_clang_pure_release_bot_x64', | 
 |       'Win64 Debug (Clang)': 'win_clang_debug_bot_x64', | 
 |       'Win64 Release (Clang)': 'win_clang_release_bot_x64', | 
 |  | 
 |       # iOS | 
 |       'iOS Debug (simulator)': 'ios_debug_bot_x64', | 
 |       'iOS64 Debug': 'ios_debug_bot_arm64', | 
 |       'iOS64 Release': 'ios_release_bot_arm64', | 
 |     }, | 
 |     'client.webrtc.fyi': { | 
 |       # Android | 
 |       'Android ASan (swarming)': 'android_asan_shared_release_bot_arm', | 
 |       'Android Perf (swarming)': 'android_pure_release_bot_arm', | 
 |  | 
 |       # Mac | 
 |       'Mac (swarming)': 'release_bot_x64', | 
 |  | 
 |       # Windows | 
 |       'Win (swarming)': 'release_bot_x86', | 
 |       'Win64 Debug (Win10)': 'debug_bot_x64', | 
 |       'Win64 Debug (Win8)': 'debug_bot_x64', | 
 |     }, | 
 |     'client.webrtc.perf': { | 
 |       # These are here because testers need to gn gen + ninja for the | 
 |       # webrtc_dashboard_upload target (otherwise a tester would not need to | 
 |       # build anything). | 
 |       # TODO(http://crbug.com/1029452): Nuke these and isolate on builder | 
 |       # instead? | 
 |       'Perf Android32 (R Pixel5)': 'release_bot_x64', | 
 |       'Perf Android64 (R Pixel5)': 'release_bot_x64', | 
 |       'Perf Fuchsia': 'release_bot_x64_fuchsia', | 
 |       'Perf Linux Bionic': 'release_bot_x64', | 
 |       'Perf Linux Trusty': 'release_bot_x64', | 
 |       'Perf Mac 11': 'release_bot_x64', | 
 |       'Perf Mac M1 Arm64 12': 'release_bot_x64', | 
 |       'Perf Win 10': 'release_bot_x64', | 
 |     }, | 
 |     'internal.client.webrtc': { | 
 |       'iOS64 Debug': 'ios_internal_debug_bot_arm64', | 
 |       'iOS64 Perf': 'ios_internal_pure_release_bot_arm64', | 
 |       'iOS64 Release': 'ios_internal_release_bot_arm64', | 
 |     }, | 
 |     'tryserver.webrtc': { | 
 |       # Android | 
 |       'android_arm64_dbg': 'android_release_bot_arm64', | 
 |       'android_arm64_rel': 'android_release_bot_arm64', | 
 |       'android_arm_dbg': 'android_debug_static_bot_arm', | 
 |       'android_arm_more_configs': { | 
 |         'dummy_audio_file_devices_no_protobuf': | 
 |         'dummy_audio_file_devices_no_protobuf_android_arm', | 
 |         'rtti_no_sctp': 'rtti_no_sctp_android_arm', | 
 | 	'disable_trace_events': 'disable_trace_events_android_arm', | 
 |         'perfetto': 'perfetto_android_arm', | 
 |       }, | 
 |       'android_arm_rel': 'android_release_bot_arm', | 
 |       'android_compile_arm64_dbg': 'android_debug_static_bot_arm64', | 
 |       'android_compile_arm64_rel': 'android_pure_release_bot_arm64', | 
 |       'android_compile_arm_dbg': 'android_debug_static_bot_arm', | 
 |       'android_compile_arm_rel': 'android_pure_release_bot_arm', | 
 |       'android_compile_x64_dbg': 'android_debug_static_bot_x64', | 
 |       'android_compile_x64_rel': 'android_release_bot_x64', | 
 |       'android_compile_x86_dbg': 'android_debug_static_bot_x86', | 
 |       'android_compile_x86_rel': 'android_release_bot_x86', | 
 |  | 
 |       # Fuchsia | 
 |       'fuchsia_rel': 'release_bot_x64_fuchsia', | 
 |  | 
 |       # iOS | 
 |       'ios_compile_arm64_dbg': 'ios_debug_bot_arm64', | 
 |       'ios_compile_arm64_rel': 'ios_release_bot_arm64', | 
 |       'ios_dbg_simulator': 'ios_debug_bot_x64', | 
 |  | 
 |       # Include What You Use | 
 |       'iwyu_verifier': 'release_bot_x64', | 
 |  | 
 |       # Linux | 
 |       'linux_asan': 'asan_lsan_clang_release_bot_x64', | 
 |       'linux_compile_arm64_dbg': 'debug_bot_arm64', | 
 |       'linux_compile_arm64_rel': 'release_bot_arm64', | 
 |       'linux_compile_arm_dbg': 'debug_bot_arm', | 
 |       'linux_compile_arm_rel': 'release_bot_arm', | 
 |       'linux_compile_dbg': 'debug_bot_x64', | 
 |       'linux_compile_rel': 'pure_release_bot_x64', | 
 |       'linux_compile_x86_dbg': 'debug_bot_x86', | 
 |       'linux_compile_x86_rel': 'pure_release_bot_x86', | 
 |       'linux_coverage': 'code_coverage_bot_x64', | 
 |       'linux_dbg': 'debug_bot_x64', | 
 |       'linux_libfuzzer_rel': 'libfuzzer_asan_release_bot_x64', | 
 |       'linux_more_configs': { | 
 |         'dummy_audio_file_devices_no_protobuf': | 
 |         'dummy_audio_file_devices_no_protobuf_x64', | 
 |         'rtti_no_sctp': 'rtti_no_sctp_x64', | 
 |         'disable_trace_events': 'disable_trace_events_x64', | 
 |         'perfetto': 'perfetto_x64', | 
 |         'openssl': 'openssl_x64', | 
 |       }, | 
 |       'linux_msan': 'msan_clang_release_bot_x64', | 
 |       'linux_rel': 'release_bot_x64', | 
 |       'linux_tsan2': 'tsan_clang_release_bot_x64', | 
 |       'linux_ubsan': 'ubsan_clang_release_bot_x64', | 
 |       'linux_ubsan_vptr': 'ubsan_vptr_clang_release_bot_x64', | 
 |       'linux_x86_dbg': 'no_h264_debug_bot_x86', | 
 |       'linux_x86_rel': 'release_bot_x86', | 
 |  | 
 |       # Mac | 
 |       'mac_asan': 'mac_asan_clang_release_bot_x64', | 
 |       'mac_compile_dbg': 'debug_bot_x64', | 
 |       'mac_compile_rel': 'pure_release_bot_x64', | 
 |       'mac_dbg': 'debug_bot_x64', | 
 |       'mac_dbg_m1': 'debug_bot_arm64', | 
 |       'mac_rel': 'release_bot_x64', | 
 |       'mac_rel_m1': 'release_bot_arm64', | 
 |  | 
 |       # Windows | 
 |       'win11_debug': 'win_clang_debug_bot_x64', | 
 |       'win11_release': 'win_clang_release_bot_x64', | 
 |       'win_asan': 'win_asan_clang_release_bot_x64', | 
 |       'win_compile_x64_clang_dbg': 'win_clang_debug_bot_x64', | 
 |       'win_compile_x64_clang_rel': 'win_clang_release_bot_x64', | 
 |       'win_compile_x86_clang_dbg': 'win_clang_debug_bot_x86', | 
 |       'win_compile_x86_clang_rel': 'win_clang_release_bot_x86', | 
 |       'win_x64_clang_dbg': 'win_clang_debug_bot_x64', | 
 |       'win_x64_clang_rel': 'win_clang_release_bot_x64', | 
 |       'win_x86_clang_dbg': 'win_clang_debug_bot_x86', | 
 |       'win_x86_clang_rel': 'win_clang_release_bot_x86', | 
 |       'win_x86_more_configs': { | 
 |         'dummy_audio_file_devices_no_protobuf': | 
 |         'dummy_audio_file_devices_no_protobuf_x86', | 
 |         'rtti_no_sctp': 'rtti_no_sctp_no_unicode_win_x86', | 
 |         'disable_trace_events': 'disable_trace_events_x86', | 
 |         'perfetto': 'perfetto_x86', | 
 |       }, | 
 |     } | 
 |   }, | 
 |  | 
 |   # 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': { | 
 |     'android_asan_shared_release_bot_arm': | 
 |     ['android', 'asan', 'clang', 'pure_release_bot', 'arm'], | 
 |     'android_debug_static_bot_arm': [ | 
 |       'android', | 
 |       'debug_static_bot', | 
 |       'arm', | 
 |       'h265', | 
 |     ], | 
 |     'android_debug_static_bot_arm64': [ | 
 |       'android', | 
 |       'debug_static_bot', | 
 |       'arm64', | 
 |       'h265', | 
 |     ], | 
 |     'android_debug_static_bot_x64': [ | 
 |       'android', | 
 |       'debug_static_bot', | 
 |       'x64', | 
 |       'h265', | 
 |     ], | 
 |     'android_debug_static_bot_x86': [ | 
 |       'android', | 
 |       'debug_static_bot', | 
 |       'x86', | 
 |       'h265', | 
 |     ], | 
 |     'android_pure_release_bot_arm': ['android', 'pure_release_bot', 'arm'], | 
 |     'android_pure_release_bot_arm64': ['android', 'pure_release_bot', 'arm64'], | 
 |     'android_release_bot_arm': [ | 
 |       'android', | 
 |       'release_bot', | 
 |       'arm', | 
 |       'h265', | 
 |     ], | 
 |     'android_release_bot_arm64': [ | 
 |       'android', | 
 |       'release_bot', | 
 |       'arm64', | 
 |       'h265', | 
 |     ], | 
 |     'android_release_bot_x64': [ | 
 |       'android', | 
 |       'release_bot', | 
 |       'x64', | 
 |       'h265', | 
 |     ], | 
 |     'android_release_bot_x86': [ | 
 |       'android', | 
 |       'release_bot', | 
 |       'x86', | 
 |       'h265', | 
 |      ], | 
 |     'asan_lsan_clang_release_bot_x64': [ | 
 |       'asan', | 
 |       'lsan', | 
 |       'clang', | 
 |       'openh264', | 
 |       'pure_release_bot', | 
 |       'x64', | 
 |       'h265', | 
 |     ], | 
 |     'code_coverage_bot_x64': [ | 
 |       'openh264', 'release_bot', 'x64', 'code_coverage', | 
 |       'partial_code_coverage_instrumentation', 'h265' | 
 |     ], | 
 |     'codesearch_gen_linux_bot': | 
 |     ['openh264', 'debug_bot', 'minimal_symbols', 'h265'], | 
 |     'debug_bot_arm': ['openh264', 'debug_bot', 'arm', 'h265'], | 
 |     'debug_bot_arm64': ['openh264', 'debug_bot', 'arm64', 'h265'], | 
 |     'debug_bot_x64': ['openh264', 'debug_bot', 'x64', 'h265'], | 
 |     'debug_bot_x86': ['openh264', 'debug_bot', 'x86', 'h265'], | 
 |     'disable_trace_events_android_arm': | 
 |     ['android', 'arm', 'disable_trace_events', 'release_bot'], | 
 |     'disable_trace_events_x64': | 
 |     ['x64', 'disable_trace_events', 'release_bot'], | 
 |     'disable_trace_events_x86': | 
 |     ['x86', 'disable_trace_events', 'release_bot'], | 
 |     'dummy_audio_file_devices_no_protobuf_android_arm': [ | 
 |       'android', 'debug_static_bot', 'arm', 'dummy_audio_file_devices', | 
 |       'no_protobuf' | 
 |     ], | 
 |     'dummy_audio_file_devices_no_protobuf_x64': | 
 |     ['debug_bot', 'x64', 'dummy_audio_file_devices', 'no_protobuf'], | 
 |     'dummy_audio_file_devices_no_protobuf_x86': | 
 |     ['debug_bot', 'x86', 'dummy_audio_file_devices', 'no_protobuf'], | 
 |     'ios_debug_bot_arm64': | 
 |     ['ios', 'debug_bot', 'arm64', 'no_ios_code_signing', 'xctest'], | 
 |     'ios_debug_bot_x64': ['ios', 'debug_bot', 'x64', 'xctest'], | 
 |     'ios_internal_debug_bot_arm64': [ | 
 |       'ios', 'debug_bot', 'arm64', 'ios_code_signing_identity_description', | 
 |       'xctest' | 
 |     ], | 
 |     'ios_internal_pure_release_bot_arm64': [ | 
 |       'ios', 'pure_release_bot', 'arm64', | 
 |       'ios_code_signing_identity_description', 'xctest', | 
 |       'rtc_objc_test_prefix', | 
 |     ], | 
 |     'ios_internal_release_bot_arm64': [ | 
 |       'ios', 'release_bot', 'arm64', 'ios_code_signing_identity_description', | 
 |       'xctest' | 
 |     ], | 
 |     'ios_release_bot_arm64': [ | 
 |       'ios', 'release_bot', 'arm64', 'no_ios_code_signing', 'xctest', | 
 |     ], | 
 |     'libfuzzer_asan_release_bot_x64': [ | 
 |       'libfuzzer', 'asan', 'optimize_for_fuzzing', 'openh264', | 
 |       'pure_release_bot', 'x64', 'h265' | 
 |     ], | 
 |     'mac_asan_clang_release_bot_x64': [ | 
 |       'asan', | 
 |       'clang', | 
 |       'openh264', | 
 |       'pure_release_bot', | 
 |       'x64', | 
 |       'h265', | 
 |     ], | 
 |     'msan_clang_release_bot_x64': | 
 |     ['msan', 'clang', 'openh264', 'pure_release_bot', 'x64', 'h265'], | 
 |     'no_h264_debug_bot_x86': ['debug_bot', 'x86'], | 
 |     'openssl_x64': ['debug_bot', 'x64', 'no_build_ssl'], | 
 |     'perfetto_android_arm': [ 'android', 'arm', 'perfetto', 'release_bot'], | 
 |     'perfetto_x64': [ 'x64', 'perfetto', 'release_bot'], | 
 |     'perfetto_x86': [ 'x86', 'perfetto', 'release_bot'], | 
 |     'pure_release_bot_x64': ['openh264', 'pure_release_bot', 'x64', 'h265'], | 
 |     'pure_release_bot_x86': ['openh264', 'pure_release_bot', 'x86', 'h265'], | 
 |     'release_bot_arm': ['openh264', 'release_bot', 'arm', 'h265'], | 
 |     'release_bot_arm64': ['openh264', 'release_bot', 'arm64', 'h265'], | 
 |     'release_bot_x64': ['openh264', 'release_bot', 'x64', 'h265'], | 
 |     'release_bot_x64_fuchsia': | 
 |     ['openh264', 'release_bot', 'x64', 'fuchsia', 'h265'], | 
 |     'release_bot_x86': ['openh264', 'release_bot', 'x86', 'h265'], | 
 |     'rtti_no_sctp_android_arm': | 
 |     ['android', 'debug_static_bot', 'arm', 'rtti', 'no_sctp'], | 
 |     'rtti_no_sctp_no_unicode_win_x86': | 
 |     ['debug_bot', 'x86', 'rtti', 'no_sctp', 'win_undef_unicode'], | 
 |     'rtti_no_sctp_x64': ['debug_bot', 'x64', 'rtti', 'no_sctp'], | 
 |     'tsan_clang_release_bot_x64': | 
 |     ['tsan', 'clang', 'openh264', 'pure_release_bot', 'x64', 'h265'], | 
 |     'ubsan_clang_release_bot_x64': [ | 
 |       'ubsan', 'clang', 'openh264', 'pure_release_bot', 'x64', 'h265' | 
 |     ], | 
 |     'ubsan_vptr_clang_release_bot_x64': [ | 
 |       'ubsan_vptr', 'clang', 'openh264', 'pure_release_bot', 'x64', 'h265' | 
 |     ], | 
 |     'win_asan_clang_release_bot_x64': [ | 
 |       'asan', | 
 |       'clang', | 
 |       'full_symbols', | 
 |       'openh264', | 
 |       'pure_release_bot', | 
 |       'x64', | 
 |       'h265', | 
 |     ], | 
 |     'win_clang_debug_bot_x64': [ | 
 |       'clang', | 
 |       'openh264', | 
 |       'debug_bot', | 
 |       'x64', | 
 |       'h265', | 
 |     ], | 
 |     'win_clang_debug_bot_x86': [ | 
 |       'clang', | 
 |       'openh264', | 
 |       'debug_bot', | 
 |       'x86', | 
 |       'h265', | 
 |     ], | 
 |     'win_clang_pure_release_bot_x64': [ | 
 |       'clang', | 
 |       'openh264', | 
 |       'pure_release_bot', | 
 |       'x64', | 
 |       'h265', | 
 |     ], | 
 |     'win_clang_release_bot_x64': [ | 
 |       'clang', | 
 |       'openh264', | 
 |       'release_bot', | 
 |       'x64', | 
 |       'h265', | 
 |     ], | 
 |     'win_clang_release_bot_x86': [ | 
 |       'clang', | 
 |       'openh264', | 
 |       'release_bot', | 
 |       'x86', | 
 |       'h265', | 
 |     ], | 
 |   }, | 
 |  | 
 |   # 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': { | 
 |     'android': { | 
 |       'gn_args': 'target_os="android"', | 
 |     }, | 
 |     'arm': { | 
 |       'gn_args': 'target_cpu="arm"', | 
 |     }, | 
 |     'arm64': { | 
 |       'gn_args': 'target_cpu="arm64"', | 
 |     }, | 
 |     'asan': { | 
 |       'gn_args': 'is_asan=true', | 
 |     }, | 
 |     # is_clang=true by default, this is only to guard from upstream changes. | 
 |     'clang': { | 
 |       'gn_args': 'is_clang=true', | 
 |     }, | 
 |     'code_coverage': { | 
 |       'gn_args': 'use_clang_coverage=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', 'reclient', 'strict_field_trials'], | 
 |     }, | 
 |     'debug_static_bot': { | 
 |       'mixins': ['debug', 'minimal_symbols', 'reclient', 'strict_field_trials'], | 
 |     }, | 
 |     'disable_trace_events': { | 
 |       'gn_args': 'rtc_disable_trace_events=true', | 
 |     }, | 
 |     'dummy_audio_file_devices': { | 
 |       'gn_args': 'rtc_use_dummy_audio_file_devices=true', | 
 |     }, | 
 |     'fuchsia': { | 
 |       'gn_args': 'target_os="fuchsia"' | 
 |     }, | 
 |     'full_symbols': { | 
 |       'gn_args': 'symbol_level=2', | 
 |     }, | 
 |     'h265': { | 
 |       'gn_args': 'rtc_use_h265=true', | 
 |     }, | 
 |     'ios': { | 
 |       'gn_args': 'target_os="ios"', | 
 |     }, | 
 |     'ios_code_signing_identity_description': { | 
 |       'gn_args': 'ios_code_signing_identity_description="Apple Development"', | 
 |     }, | 
 |     'libfuzzer': { | 
 |       'gn_args': 'use_libfuzzer=true', | 
 |     }, | 
 |     'lsan': { | 
 |       'gn_args': 'is_lsan=true', | 
 |     }, | 
 |     'minimal_symbols': { | 
 |       'gn_args': 'symbol_level=1', | 
 |     }, | 
 |     'msan': { | 
 |       'gn_args': 'is_msan=true msan_track_origins=2', | 
 |     }, | 
 |     'no_build_ssl': { | 
 |       'gn_args': 'rtc_build_ssl=false libsrtp_build_boringssl=false', | 
 |     }, | 
 |     'no_ios_code_signing': { | 
 |       'gn_args': 'ios_enable_code_signing=false', | 
 |     }, | 
 |     'no_protobuf': { | 
 |       'gn_args': 'rtc_enable_protobuf=false', | 
 |     }, | 
 |     'no_sctp': { | 
 |       'gn_args': 'rtc_enable_sctp=false', | 
 |     }, | 
 |     'openh264': { | 
 |       'gn_args': 'ffmpeg_branding="Chrome" rtc_use_h264=true', | 
 |     }, | 
 |     'optimize_for_fuzzing': { | 
 |       'gn_args': 'optimize_for_fuzzing=true', | 
 |     }, | 
 |     'partial_code_coverage_instrumentation': { | 
 |       'gn_args': | 
 |       'coverage_instrumentation_input_file="//.code-coverage/files_to_instrument.txt"' | 
 |     }, | 
 |     'perfetto': { | 
 |       'gn_args': 'rtc_use_perfetto=true', | 
 |     }, | 
 |     # The 'pure_release_bot' configuration is for release bots that are doing a | 
 |     # 100% release build without DCHECKs while 'release_bot' is a partial | 
 |     # release configs since `dcheck_always_on` is set to true. | 
 |     'pure_release_bot': { | 
 |       'mixins': ['release', 'reclient', 'dcheck_off'], | 
 |     }, | 
 |     'reclient': { | 
 |       'gn_args': 'use_remoteexec=true', | 
 |     }, | 
 |     'release': { | 
 |       'gn_args': 'is_debug=false', | 
 |     }, | 
 |     'release_bot': { | 
 |       'mixins': ['pure_release_bot', 'dcheck_always_on', 'strict_field_trials'], | 
 |     }, | 
 |     'rtc_objc_test_prefix': { | 
 |       'gn_args': 'rtc_objc_prefix="RTC_TESTING"', | 
 |     }, | 
 |     'rtti': { | 
 |       'gn_args': 'use_rtti=true', | 
 |     }, | 
 |     'strict_field_trials': { | 
 |       'gn_args': 'rtc_strict_field_trials="dcheck"', | 
 |     }, | 
 |     'tsan': { | 
 |       'gn_args': 'is_tsan=true', | 
 |     }, | 
 |     'ubsan': { | 
 |       'gn_args': 'is_ubsan=true is_ubsan_no_recover=true', | 
 |     }, | 
 |     'ubsan_vptr': { | 
 |       'gn_args': 'is_ubsan_vptr=true is_ubsan_no_recover=true', | 
 |     }, | 
 |     'win_undef_unicode': { | 
 |       'gn_args': 'rtc_win_undef_unicode=true', | 
 |     }, | 
 |     'x64': { | 
 |       'gn_args': 'target_cpu="x64"', | 
 |     }, | 
 |     'x86': { | 
 |       'gn_args': 'target_cpu="x86"', | 
 |     }, | 
 |     'xctest': { | 
 |       'gn_args': 'enable_run_ios_unittests_with_xctest=true', | 
 |     }, | 
 |   }, | 
 | } |