Merge "ui: Adding perf samples track."
diff --git a/Android.bp b/Android.bp
index e030729..46db7fe 100644
--- a/Android.bp
+++ b/Android.bp
@@ -16,10234 +16,10254 @@
 
 // GN: //src/profiling/memory:heapprofd
 cc_binary {
-  name: "heapprofd",
-  srcs: [
-    ":perfetto_include_perfetto_base_base",
-    ":perfetto_include_perfetto_ext_base_base",
-    ":perfetto_include_perfetto_ext_ipc_ipc",
-    ":perfetto_include_perfetto_ext_tracing_core_core",
-    ":perfetto_include_perfetto_ext_tracing_ipc_ipc",
-    ":perfetto_include_perfetto_profiling_normalize",
-    ":perfetto_include_perfetto_protozero_protozero",
-    ":perfetto_include_perfetto_tracing_core_core",
-    ":perfetto_include_perfetto_tracing_core_forward_decls",
-    ":perfetto_include_perfetto_tracing_tracing",
-    ":perfetto_protos_perfetto_common_cpp_gen",
-    ":perfetto_protos_perfetto_common_zero_gen",
-    ":perfetto_protos_perfetto_config_android_cpp_gen",
-    ":perfetto_protos_perfetto_config_android_zero_gen",
-    ":perfetto_protos_perfetto_config_cpp_gen",
-    ":perfetto_protos_perfetto_config_ftrace_cpp_gen",
-    ":perfetto_protos_perfetto_config_ftrace_zero_gen",
-    ":perfetto_protos_perfetto_config_gpu_cpp_gen",
-    ":perfetto_protos_perfetto_config_gpu_zero_gen",
-    ":perfetto_protos_perfetto_config_inode_file_cpp_gen",
-    ":perfetto_protos_perfetto_config_inode_file_zero_gen",
-    ":perfetto_protos_perfetto_config_interceptors_cpp_gen",
-    ":perfetto_protos_perfetto_config_interceptors_zero_gen",
-    ":perfetto_protos_perfetto_config_power_cpp_gen",
-    ":perfetto_protos_perfetto_config_power_zero_gen",
-    ":perfetto_protos_perfetto_config_process_stats_cpp_gen",
-    ":perfetto_protos_perfetto_config_process_stats_zero_gen",
-    ":perfetto_protos_perfetto_config_profiling_cpp_gen",
-    ":perfetto_protos_perfetto_config_profiling_zero_gen",
-    ":perfetto_protos_perfetto_config_sys_stats_cpp_gen",
-    ":perfetto_protos_perfetto_config_sys_stats_zero_gen",
-    ":perfetto_protos_perfetto_config_track_event_cpp_gen",
-    ":perfetto_protos_perfetto_config_track_event_zero_gen",
-    ":perfetto_protos_perfetto_config_zero_gen",
-    ":perfetto_protos_perfetto_ipc_cpp_gen",
-    ":perfetto_protos_perfetto_ipc_ipc_gen",
-    ":perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen",
-    ":perfetto_protos_perfetto_trace_android_zero_gen",
-    ":perfetto_protos_perfetto_trace_chrome_zero_gen",
-    ":perfetto_protos_perfetto_trace_filesystem_zero_gen",
-    ":perfetto_protos_perfetto_trace_ftrace_zero_gen",
-    ":perfetto_protos_perfetto_trace_gpu_zero_gen",
-    ":perfetto_protos_perfetto_trace_interned_data_zero_gen",
-    ":perfetto_protos_perfetto_trace_minimal_zero_gen",
-    ":perfetto_protos_perfetto_trace_non_minimal_zero_gen",
-    ":perfetto_protos_perfetto_trace_perfetto_zero_gen",
-    ":perfetto_protos_perfetto_trace_power_zero_gen",
-    ":perfetto_protos_perfetto_trace_profiling_zero_gen",
-    ":perfetto_protos_perfetto_trace_ps_zero_gen",
-    ":perfetto_protos_perfetto_trace_sys_stats_zero_gen",
-    ":perfetto_protos_perfetto_trace_system_info_zero_gen",
-    ":perfetto_protos_perfetto_trace_track_event_cpp_gen",
-    ":perfetto_protos_perfetto_trace_track_event_zero_gen",
-    ":perfetto_src_base_base",
-    ":perfetto_src_base_unix_socket",
-    ":perfetto_src_ipc_client",
-    ":perfetto_src_ipc_common",
-    ":perfetto_src_profiling_common_callstack_trie",
-    ":perfetto_src_profiling_common_interner",
-    ":perfetto_src_profiling_common_interning_output",
-    ":perfetto_src_profiling_common_proc_utils",
-    ":perfetto_src_profiling_common_producer_support",
-    ":perfetto_src_profiling_common_profiler_guardrails",
-    ":perfetto_src_profiling_common_unwind_support",
-    ":perfetto_src_profiling_memory_daemon",
-    ":perfetto_src_profiling_memory_heapprofd_main",
-    ":perfetto_src_profiling_memory_ring_buffer",
-    ":perfetto_src_profiling_memory_scoped_spinlock",
-    ":perfetto_src_profiling_memory_wire_protocol",
-    ":perfetto_src_protozero_protozero",
-    ":perfetto_src_traced_probes_packages_list_packages_list_parser",
-    ":perfetto_src_tracing_common",
-    ":perfetto_src_tracing_core_core",
-    ":perfetto_src_tracing_ipc_common",
-    ":perfetto_src_tracing_ipc_producer_producer",
-    "src/profiling/memory/main.cc",
-  ],
-  shared_libs: [
-    "libbase",
-    "liblog",
-    "libprocinfo",
-    "libunwindstack",
-  ],
-  init_rc: [
-    "heapprofd.rc",
-  ],
-  generated_headers: [
-    "perfetto_protos_perfetto_common_cpp_gen_headers",
-    "perfetto_protos_perfetto_common_zero_gen_headers",
-    "perfetto_protos_perfetto_config_android_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_android_zero_gen_headers",
-    "perfetto_protos_perfetto_config_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_ftrace_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_ftrace_zero_gen_headers",
-    "perfetto_protos_perfetto_config_gpu_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_gpu_zero_gen_headers",
-    "perfetto_protos_perfetto_config_inode_file_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_inode_file_zero_gen_headers",
-    "perfetto_protos_perfetto_config_interceptors_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_interceptors_zero_gen_headers",
-    "perfetto_protos_perfetto_config_power_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_power_zero_gen_headers",
-    "perfetto_protos_perfetto_config_process_stats_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_process_stats_zero_gen_headers",
-    "perfetto_protos_perfetto_config_profiling_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_profiling_zero_gen_headers",
-    "perfetto_protos_perfetto_config_sys_stats_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_sys_stats_zero_gen_headers",
-    "perfetto_protos_perfetto_config_track_event_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_track_event_zero_gen_headers",
-    "perfetto_protos_perfetto_config_zero_gen_headers",
-    "perfetto_protos_perfetto_ipc_cpp_gen_headers",
-    "perfetto_protos_perfetto_ipc_ipc_gen_headers",
-    "perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_android_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_filesystem_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_ftrace_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_gpu_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_interned_data_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_minimal_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_non_minimal_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_perfetto_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_power_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_profiling_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_ps_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_sys_stats_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_system_info_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_track_event_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_track_event_zero_gen_headers",
-    "perfetto_src_base_version_gen_h",
-  ],
-  defaults: [
-    "perfetto_defaults",
-  ],
-  cflags: [
-    "-DGOOGLE_PROTOBUF_NO_RTTI",
-    "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
-  ],
-  header_libs: [
-    "bionic_libc_platform_headers",
-  ],
+    name: "heapprofd",
+    srcs: [
+        ":perfetto_include_perfetto_base_base",
+        ":perfetto_include_perfetto_ext_base_base",
+        ":perfetto_include_perfetto_ext_ipc_ipc",
+        ":perfetto_include_perfetto_ext_tracing_core_core",
+        ":perfetto_include_perfetto_ext_tracing_ipc_ipc",
+        ":perfetto_include_perfetto_profiling_normalize",
+        ":perfetto_include_perfetto_protozero_protozero",
+        ":perfetto_include_perfetto_tracing_core_core",
+        ":perfetto_include_perfetto_tracing_core_forward_decls",
+        ":perfetto_include_perfetto_tracing_tracing",
+        ":perfetto_protos_perfetto_common_cpp_gen",
+        ":perfetto_protos_perfetto_common_zero_gen",
+        ":perfetto_protos_perfetto_config_android_cpp_gen",
+        ":perfetto_protos_perfetto_config_android_zero_gen",
+        ":perfetto_protos_perfetto_config_cpp_gen",
+        ":perfetto_protos_perfetto_config_ftrace_cpp_gen",
+        ":perfetto_protos_perfetto_config_ftrace_zero_gen",
+        ":perfetto_protos_perfetto_config_gpu_cpp_gen",
+        ":perfetto_protos_perfetto_config_gpu_zero_gen",
+        ":perfetto_protos_perfetto_config_inode_file_cpp_gen",
+        ":perfetto_protos_perfetto_config_inode_file_zero_gen",
+        ":perfetto_protos_perfetto_config_interceptors_cpp_gen",
+        ":perfetto_protos_perfetto_config_interceptors_zero_gen",
+        ":perfetto_protos_perfetto_config_power_cpp_gen",
+        ":perfetto_protos_perfetto_config_power_zero_gen",
+        ":perfetto_protos_perfetto_config_process_stats_cpp_gen",
+        ":perfetto_protos_perfetto_config_process_stats_zero_gen",
+        ":perfetto_protos_perfetto_config_profiling_cpp_gen",
+        ":perfetto_protos_perfetto_config_profiling_zero_gen",
+        ":perfetto_protos_perfetto_config_sys_stats_cpp_gen",
+        ":perfetto_protos_perfetto_config_sys_stats_zero_gen",
+        ":perfetto_protos_perfetto_config_track_event_cpp_gen",
+        ":perfetto_protos_perfetto_config_track_event_zero_gen",
+        ":perfetto_protos_perfetto_config_zero_gen",
+        ":perfetto_protos_perfetto_ipc_cpp_gen",
+        ":perfetto_protos_perfetto_ipc_ipc_gen",
+        ":perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen",
+        ":perfetto_protos_perfetto_trace_android_zero_gen",
+        ":perfetto_protos_perfetto_trace_chrome_zero_gen",
+        ":perfetto_protos_perfetto_trace_filesystem_zero_gen",
+        ":perfetto_protos_perfetto_trace_ftrace_zero_gen",
+        ":perfetto_protos_perfetto_trace_gpu_zero_gen",
+        ":perfetto_protos_perfetto_trace_interned_data_zero_gen",
+        ":perfetto_protos_perfetto_trace_minimal_zero_gen",
+        ":perfetto_protos_perfetto_trace_non_minimal_zero_gen",
+        ":perfetto_protos_perfetto_trace_perfetto_zero_gen",
+        ":perfetto_protos_perfetto_trace_power_zero_gen",
+        ":perfetto_protos_perfetto_trace_profiling_zero_gen",
+        ":perfetto_protos_perfetto_trace_ps_zero_gen",
+        ":perfetto_protos_perfetto_trace_sys_stats_zero_gen",
+        ":perfetto_protos_perfetto_trace_system_info_zero_gen",
+        ":perfetto_protos_perfetto_trace_track_event_cpp_gen",
+        ":perfetto_protos_perfetto_trace_track_event_zero_gen",
+        ":perfetto_src_base_base",
+        ":perfetto_src_base_unix_socket",
+        ":perfetto_src_ipc_client",
+        ":perfetto_src_ipc_common",
+        ":perfetto_src_profiling_common_callstack_trie",
+        ":perfetto_src_profiling_common_interner",
+        ":perfetto_src_profiling_common_interning_output",
+        ":perfetto_src_profiling_common_proc_utils",
+        ":perfetto_src_profiling_common_producer_support",
+        ":perfetto_src_profiling_common_profiler_guardrails",
+        ":perfetto_src_profiling_common_unwind_support",
+        ":perfetto_src_profiling_memory_daemon",
+        ":perfetto_src_profiling_memory_heapprofd_main",
+        ":perfetto_src_profiling_memory_ring_buffer",
+        ":perfetto_src_profiling_memory_scoped_spinlock",
+        ":perfetto_src_profiling_memory_wire_protocol",
+        ":perfetto_src_protozero_protozero",
+        ":perfetto_src_traced_probes_packages_list_packages_list_parser",
+        ":perfetto_src_tracing_common",
+        ":perfetto_src_tracing_core_core",
+        ":perfetto_src_tracing_ipc_common",
+        ":perfetto_src_tracing_ipc_producer_producer",
+        "src/profiling/memory/main.cc",
+    ],
+    shared_libs: [
+        "libbase",
+        "liblog",
+        "libprocinfo",
+        "libunwindstack",
+    ],
+    init_rc: [
+        "heapprofd.rc",
+    ],
+    generated_headers: [
+        "perfetto_protos_perfetto_common_cpp_gen_headers",
+        "perfetto_protos_perfetto_common_zero_gen_headers",
+        "perfetto_protos_perfetto_config_android_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_android_zero_gen_headers",
+        "perfetto_protos_perfetto_config_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_ftrace_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_ftrace_zero_gen_headers",
+        "perfetto_protos_perfetto_config_gpu_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_gpu_zero_gen_headers",
+        "perfetto_protos_perfetto_config_inode_file_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_inode_file_zero_gen_headers",
+        "perfetto_protos_perfetto_config_interceptors_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_interceptors_zero_gen_headers",
+        "perfetto_protos_perfetto_config_power_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_power_zero_gen_headers",
+        "perfetto_protos_perfetto_config_process_stats_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_process_stats_zero_gen_headers",
+        "perfetto_protos_perfetto_config_profiling_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_profiling_zero_gen_headers",
+        "perfetto_protos_perfetto_config_sys_stats_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_sys_stats_zero_gen_headers",
+        "perfetto_protos_perfetto_config_track_event_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_track_event_zero_gen_headers",
+        "perfetto_protos_perfetto_config_zero_gen_headers",
+        "perfetto_protos_perfetto_ipc_cpp_gen_headers",
+        "perfetto_protos_perfetto_ipc_ipc_gen_headers",
+        "perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_android_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_filesystem_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_ftrace_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_gpu_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_interned_data_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_minimal_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_non_minimal_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_perfetto_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_power_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_profiling_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_ps_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_sys_stats_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_system_info_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_track_event_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_track_event_zero_gen_headers",
+        "perfetto_src_base_version_gen_h",
+    ],
+    defaults: [
+        "perfetto_defaults",
+    ],
+    cflags: [
+        "-DGOOGLE_PROTOBUF_NO_RTTI",
+        "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
+    ],
+    header_libs: [
+        "bionic_libc_platform_headers",
+    ],
 }
 
 // GN: //src/profiling/memory:heapprofd_api_noop
 cc_library_shared {
-  name: "heapprofd_api_noop",
-  srcs: [
-    "src/profiling/memory/client_api_noop.cc",
-  ],
-  export_include_dirs: [
-    "src/profiling/memory/include",
-  ],
-  defaults: [
-    "perfetto_defaults",
-  ],
-  version_script: "src/profiling/memory/heapprofd_client_api.map.txt",
-  stubs: {
-    versions: [
-      "S",
+    name: "heapprofd_api_noop",
+    srcs: [
+        "src/profiling/memory/client_api_noop.cc",
     ],
-    symbol_file: "src/profiling/memory/heapprofd_client_api.map.txt",
-  },
+    export_include_dirs: [
+        "src/profiling/memory/include",
+    ],
+    defaults: [
+        "perfetto_defaults",
+    ],
+    version_script: "src/profiling/memory/heapprofd_client_api.map.txt",
+    stubs: {
+        versions: [
+            "S",
+        ],
+        symbol_file: "src/profiling/memory/heapprofd_client_api.map.txt",
+    },
 }
 
 // GN: //src/profiling/memory:heapprofd_client
 cc_library_shared {
-  name: "heapprofd_client",
-  srcs: [
-    ":perfetto_include_perfetto_base_base",
-    ":perfetto_include_perfetto_ext_base_base",
-    ":perfetto_src_base_base",
-    ":perfetto_src_profiling_memory_malloc_interceptor_bionic_hooks",
-    ":perfetto_src_profiling_memory_wrap_allocators",
-  ],
-  shared_libs: [
-    "heapprofd_client_api",
-  ],
-  static_libs: [
-    "libasync_safe",
-  ],
-  generated_headers: [
-    "perfetto_src_base_version_gen_h",
-  ],
-  defaults: [
-    "perfetto_defaults",
-  ],
-  cflags: [
-    "-DPERFETTO_ANDROID_ASYNC_SAFE_LOG",
-  ],
-  include_dirs: [
-    "bionic/libc",
-  ],
-  header_libs: [
-    "bionic_libc_platform_headers",
-  ],
+    name: "heapprofd_client",
+    srcs: [
+        ":perfetto_include_perfetto_base_base",
+        ":perfetto_include_perfetto_ext_base_base",
+        ":perfetto_src_base_base",
+        ":perfetto_src_profiling_memory_malloc_interceptor_bionic_hooks",
+        ":perfetto_src_profiling_memory_wrap_allocators",
+    ],
+    shared_libs: [
+        "heapprofd_client_api",
+    ],
+    static_libs: [
+        "libasync_safe",
+    ],
+    generated_headers: [
+        "perfetto_src_base_version_gen_h",
+    ],
+    defaults: [
+        "perfetto_defaults",
+    ],
+    cflags: [
+        "-DPERFETTO_ANDROID_ASYNC_SAFE_LOG",
+    ],
+    include_dirs: [
+        "bionic/libc",
+    ],
+    header_libs: [
+        "bionic_libc_platform_headers",
+    ],
 }
 
 // GN: //src/profiling/memory:heapprofd_client_api
 cc_library_shared {
-  name: "heapprofd_client_api",
-  srcs: [
-    ":perfetto_include_perfetto_base_base",
-    ":perfetto_include_perfetto_ext_base_base",
-    ":perfetto_include_perfetto_profiling_normalize",
-    ":perfetto_src_base_base",
-    ":perfetto_src_base_unix_socket",
-    ":perfetto_src_profiling_common_proc_utils",
-    ":perfetto_src_profiling_memory_client",
-    ":perfetto_src_profiling_memory_client_api",
-    ":perfetto_src_profiling_memory_ring_buffer",
-    ":perfetto_src_profiling_memory_scoped_spinlock",
-    ":perfetto_src_profiling_memory_wire_protocol",
-    "src/profiling/memory/client_api_factory_android.cc",
-  ],
-  shared_libs: [
-    "libbase",
-    "libprocinfo",
-    "libunwindstack",
-  ],
-  static_libs: [
-    "libasync_safe",
-  ],
-  export_include_dirs: [
-    "src/profiling/memory/include",
-  ],
-  generated_headers: [
-    "perfetto_src_base_version_gen_h",
-  ],
-  defaults: [
-    "perfetto_defaults",
-  ],
-  cflags: [
-    "-DPERFETTO_ANDROID_ASYNC_SAFE_LOG",
-    "-Werror=global-constructors",
-    "-Wglobal-constructors",
-  ],
-  header_libs: [
-    "bionic_libc_platform_headers",
-  ],
-  version_script: "src/profiling/memory/heapprofd_client_api.map.txt",
-  stubs: {
-    versions: [
-      "S",
+    name: "heapprofd_client_api",
+    srcs: [
+        ":perfetto_include_perfetto_base_base",
+        ":perfetto_include_perfetto_ext_base_base",
+        ":perfetto_include_perfetto_profiling_normalize",
+        ":perfetto_src_base_base",
+        ":perfetto_src_base_unix_socket",
+        ":perfetto_src_profiling_common_proc_utils",
+        ":perfetto_src_profiling_memory_client",
+        ":perfetto_src_profiling_memory_client_api",
+        ":perfetto_src_profiling_memory_ring_buffer",
+        ":perfetto_src_profiling_memory_scoped_spinlock",
+        ":perfetto_src_profiling_memory_wire_protocol",
+        "src/profiling/memory/client_api_factory_android.cc",
     ],
-    symbol_file: "src/profiling/memory/heapprofd_client_api.map.txt",
-  },
+    shared_libs: [
+        "libbase",
+        "libprocinfo",
+        "libunwindstack",
+    ],
+    static_libs: [
+        "libasync_safe",
+    ],
+    export_include_dirs: [
+        "src/profiling/memory/include",
+    ],
+    generated_headers: [
+        "perfetto_src_base_version_gen_h",
+    ],
+    defaults: [
+        "perfetto_defaults",
+    ],
+    cflags: [
+        "-DPERFETTO_ANDROID_ASYNC_SAFE_LOG",
+        "-Werror=global-constructors",
+        "-Wglobal-constructors",
+    ],
+    header_libs: [
+        "bionic_libc_platform_headers",
+    ],
+    version_script: "src/profiling/memory/heapprofd_client_api.map.txt",
+    stubs: {
+        versions: [
+            "S",
+        ],
+        symbol_file: "src/profiling/memory/heapprofd_client_api.map.txt",
+    },
 }
 
 // GN: //src/profiling/memory:heapprofd_standalone_client
 cc_library_shared {
-  name: "heapprofd_standalone_client",
-  srcs: [
-    ":perfetto_include_perfetto_base_base",
-    ":perfetto_include_perfetto_ext_base_base",
-    ":perfetto_include_perfetto_ext_ipc_ipc",
-    ":perfetto_include_perfetto_ext_tracing_core_core",
-    ":perfetto_include_perfetto_ext_tracing_ipc_ipc",
-    ":perfetto_include_perfetto_profiling_normalize",
-    ":perfetto_include_perfetto_protozero_protozero",
-    ":perfetto_include_perfetto_tracing_core_core",
-    ":perfetto_include_perfetto_tracing_core_forward_decls",
-    ":perfetto_include_perfetto_tracing_tracing",
-    ":perfetto_protos_perfetto_common_cpp_gen",
-    ":perfetto_protos_perfetto_common_zero_gen",
-    ":perfetto_protos_perfetto_config_android_cpp_gen",
-    ":perfetto_protos_perfetto_config_android_zero_gen",
-    ":perfetto_protos_perfetto_config_cpp_gen",
-    ":perfetto_protos_perfetto_config_ftrace_cpp_gen",
-    ":perfetto_protos_perfetto_config_ftrace_zero_gen",
-    ":perfetto_protos_perfetto_config_gpu_cpp_gen",
-    ":perfetto_protos_perfetto_config_gpu_zero_gen",
-    ":perfetto_protos_perfetto_config_inode_file_cpp_gen",
-    ":perfetto_protos_perfetto_config_inode_file_zero_gen",
-    ":perfetto_protos_perfetto_config_interceptors_cpp_gen",
-    ":perfetto_protos_perfetto_config_interceptors_zero_gen",
-    ":perfetto_protos_perfetto_config_power_cpp_gen",
-    ":perfetto_protos_perfetto_config_power_zero_gen",
-    ":perfetto_protos_perfetto_config_process_stats_cpp_gen",
-    ":perfetto_protos_perfetto_config_process_stats_zero_gen",
-    ":perfetto_protos_perfetto_config_profiling_cpp_gen",
-    ":perfetto_protos_perfetto_config_profiling_zero_gen",
-    ":perfetto_protos_perfetto_config_sys_stats_cpp_gen",
-    ":perfetto_protos_perfetto_config_sys_stats_zero_gen",
-    ":perfetto_protos_perfetto_config_track_event_cpp_gen",
-    ":perfetto_protos_perfetto_config_track_event_zero_gen",
-    ":perfetto_protos_perfetto_config_zero_gen",
-    ":perfetto_protos_perfetto_ipc_cpp_gen",
-    ":perfetto_protos_perfetto_ipc_ipc_gen",
-    ":perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen",
-    ":perfetto_protos_perfetto_trace_android_zero_gen",
-    ":perfetto_protos_perfetto_trace_chrome_zero_gen",
-    ":perfetto_protos_perfetto_trace_filesystem_zero_gen",
-    ":perfetto_protos_perfetto_trace_ftrace_zero_gen",
-    ":perfetto_protos_perfetto_trace_gpu_zero_gen",
-    ":perfetto_protos_perfetto_trace_interned_data_zero_gen",
-    ":perfetto_protos_perfetto_trace_minimal_zero_gen",
-    ":perfetto_protos_perfetto_trace_non_minimal_zero_gen",
-    ":perfetto_protos_perfetto_trace_perfetto_zero_gen",
-    ":perfetto_protos_perfetto_trace_power_zero_gen",
-    ":perfetto_protos_perfetto_trace_profiling_zero_gen",
-    ":perfetto_protos_perfetto_trace_ps_zero_gen",
-    ":perfetto_protos_perfetto_trace_sys_stats_zero_gen",
-    ":perfetto_protos_perfetto_trace_system_info_zero_gen",
-    ":perfetto_protos_perfetto_trace_track_event_cpp_gen",
-    ":perfetto_protos_perfetto_trace_track_event_zero_gen",
-    ":perfetto_src_base_base",
-    ":perfetto_src_base_unix_socket",
-    ":perfetto_src_ipc_client",
-    ":perfetto_src_ipc_common",
-    ":perfetto_src_profiling_common_callstack_trie",
-    ":perfetto_src_profiling_common_interner",
-    ":perfetto_src_profiling_common_interning_output",
-    ":perfetto_src_profiling_common_proc_utils",
-    ":perfetto_src_profiling_common_producer_support",
-    ":perfetto_src_profiling_common_profiler_guardrails",
-    ":perfetto_src_profiling_common_unwind_support",
-    ":perfetto_src_profiling_memory_client",
-    ":perfetto_src_profiling_memory_client_api",
-    ":perfetto_src_profiling_memory_client_api_standalone",
-    ":perfetto_src_profiling_memory_daemon",
-    ":perfetto_src_profiling_memory_ring_buffer",
-    ":perfetto_src_profiling_memory_scoped_spinlock",
-    ":perfetto_src_profiling_memory_wire_protocol",
-    ":perfetto_src_protozero_protozero",
-    ":perfetto_src_traced_probes_packages_list_packages_list_parser",
-    ":perfetto_src_tracing_common",
-    ":perfetto_src_tracing_core_core",
-    ":perfetto_src_tracing_ipc_common",
-    ":perfetto_src_tracing_ipc_producer_producer",
-  ],
-  shared_libs: [
-    "liblog",
-  ],
-  static_libs: [
-    "libasync_safe",
-    "libbase",
-    "libdexfile_support",
-    "liblzma",
-    "libprocinfo",
-    "libunwindstack",
-  ],
-  runtime_libs: [
-    "libdexfile",
-  ],
-  export_include_dirs: [
-    "src/profiling/memory/include",
-  ],
-  generated_headers: [
-    "perfetto_protos_perfetto_common_cpp_gen_headers",
-    "perfetto_protos_perfetto_common_zero_gen_headers",
-    "perfetto_protos_perfetto_config_android_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_android_zero_gen_headers",
-    "perfetto_protos_perfetto_config_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_ftrace_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_ftrace_zero_gen_headers",
-    "perfetto_protos_perfetto_config_gpu_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_gpu_zero_gen_headers",
-    "perfetto_protos_perfetto_config_inode_file_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_inode_file_zero_gen_headers",
-    "perfetto_protos_perfetto_config_interceptors_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_interceptors_zero_gen_headers",
-    "perfetto_protos_perfetto_config_power_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_power_zero_gen_headers",
-    "perfetto_protos_perfetto_config_process_stats_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_process_stats_zero_gen_headers",
-    "perfetto_protos_perfetto_config_profiling_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_profiling_zero_gen_headers",
-    "perfetto_protos_perfetto_config_sys_stats_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_sys_stats_zero_gen_headers",
-    "perfetto_protos_perfetto_config_track_event_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_track_event_zero_gen_headers",
-    "perfetto_protos_perfetto_config_zero_gen_headers",
-    "perfetto_protos_perfetto_ipc_cpp_gen_headers",
-    "perfetto_protos_perfetto_ipc_ipc_gen_headers",
-    "perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_android_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_filesystem_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_ftrace_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_gpu_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_interned_data_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_minimal_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_non_minimal_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_perfetto_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_power_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_profiling_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_ps_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_sys_stats_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_system_info_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_track_event_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_track_event_zero_gen_headers",
-    "perfetto_src_base_version_gen_h",
-  ],
-  defaults: [
-    "perfetto_defaults",
-  ],
-  cflags: [
-    "-DGOOGLE_PROTOBUF_NO_RTTI",
-    "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
-    "-DPERFETTO_ANDROID_ASYNC_SAFE_LOG",
-  ],
-  header_libs: [
-    "bionic_libc_platform_headers",
-  ],
-  stl: "libc++_static",
-  version_script: "src/profiling/memory/heapprofd_client_api.map.txt",
+    name: "heapprofd_standalone_client",
+    srcs: [
+        ":perfetto_include_perfetto_base_base",
+        ":perfetto_include_perfetto_ext_base_base",
+        ":perfetto_include_perfetto_ext_ipc_ipc",
+        ":perfetto_include_perfetto_ext_tracing_core_core",
+        ":perfetto_include_perfetto_ext_tracing_ipc_ipc",
+        ":perfetto_include_perfetto_profiling_normalize",
+        ":perfetto_include_perfetto_protozero_protozero",
+        ":perfetto_include_perfetto_tracing_core_core",
+        ":perfetto_include_perfetto_tracing_core_forward_decls",
+        ":perfetto_include_perfetto_tracing_tracing",
+        ":perfetto_protos_perfetto_common_cpp_gen",
+        ":perfetto_protos_perfetto_common_zero_gen",
+        ":perfetto_protos_perfetto_config_android_cpp_gen",
+        ":perfetto_protos_perfetto_config_android_zero_gen",
+        ":perfetto_protos_perfetto_config_cpp_gen",
+        ":perfetto_protos_perfetto_config_ftrace_cpp_gen",
+        ":perfetto_protos_perfetto_config_ftrace_zero_gen",
+        ":perfetto_protos_perfetto_config_gpu_cpp_gen",
+        ":perfetto_protos_perfetto_config_gpu_zero_gen",
+        ":perfetto_protos_perfetto_config_inode_file_cpp_gen",
+        ":perfetto_protos_perfetto_config_inode_file_zero_gen",
+        ":perfetto_protos_perfetto_config_interceptors_cpp_gen",
+        ":perfetto_protos_perfetto_config_interceptors_zero_gen",
+        ":perfetto_protos_perfetto_config_power_cpp_gen",
+        ":perfetto_protos_perfetto_config_power_zero_gen",
+        ":perfetto_protos_perfetto_config_process_stats_cpp_gen",
+        ":perfetto_protos_perfetto_config_process_stats_zero_gen",
+        ":perfetto_protos_perfetto_config_profiling_cpp_gen",
+        ":perfetto_protos_perfetto_config_profiling_zero_gen",
+        ":perfetto_protos_perfetto_config_sys_stats_cpp_gen",
+        ":perfetto_protos_perfetto_config_sys_stats_zero_gen",
+        ":perfetto_protos_perfetto_config_track_event_cpp_gen",
+        ":perfetto_protos_perfetto_config_track_event_zero_gen",
+        ":perfetto_protos_perfetto_config_zero_gen",
+        ":perfetto_protos_perfetto_ipc_cpp_gen",
+        ":perfetto_protos_perfetto_ipc_ipc_gen",
+        ":perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen",
+        ":perfetto_protos_perfetto_trace_android_zero_gen",
+        ":perfetto_protos_perfetto_trace_chrome_zero_gen",
+        ":perfetto_protos_perfetto_trace_filesystem_zero_gen",
+        ":perfetto_protos_perfetto_trace_ftrace_zero_gen",
+        ":perfetto_protos_perfetto_trace_gpu_zero_gen",
+        ":perfetto_protos_perfetto_trace_interned_data_zero_gen",
+        ":perfetto_protos_perfetto_trace_minimal_zero_gen",
+        ":perfetto_protos_perfetto_trace_non_minimal_zero_gen",
+        ":perfetto_protos_perfetto_trace_perfetto_zero_gen",
+        ":perfetto_protos_perfetto_trace_power_zero_gen",
+        ":perfetto_protos_perfetto_trace_profiling_zero_gen",
+        ":perfetto_protos_perfetto_trace_ps_zero_gen",
+        ":perfetto_protos_perfetto_trace_sys_stats_zero_gen",
+        ":perfetto_protos_perfetto_trace_system_info_zero_gen",
+        ":perfetto_protos_perfetto_trace_track_event_cpp_gen",
+        ":perfetto_protos_perfetto_trace_track_event_zero_gen",
+        ":perfetto_src_base_base",
+        ":perfetto_src_base_unix_socket",
+        ":perfetto_src_ipc_client",
+        ":perfetto_src_ipc_common",
+        ":perfetto_src_profiling_common_callstack_trie",
+        ":perfetto_src_profiling_common_interner",
+        ":perfetto_src_profiling_common_interning_output",
+        ":perfetto_src_profiling_common_proc_utils",
+        ":perfetto_src_profiling_common_producer_support",
+        ":perfetto_src_profiling_common_profiler_guardrails",
+        ":perfetto_src_profiling_common_unwind_support",
+        ":perfetto_src_profiling_memory_client",
+        ":perfetto_src_profiling_memory_client_api",
+        ":perfetto_src_profiling_memory_client_api_standalone",
+        ":perfetto_src_profiling_memory_daemon",
+        ":perfetto_src_profiling_memory_ring_buffer",
+        ":perfetto_src_profiling_memory_scoped_spinlock",
+        ":perfetto_src_profiling_memory_wire_protocol",
+        ":perfetto_src_protozero_protozero",
+        ":perfetto_src_traced_probes_packages_list_packages_list_parser",
+        ":perfetto_src_tracing_common",
+        ":perfetto_src_tracing_core_core",
+        ":perfetto_src_tracing_ipc_common",
+        ":perfetto_src_tracing_ipc_producer_producer",
+    ],
+    shared_libs: [
+        "liblog",
+    ],
+    static_libs: [
+        "libasync_safe",
+        "libbase",
+        "libdexfile_support",
+        "liblzma",
+        "libprocinfo",
+        "libunwindstack",
+    ],
+    runtime_libs: [
+        "libdexfile",
+    ],
+    export_include_dirs: [
+        "src/profiling/memory/include",
+    ],
+    generated_headers: [
+        "perfetto_protos_perfetto_common_cpp_gen_headers",
+        "perfetto_protos_perfetto_common_zero_gen_headers",
+        "perfetto_protos_perfetto_config_android_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_android_zero_gen_headers",
+        "perfetto_protos_perfetto_config_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_ftrace_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_ftrace_zero_gen_headers",
+        "perfetto_protos_perfetto_config_gpu_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_gpu_zero_gen_headers",
+        "perfetto_protos_perfetto_config_inode_file_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_inode_file_zero_gen_headers",
+        "perfetto_protos_perfetto_config_interceptors_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_interceptors_zero_gen_headers",
+        "perfetto_protos_perfetto_config_power_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_power_zero_gen_headers",
+        "perfetto_protos_perfetto_config_process_stats_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_process_stats_zero_gen_headers",
+        "perfetto_protos_perfetto_config_profiling_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_profiling_zero_gen_headers",
+        "perfetto_protos_perfetto_config_sys_stats_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_sys_stats_zero_gen_headers",
+        "perfetto_protos_perfetto_config_track_event_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_track_event_zero_gen_headers",
+        "perfetto_protos_perfetto_config_zero_gen_headers",
+        "perfetto_protos_perfetto_ipc_cpp_gen_headers",
+        "perfetto_protos_perfetto_ipc_ipc_gen_headers",
+        "perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_android_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_filesystem_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_ftrace_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_gpu_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_interned_data_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_minimal_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_non_minimal_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_perfetto_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_power_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_profiling_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_ps_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_sys_stats_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_system_info_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_track_event_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_track_event_zero_gen_headers",
+        "perfetto_src_base_version_gen_h",
+    ],
+    defaults: [
+        "perfetto_defaults",
+    ],
+    cflags: [
+        "-DGOOGLE_PROTOBUF_NO_RTTI",
+        "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
+        "-DPERFETTO_ANDROID_ASYNC_SAFE_LOG",
+    ],
+    header_libs: [
+        "bionic_libc_platform_headers",
+    ],
+    stl: "libc++_static",
+    version_script: "src/profiling/memory/heapprofd_client_api.map.txt",
 }
 
 // GN: //src/ipc/protoc_plugin:ipc_plugin
 cc_binary_host {
-  name: "ipc_plugin",
-  srcs: [
-    ":perfetto_include_perfetto_base_base",
-    ":perfetto_include_perfetto_ext_base_base",
-    ":perfetto_src_base_base",
-    "src/ipc/protoc_plugin/ipc_plugin.cc",
-  ],
-  static_libs: [
-    "libprotoc",
-  ],
-  generated_headers: [
-    "perfetto_src_base_version_gen_h",
-  ],
-  defaults: [
-    "perfetto_defaults",
-  ],
-  cflags: [
-    "-DGOOGLE_PROTOBUF_NO_RTTI",
-    "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
-  ],
+    name: "ipc_plugin",
+    srcs: [
+        ":perfetto_include_perfetto_base_base",
+        ":perfetto_include_perfetto_ext_base_base",
+        ":perfetto_src_base_base",
+        "src/ipc/protoc_plugin/ipc_plugin.cc",
+    ],
+    static_libs: [
+        "libprotoc",
+    ],
+    generated_headers: [
+        "perfetto_src_base_version_gen_h",
+    ],
+    defaults: [
+        "perfetto_defaults",
+    ],
+    cflags: [
+        "-DGOOGLE_PROTOBUF_NO_RTTI",
+        "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
+    ],
 }
 
 // GN: //:libperfetto
 cc_library_shared {
-  name: "libperfetto",
-  srcs: [
-    ":perfetto_include_perfetto_base_base",
-    ":perfetto_include_perfetto_ext_base_base",
-    ":perfetto_include_perfetto_ext_ipc_ipc",
-    ":perfetto_include_perfetto_ext_traced_sys_stats_counters",
-    ":perfetto_include_perfetto_ext_traced_traced",
-    ":perfetto_include_perfetto_ext_tracing_core_core",
-    ":perfetto_include_perfetto_ext_tracing_ipc_ipc",
-    ":perfetto_include_perfetto_protozero_protozero",
-    ":perfetto_include_perfetto_public_public",
-    ":perfetto_include_perfetto_tracing_core_core",
-    ":perfetto_include_perfetto_tracing_core_forward_decls",
-    ":perfetto_include_perfetto_tracing_tracing",
-    ":perfetto_protos_perfetto_common_cpp_gen",
-    ":perfetto_protos_perfetto_common_zero_gen",
-    ":perfetto_protos_perfetto_config_android_cpp_gen",
-    ":perfetto_protos_perfetto_config_android_zero_gen",
-    ":perfetto_protos_perfetto_config_cpp_gen",
-    ":perfetto_protos_perfetto_config_ftrace_cpp_gen",
-    ":perfetto_protos_perfetto_config_ftrace_zero_gen",
-    ":perfetto_protos_perfetto_config_gpu_cpp_gen",
-    ":perfetto_protos_perfetto_config_gpu_zero_gen",
-    ":perfetto_protos_perfetto_config_inode_file_cpp_gen",
-    ":perfetto_protos_perfetto_config_inode_file_zero_gen",
-    ":perfetto_protos_perfetto_config_interceptors_cpp_gen",
-    ":perfetto_protos_perfetto_config_interceptors_zero_gen",
-    ":perfetto_protos_perfetto_config_power_cpp_gen",
-    ":perfetto_protos_perfetto_config_power_zero_gen",
-    ":perfetto_protos_perfetto_config_process_stats_cpp_gen",
-    ":perfetto_protos_perfetto_config_process_stats_zero_gen",
-    ":perfetto_protos_perfetto_config_profiling_cpp_gen",
-    ":perfetto_protos_perfetto_config_profiling_zero_gen",
-    ":perfetto_protos_perfetto_config_sys_stats_cpp_gen",
-    ":perfetto_protos_perfetto_config_sys_stats_zero_gen",
-    ":perfetto_protos_perfetto_config_track_event_cpp_gen",
-    ":perfetto_protos_perfetto_config_track_event_zero_gen",
-    ":perfetto_protos_perfetto_config_zero_gen",
-    ":perfetto_protos_perfetto_ipc_cpp_gen",
-    ":perfetto_protos_perfetto_ipc_ipc_gen",
-    ":perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen",
-    ":perfetto_protos_perfetto_trace_android_zero_gen",
-    ":perfetto_protos_perfetto_trace_chrome_zero_gen",
-    ":perfetto_protos_perfetto_trace_filesystem_zero_gen",
-    ":perfetto_protos_perfetto_trace_ftrace_zero_gen",
-    ":perfetto_protos_perfetto_trace_gpu_zero_gen",
-    ":perfetto_protos_perfetto_trace_interned_data_zero_gen",
-    ":perfetto_protos_perfetto_trace_minimal_zero_gen",
-    ":perfetto_protos_perfetto_trace_non_minimal_zero_gen",
-    ":perfetto_protos_perfetto_trace_perfetto_zero_gen",
-    ":perfetto_protos_perfetto_trace_power_zero_gen",
-    ":perfetto_protos_perfetto_trace_profiling_zero_gen",
-    ":perfetto_protos_perfetto_trace_ps_zero_gen",
-    ":perfetto_protos_perfetto_trace_sys_stats_zero_gen",
-    ":perfetto_protos_perfetto_trace_system_info_zero_gen",
-    ":perfetto_protos_perfetto_trace_track_event_cpp_gen",
-    ":perfetto_protos_perfetto_trace_track_event_zero_gen",
-    ":perfetto_src_android_internal_headers",
-    ":perfetto_src_android_internal_lazy_library_loader",
-    ":perfetto_src_android_stats_android_stats",
-    ":perfetto_src_android_stats_perfetto_atoms",
-    ":perfetto_src_base_base",
-    ":perfetto_src_base_unix_socket",
-    ":perfetto_src_ipc_client",
-    ":perfetto_src_ipc_common",
-    ":perfetto_src_ipc_host",
-    ":perfetto_src_kallsyms_kallsyms",
-    ":perfetto_src_protozero_filtering_bytecode_common",
-    ":perfetto_src_protozero_filtering_bytecode_parser",
-    ":perfetto_src_protozero_filtering_message_filter",
-    ":perfetto_src_protozero_protozero",
-    ":perfetto_src_traced_probes_android_log_android_log",
-    ":perfetto_src_traced_probes_common_common",
-    ":perfetto_src_traced_probes_data_source",
-    ":perfetto_src_traced_probes_filesystem_filesystem",
-    ":perfetto_src_traced_probes_ftrace_format_parser_format_parser",
-    ":perfetto_src_traced_probes_ftrace_ftrace",
-    ":perfetto_src_traced_probes_ftrace_ftrace_procfs",
-    ":perfetto_src_traced_probes_initial_display_state_initial_display_state",
-    ":perfetto_src_traced_probes_metatrace_metatrace",
-    ":perfetto_src_traced_probes_packages_list_packages_list",
-    ":perfetto_src_traced_probes_packages_list_packages_list_parser",
-    ":perfetto_src_traced_probes_power_power",
-    ":perfetto_src_traced_probes_probes",
-    ":perfetto_src_traced_probes_probes_src",
-    ":perfetto_src_traced_probes_ps_ps",
-    ":perfetto_src_traced_probes_sys_stats_sys_stats",
-    ":perfetto_src_traced_probes_system_info_system_info",
-    ":perfetto_src_traced_service_service",
-    ":perfetto_src_tracing_common",
-    ":perfetto_src_tracing_consumer_api_deprecated_consumer_api_deprecated",
-    ":perfetto_src_tracing_core_core",
-    ":perfetto_src_tracing_core_service",
-    ":perfetto_src_tracing_ipc_common",
-    ":perfetto_src_tracing_ipc_consumer_consumer",
-    ":perfetto_src_tracing_ipc_producer_producer",
-    ":perfetto_src_tracing_ipc_service_service",
-  ],
-  host_supported: true,
-  export_include_dirs: [
-    "include",
-    "include/perfetto/base/build_configs/android_tree",
-  ],
-  generated_headers: [
-    "perfetto_protos_perfetto_common_cpp_gen_headers",
-    "perfetto_protos_perfetto_common_zero_gen_headers",
-    "perfetto_protos_perfetto_config_android_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_android_zero_gen_headers",
-    "perfetto_protos_perfetto_config_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_ftrace_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_ftrace_zero_gen_headers",
-    "perfetto_protos_perfetto_config_gpu_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_gpu_zero_gen_headers",
-    "perfetto_protos_perfetto_config_inode_file_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_inode_file_zero_gen_headers",
-    "perfetto_protos_perfetto_config_interceptors_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_interceptors_zero_gen_headers",
-    "perfetto_protos_perfetto_config_power_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_power_zero_gen_headers",
-    "perfetto_protos_perfetto_config_process_stats_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_process_stats_zero_gen_headers",
-    "perfetto_protos_perfetto_config_profiling_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_profiling_zero_gen_headers",
-    "perfetto_protos_perfetto_config_sys_stats_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_sys_stats_zero_gen_headers",
-    "perfetto_protos_perfetto_config_track_event_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_track_event_zero_gen_headers",
-    "perfetto_protos_perfetto_config_zero_gen_headers",
-    "perfetto_protos_perfetto_ipc_cpp_gen_headers",
-    "perfetto_protos_perfetto_ipc_ipc_gen_headers",
-    "perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_android_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_filesystem_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_ftrace_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_gpu_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_interned_data_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_minimal_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_non_minimal_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_perfetto_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_power_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_profiling_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_ps_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_sys_stats_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_system_info_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_track_event_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_track_event_zero_gen_headers",
-    "perfetto_src_base_version_gen_h",
-  ],
-  defaults: [
-    "perfetto_defaults",
-  ],
-  cflags: [
-    "-DGOOGLE_PROTOBUF_NO_RTTI",
-    "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
-  ],
-  target: {
-    android: {
-      shared_libs: [
-        "liblog",
-      ],
+    name: "libperfetto",
+    srcs: [
+        ":perfetto_include_perfetto_base_base",
+        ":perfetto_include_perfetto_ext_base_base",
+        ":perfetto_include_perfetto_ext_ipc_ipc",
+        ":perfetto_include_perfetto_ext_traced_sys_stats_counters",
+        ":perfetto_include_perfetto_ext_traced_traced",
+        ":perfetto_include_perfetto_ext_tracing_core_core",
+        ":perfetto_include_perfetto_ext_tracing_ipc_ipc",
+        ":perfetto_include_perfetto_protozero_protozero",
+        ":perfetto_include_perfetto_public_public",
+        ":perfetto_include_perfetto_tracing_core_core",
+        ":perfetto_include_perfetto_tracing_core_forward_decls",
+        ":perfetto_include_perfetto_tracing_tracing",
+        ":perfetto_protos_perfetto_common_cpp_gen",
+        ":perfetto_protos_perfetto_common_zero_gen",
+        ":perfetto_protos_perfetto_config_android_cpp_gen",
+        ":perfetto_protos_perfetto_config_android_zero_gen",
+        ":perfetto_protos_perfetto_config_cpp_gen",
+        ":perfetto_protos_perfetto_config_ftrace_cpp_gen",
+        ":perfetto_protos_perfetto_config_ftrace_zero_gen",
+        ":perfetto_protos_perfetto_config_gpu_cpp_gen",
+        ":perfetto_protos_perfetto_config_gpu_zero_gen",
+        ":perfetto_protos_perfetto_config_inode_file_cpp_gen",
+        ":perfetto_protos_perfetto_config_inode_file_zero_gen",
+        ":perfetto_protos_perfetto_config_interceptors_cpp_gen",
+        ":perfetto_protos_perfetto_config_interceptors_zero_gen",
+        ":perfetto_protos_perfetto_config_power_cpp_gen",
+        ":perfetto_protos_perfetto_config_power_zero_gen",
+        ":perfetto_protos_perfetto_config_process_stats_cpp_gen",
+        ":perfetto_protos_perfetto_config_process_stats_zero_gen",
+        ":perfetto_protos_perfetto_config_profiling_cpp_gen",
+        ":perfetto_protos_perfetto_config_profiling_zero_gen",
+        ":perfetto_protos_perfetto_config_sys_stats_cpp_gen",
+        ":perfetto_protos_perfetto_config_sys_stats_zero_gen",
+        ":perfetto_protos_perfetto_config_track_event_cpp_gen",
+        ":perfetto_protos_perfetto_config_track_event_zero_gen",
+        ":perfetto_protos_perfetto_config_zero_gen",
+        ":perfetto_protos_perfetto_ipc_cpp_gen",
+        ":perfetto_protos_perfetto_ipc_ipc_gen",
+        ":perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen",
+        ":perfetto_protos_perfetto_trace_android_zero_gen",
+        ":perfetto_protos_perfetto_trace_chrome_zero_gen",
+        ":perfetto_protos_perfetto_trace_filesystem_zero_gen",
+        ":perfetto_protos_perfetto_trace_ftrace_zero_gen",
+        ":perfetto_protos_perfetto_trace_gpu_zero_gen",
+        ":perfetto_protos_perfetto_trace_interned_data_zero_gen",
+        ":perfetto_protos_perfetto_trace_minimal_zero_gen",
+        ":perfetto_protos_perfetto_trace_non_minimal_zero_gen",
+        ":perfetto_protos_perfetto_trace_perfetto_zero_gen",
+        ":perfetto_protos_perfetto_trace_power_zero_gen",
+        ":perfetto_protos_perfetto_trace_profiling_zero_gen",
+        ":perfetto_protos_perfetto_trace_ps_zero_gen",
+        ":perfetto_protos_perfetto_trace_sys_stats_zero_gen",
+        ":perfetto_protos_perfetto_trace_system_info_zero_gen",
+        ":perfetto_protos_perfetto_trace_track_event_cpp_gen",
+        ":perfetto_protos_perfetto_trace_track_event_zero_gen",
+        ":perfetto_src_android_internal_headers",
+        ":perfetto_src_android_internal_lazy_library_loader",
+        ":perfetto_src_android_stats_android_stats",
+        ":perfetto_src_android_stats_perfetto_atoms",
+        ":perfetto_src_base_base",
+        ":perfetto_src_base_unix_socket",
+        ":perfetto_src_ipc_client",
+        ":perfetto_src_ipc_common",
+        ":perfetto_src_ipc_host",
+        ":perfetto_src_kallsyms_kallsyms",
+        ":perfetto_src_protozero_filtering_bytecode_common",
+        ":perfetto_src_protozero_filtering_bytecode_parser",
+        ":perfetto_src_protozero_filtering_message_filter",
+        ":perfetto_src_protozero_protozero",
+        ":perfetto_src_traced_probes_android_log_android_log",
+        ":perfetto_src_traced_probes_common_common",
+        ":perfetto_src_traced_probes_data_source",
+        ":perfetto_src_traced_probes_filesystem_filesystem",
+        ":perfetto_src_traced_probes_ftrace_format_parser_format_parser",
+        ":perfetto_src_traced_probes_ftrace_ftrace",
+        ":perfetto_src_traced_probes_ftrace_ftrace_procfs",
+        ":perfetto_src_traced_probes_initial_display_state_initial_display_state",
+        ":perfetto_src_traced_probes_metatrace_metatrace",
+        ":perfetto_src_traced_probes_packages_list_packages_list",
+        ":perfetto_src_traced_probes_packages_list_packages_list_parser",
+        ":perfetto_src_traced_probes_power_power",
+        ":perfetto_src_traced_probes_probes",
+        ":perfetto_src_traced_probes_probes_src",
+        ":perfetto_src_traced_probes_ps_ps",
+        ":perfetto_src_traced_probes_sys_stats_sys_stats",
+        ":perfetto_src_traced_probes_system_info_system_info",
+        ":perfetto_src_traced_service_service",
+        ":perfetto_src_tracing_common",
+        ":perfetto_src_tracing_consumer_api_deprecated_consumer_api_deprecated",
+        ":perfetto_src_tracing_core_core",
+        ":perfetto_src_tracing_core_service",
+        ":perfetto_src_tracing_ipc_common",
+        ":perfetto_src_tracing_ipc_consumer_consumer",
+        ":perfetto_src_tracing_ipc_producer_producer",
+        ":perfetto_src_tracing_ipc_service_service",
+    ],
+    host_supported: true,
+    export_include_dirs: [
+        "include",
+        "include/perfetto/base/build_configs/android_tree",
+    ],
+    generated_headers: [
+        "perfetto_protos_perfetto_common_cpp_gen_headers",
+        "perfetto_protos_perfetto_common_zero_gen_headers",
+        "perfetto_protos_perfetto_config_android_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_android_zero_gen_headers",
+        "perfetto_protos_perfetto_config_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_ftrace_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_ftrace_zero_gen_headers",
+        "perfetto_protos_perfetto_config_gpu_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_gpu_zero_gen_headers",
+        "perfetto_protos_perfetto_config_inode_file_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_inode_file_zero_gen_headers",
+        "perfetto_protos_perfetto_config_interceptors_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_interceptors_zero_gen_headers",
+        "perfetto_protos_perfetto_config_power_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_power_zero_gen_headers",
+        "perfetto_protos_perfetto_config_process_stats_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_process_stats_zero_gen_headers",
+        "perfetto_protos_perfetto_config_profiling_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_profiling_zero_gen_headers",
+        "perfetto_protos_perfetto_config_sys_stats_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_sys_stats_zero_gen_headers",
+        "perfetto_protos_perfetto_config_track_event_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_track_event_zero_gen_headers",
+        "perfetto_protos_perfetto_config_zero_gen_headers",
+        "perfetto_protos_perfetto_ipc_cpp_gen_headers",
+        "perfetto_protos_perfetto_ipc_ipc_gen_headers",
+        "perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_android_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_filesystem_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_ftrace_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_gpu_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_interned_data_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_minimal_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_non_minimal_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_perfetto_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_power_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_profiling_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_ps_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_sys_stats_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_system_info_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_track_event_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_track_event_zero_gen_headers",
+        "perfetto_src_base_version_gen_h",
+    ],
+    defaults: [
+        "perfetto_defaults",
+    ],
+    cflags: [
+        "-DGOOGLE_PROTOBUF_NO_RTTI",
+        "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
+    ],
+    target: {
+        android: {
+            shared_libs: [
+                "liblog",
+            ],
+        },
     },
-  },
 }
 
 // GN: //src/android_internal:libperfetto_android_internal
 cc_library_shared {
-  name: "libperfetto_android_internal",
-  srcs: [
-    ":perfetto_src_android_internal_headers",
-    ":perfetto_src_android_stats_perfetto_atoms",
-    "src/android_internal/atrace_hal.cc",
-    "src/android_internal/health_hal.cc",
-    "src/android_internal/incident_service.cc",
-    "src/android_internal/power_stats.cc",
-    "src/android_internal/statsd_logging.cc",
-    "src/android_internal/tracing_service_proxy.cc",
-  ],
-  shared_libs: [
-    "android.hardware.atrace@1.0",
-    "android.hardware.health@2.0",
-    "android.hardware.power.stats-V1-cpp",
-    "android.hardware.power.stats@1.0",
-    "libbase",
-    "libbinder",
-    "libcutils",
-    "libhidlbase",
-    "libincident",
-    "liblog",
-    "libservices",
-    "libstatssocket",
-    "libtracingproxy",
-    "libutils",
-  ],
-  static_libs: [
-    "libhealthhalutils",
-    "libstatslog_perfetto",
-  ],
-  defaults: [
-    "perfetto_defaults",
-  ],
-  product_variables: {
-    pdk: {
-      enabled: false,
-    },
-  },
+    name: "libperfetto_android_internal",
+    srcs: [
+        ":perfetto_src_android_internal_headers",
+        ":perfetto_src_android_stats_perfetto_atoms",
+        "src/android_internal/atrace_hal.cc",
+        "src/android_internal/health_hal.cc",
+        "src/android_internal/incident_service.cc",
+        "src/android_internal/power_stats.cc",
+        "src/android_internal/statsd_logging.cc",
+        "src/android_internal/tracing_service_proxy.cc",
+    ],
+    shared_libs: [
+        "android.hardware.atrace@1.0",
+        "android.hardware.health@2.0",
+        "android.hardware.power.stats-V1-cpp",
+        "android.hardware.power.stats@1.0",
+        "libbase",
+        "libbinder",
+        "libcutils",
+        "libhidlbase",
+        "libincident",
+        "liblog",
+        "libservices",
+        "libstatssocket",
+        "libtracingproxy",
+        "libutils",
+    ],
+    static_libs: [
+        "libhealthhalutils",
+        "libstatslog_perfetto",
+    ],
+    defaults: [
+        "perfetto_defaults",
+    ],
 }
 
 // GN: //:libperfetto_client_experimental
 cc_library_static {
-  name: "libperfetto_client_experimental",
-  srcs: [
-    ":perfetto_include_perfetto_base_base",
-    ":perfetto_include_perfetto_ext_base_base",
-    ":perfetto_include_perfetto_ext_ipc_ipc",
-    ":perfetto_include_perfetto_ext_tracing_core_core",
-    ":perfetto_include_perfetto_ext_tracing_ipc_ipc",
-    ":perfetto_include_perfetto_protozero_protozero",
-    ":perfetto_include_perfetto_tracing_core_core",
-    ":perfetto_include_perfetto_tracing_core_forward_decls",
-    ":perfetto_include_perfetto_tracing_tracing",
-    ":perfetto_protos_perfetto_common_cpp_gen",
-    ":perfetto_protos_perfetto_common_zero_gen",
-    ":perfetto_protos_perfetto_config_android_cpp_gen",
-    ":perfetto_protos_perfetto_config_android_zero_gen",
-    ":perfetto_protos_perfetto_config_cpp_gen",
-    ":perfetto_protos_perfetto_config_ftrace_cpp_gen",
-    ":perfetto_protos_perfetto_config_ftrace_zero_gen",
-    ":perfetto_protos_perfetto_config_gpu_cpp_gen",
-    ":perfetto_protos_perfetto_config_gpu_zero_gen",
-    ":perfetto_protos_perfetto_config_inode_file_cpp_gen",
-    ":perfetto_protos_perfetto_config_inode_file_zero_gen",
-    ":perfetto_protos_perfetto_config_interceptors_cpp_gen",
-    ":perfetto_protos_perfetto_config_interceptors_zero_gen",
-    ":perfetto_protos_perfetto_config_power_cpp_gen",
-    ":perfetto_protos_perfetto_config_power_zero_gen",
-    ":perfetto_protos_perfetto_config_process_stats_cpp_gen",
-    ":perfetto_protos_perfetto_config_process_stats_zero_gen",
-    ":perfetto_protos_perfetto_config_profiling_cpp_gen",
-    ":perfetto_protos_perfetto_config_profiling_zero_gen",
-    ":perfetto_protos_perfetto_config_sys_stats_cpp_gen",
-    ":perfetto_protos_perfetto_config_sys_stats_zero_gen",
-    ":perfetto_protos_perfetto_config_track_event_cpp_gen",
-    ":perfetto_protos_perfetto_config_track_event_zero_gen",
-    ":perfetto_protos_perfetto_config_zero_gen",
-    ":perfetto_protos_perfetto_ipc_cpp_gen",
-    ":perfetto_protos_perfetto_ipc_ipc_gen",
-    ":perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen",
-    ":perfetto_protos_perfetto_trace_android_zero_gen",
-    ":perfetto_protos_perfetto_trace_chrome_zero_gen",
-    ":perfetto_protos_perfetto_trace_filesystem_zero_gen",
-    ":perfetto_protos_perfetto_trace_ftrace_zero_gen",
-    ":perfetto_protos_perfetto_trace_gpu_zero_gen",
-    ":perfetto_protos_perfetto_trace_interned_data_zero_gen",
-    ":perfetto_protos_perfetto_trace_minimal_zero_gen",
-    ":perfetto_protos_perfetto_trace_non_minimal_zero_gen",
-    ":perfetto_protos_perfetto_trace_perfetto_zero_gen",
-    ":perfetto_protos_perfetto_trace_power_zero_gen",
-    ":perfetto_protos_perfetto_trace_profiling_zero_gen",
-    ":perfetto_protos_perfetto_trace_ps_zero_gen",
-    ":perfetto_protos_perfetto_trace_sys_stats_zero_gen",
-    ":perfetto_protos_perfetto_trace_system_info_zero_gen",
-    ":perfetto_protos_perfetto_trace_track_event_cpp_gen",
-    ":perfetto_protos_perfetto_trace_track_event_zero_gen",
-    ":perfetto_src_android_internal_headers",
-    ":perfetto_src_android_internal_lazy_library_loader",
-    ":perfetto_src_android_stats_android_stats",
-    ":perfetto_src_android_stats_perfetto_atoms",
-    ":perfetto_src_base_base",
-    ":perfetto_src_base_unix_socket",
-    ":perfetto_src_ipc_client",
-    ":perfetto_src_ipc_common",
-    ":perfetto_src_ipc_host",
-    ":perfetto_src_protozero_filtering_bytecode_common",
-    ":perfetto_src_protozero_filtering_bytecode_parser",
-    ":perfetto_src_protozero_filtering_message_filter",
-    ":perfetto_src_protozero_protozero",
-    ":perfetto_src_tracing_client_api_without_backends",
-    ":perfetto_src_tracing_common",
-    ":perfetto_src_tracing_core_core",
-    ":perfetto_src_tracing_core_service",
-    ":perfetto_src_tracing_in_process_backend",
-    ":perfetto_src_tracing_ipc_common",
-    ":perfetto_src_tracing_ipc_consumer_consumer",
-    ":perfetto_src_tracing_ipc_producer_producer",
-    ":perfetto_src_tracing_ipc_service_service",
-    ":perfetto_src_tracing_platform_impl",
-    ":perfetto_src_tracing_system_backend",
-  ],
-  shared_libs: [
-    "liblog",
-  ],
-  export_include_dirs: [
-    "include",
-    "include/perfetto/base/build_configs/android_tree",
-  ],
-  generated_headers: [
-    "perfetto_protos_perfetto_common_cpp_gen_headers",
-    "perfetto_protos_perfetto_common_zero_gen_headers",
-    "perfetto_protos_perfetto_config_android_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_android_zero_gen_headers",
-    "perfetto_protos_perfetto_config_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_ftrace_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_ftrace_zero_gen_headers",
-    "perfetto_protos_perfetto_config_gpu_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_gpu_zero_gen_headers",
-    "perfetto_protos_perfetto_config_inode_file_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_inode_file_zero_gen_headers",
-    "perfetto_protos_perfetto_config_interceptors_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_interceptors_zero_gen_headers",
-    "perfetto_protos_perfetto_config_power_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_power_zero_gen_headers",
-    "perfetto_protos_perfetto_config_process_stats_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_process_stats_zero_gen_headers",
-    "perfetto_protos_perfetto_config_profiling_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_profiling_zero_gen_headers",
-    "perfetto_protos_perfetto_config_sys_stats_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_sys_stats_zero_gen_headers",
-    "perfetto_protos_perfetto_config_track_event_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_track_event_zero_gen_headers",
-    "perfetto_protos_perfetto_config_zero_gen_headers",
-    "perfetto_protos_perfetto_ipc_cpp_gen_headers",
-    "perfetto_protos_perfetto_ipc_ipc_gen_headers",
-    "perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_android_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_filesystem_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_ftrace_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_gpu_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_interned_data_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_minimal_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_non_minimal_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_perfetto_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_power_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_profiling_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_ps_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_sys_stats_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_system_info_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_track_event_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_track_event_zero_gen_headers",
-    "perfetto_src_base_version_gen_h",
-  ],
-  export_generated_headers: [
-    "perfetto_protos_perfetto_common_cpp_gen_headers",
-    "perfetto_protos_perfetto_common_zero_gen_headers",
-    "perfetto_protos_perfetto_config_android_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_android_zero_gen_headers",
-    "perfetto_protos_perfetto_config_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_ftrace_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_ftrace_zero_gen_headers",
-    "perfetto_protos_perfetto_config_gpu_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_gpu_zero_gen_headers",
-    "perfetto_protos_perfetto_config_inode_file_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_inode_file_zero_gen_headers",
-    "perfetto_protos_perfetto_config_interceptors_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_interceptors_zero_gen_headers",
-    "perfetto_protos_perfetto_config_power_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_power_zero_gen_headers",
-    "perfetto_protos_perfetto_config_process_stats_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_process_stats_zero_gen_headers",
-    "perfetto_protos_perfetto_config_profiling_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_profiling_zero_gen_headers",
-    "perfetto_protos_perfetto_config_sys_stats_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_sys_stats_zero_gen_headers",
-    "perfetto_protos_perfetto_config_track_event_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_track_event_zero_gen_headers",
-    "perfetto_protos_perfetto_config_zero_gen_headers",
-    "perfetto_protos_perfetto_ipc_cpp_gen_headers",
-    "perfetto_protos_perfetto_ipc_ipc_gen_headers",
-    "perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_android_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_filesystem_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_ftrace_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_gpu_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_interned_data_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_minimal_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_non_minimal_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_perfetto_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_power_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_profiling_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_ps_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_sys_stats_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_system_info_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_track_event_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_track_event_zero_gen_headers",
-    "perfetto_src_base_version_gen_h",
-  ],
-  defaults: [
-    "perfetto_defaults",
-  ],
-  cflags: [
-    "-DGOOGLE_PROTOBUF_NO_RTTI",
-    "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
-  ],
-  apex_available: [
-    "//apex_available:platform",
-    "com.android.art",
-    "com.android.art.debug",
-  ],
-  min_sdk_version: "S",
+    name: "libperfetto_client_experimental",
+    srcs: [
+        ":perfetto_include_perfetto_base_base",
+        ":perfetto_include_perfetto_ext_base_base",
+        ":perfetto_include_perfetto_ext_ipc_ipc",
+        ":perfetto_include_perfetto_ext_tracing_core_core",
+        ":perfetto_include_perfetto_ext_tracing_ipc_ipc",
+        ":perfetto_include_perfetto_protozero_protozero",
+        ":perfetto_include_perfetto_tracing_core_core",
+        ":perfetto_include_perfetto_tracing_core_forward_decls",
+        ":perfetto_include_perfetto_tracing_tracing",
+        ":perfetto_protos_perfetto_common_cpp_gen",
+        ":perfetto_protos_perfetto_common_zero_gen",
+        ":perfetto_protos_perfetto_config_android_cpp_gen",
+        ":perfetto_protos_perfetto_config_android_zero_gen",
+        ":perfetto_protos_perfetto_config_cpp_gen",
+        ":perfetto_protos_perfetto_config_ftrace_cpp_gen",
+        ":perfetto_protos_perfetto_config_ftrace_zero_gen",
+        ":perfetto_protos_perfetto_config_gpu_cpp_gen",
+        ":perfetto_protos_perfetto_config_gpu_zero_gen",
+        ":perfetto_protos_perfetto_config_inode_file_cpp_gen",
+        ":perfetto_protos_perfetto_config_inode_file_zero_gen",
+        ":perfetto_protos_perfetto_config_interceptors_cpp_gen",
+        ":perfetto_protos_perfetto_config_interceptors_zero_gen",
+        ":perfetto_protos_perfetto_config_power_cpp_gen",
+        ":perfetto_protos_perfetto_config_power_zero_gen",
+        ":perfetto_protos_perfetto_config_process_stats_cpp_gen",
+        ":perfetto_protos_perfetto_config_process_stats_zero_gen",
+        ":perfetto_protos_perfetto_config_profiling_cpp_gen",
+        ":perfetto_protos_perfetto_config_profiling_zero_gen",
+        ":perfetto_protos_perfetto_config_sys_stats_cpp_gen",
+        ":perfetto_protos_perfetto_config_sys_stats_zero_gen",
+        ":perfetto_protos_perfetto_config_track_event_cpp_gen",
+        ":perfetto_protos_perfetto_config_track_event_zero_gen",
+        ":perfetto_protos_perfetto_config_zero_gen",
+        ":perfetto_protos_perfetto_ipc_cpp_gen",
+        ":perfetto_protos_perfetto_ipc_ipc_gen",
+        ":perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen",
+        ":perfetto_protos_perfetto_trace_android_zero_gen",
+        ":perfetto_protos_perfetto_trace_chrome_zero_gen",
+        ":perfetto_protos_perfetto_trace_filesystem_zero_gen",
+        ":perfetto_protos_perfetto_trace_ftrace_zero_gen",
+        ":perfetto_protos_perfetto_trace_gpu_zero_gen",
+        ":perfetto_protos_perfetto_trace_interned_data_zero_gen",
+        ":perfetto_protos_perfetto_trace_minimal_zero_gen",
+        ":perfetto_protos_perfetto_trace_non_minimal_zero_gen",
+        ":perfetto_protos_perfetto_trace_perfetto_zero_gen",
+        ":perfetto_protos_perfetto_trace_power_zero_gen",
+        ":perfetto_protos_perfetto_trace_profiling_zero_gen",
+        ":perfetto_protos_perfetto_trace_ps_zero_gen",
+        ":perfetto_protos_perfetto_trace_sys_stats_zero_gen",
+        ":perfetto_protos_perfetto_trace_system_info_zero_gen",
+        ":perfetto_protos_perfetto_trace_track_event_cpp_gen",
+        ":perfetto_protos_perfetto_trace_track_event_zero_gen",
+        ":perfetto_src_android_internal_headers",
+        ":perfetto_src_android_internal_lazy_library_loader",
+        ":perfetto_src_android_stats_android_stats",
+        ":perfetto_src_android_stats_perfetto_atoms",
+        ":perfetto_src_base_base",
+        ":perfetto_src_base_unix_socket",
+        ":perfetto_src_ipc_client",
+        ":perfetto_src_ipc_common",
+        ":perfetto_src_ipc_host",
+        ":perfetto_src_protozero_filtering_bytecode_common",
+        ":perfetto_src_protozero_filtering_bytecode_parser",
+        ":perfetto_src_protozero_filtering_message_filter",
+        ":perfetto_src_protozero_protozero",
+        ":perfetto_src_tracing_client_api_without_backends",
+        ":perfetto_src_tracing_common",
+        ":perfetto_src_tracing_core_core",
+        ":perfetto_src_tracing_core_service",
+        ":perfetto_src_tracing_in_process_backend",
+        ":perfetto_src_tracing_ipc_common",
+        ":perfetto_src_tracing_ipc_consumer_consumer",
+        ":perfetto_src_tracing_ipc_producer_producer",
+        ":perfetto_src_tracing_ipc_service_service",
+        ":perfetto_src_tracing_platform_impl",
+        ":perfetto_src_tracing_system_backend",
+    ],
+    shared_libs: [
+        "liblog",
+    ],
+    export_include_dirs: [
+        "include",
+        "include/perfetto/base/build_configs/android_tree",
+    ],
+    generated_headers: [
+        "perfetto_protos_perfetto_common_cpp_gen_headers",
+        "perfetto_protos_perfetto_common_zero_gen_headers",
+        "perfetto_protos_perfetto_config_android_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_android_zero_gen_headers",
+        "perfetto_protos_perfetto_config_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_ftrace_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_ftrace_zero_gen_headers",
+        "perfetto_protos_perfetto_config_gpu_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_gpu_zero_gen_headers",
+        "perfetto_protos_perfetto_config_inode_file_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_inode_file_zero_gen_headers",
+        "perfetto_protos_perfetto_config_interceptors_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_interceptors_zero_gen_headers",
+        "perfetto_protos_perfetto_config_power_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_power_zero_gen_headers",
+        "perfetto_protos_perfetto_config_process_stats_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_process_stats_zero_gen_headers",
+        "perfetto_protos_perfetto_config_profiling_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_profiling_zero_gen_headers",
+        "perfetto_protos_perfetto_config_sys_stats_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_sys_stats_zero_gen_headers",
+        "perfetto_protos_perfetto_config_track_event_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_track_event_zero_gen_headers",
+        "perfetto_protos_perfetto_config_zero_gen_headers",
+        "perfetto_protos_perfetto_ipc_cpp_gen_headers",
+        "perfetto_protos_perfetto_ipc_ipc_gen_headers",
+        "perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_android_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_filesystem_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_ftrace_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_gpu_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_interned_data_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_minimal_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_non_minimal_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_perfetto_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_power_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_profiling_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_ps_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_sys_stats_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_system_info_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_track_event_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_track_event_zero_gen_headers",
+        "perfetto_src_base_version_gen_h",
+    ],
+    export_generated_headers: [
+        "perfetto_protos_perfetto_common_cpp_gen_headers",
+        "perfetto_protos_perfetto_common_zero_gen_headers",
+        "perfetto_protos_perfetto_config_android_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_android_zero_gen_headers",
+        "perfetto_protos_perfetto_config_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_ftrace_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_ftrace_zero_gen_headers",
+        "perfetto_protos_perfetto_config_gpu_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_gpu_zero_gen_headers",
+        "perfetto_protos_perfetto_config_inode_file_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_inode_file_zero_gen_headers",
+        "perfetto_protos_perfetto_config_interceptors_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_interceptors_zero_gen_headers",
+        "perfetto_protos_perfetto_config_power_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_power_zero_gen_headers",
+        "perfetto_protos_perfetto_config_process_stats_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_process_stats_zero_gen_headers",
+        "perfetto_protos_perfetto_config_profiling_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_profiling_zero_gen_headers",
+        "perfetto_protos_perfetto_config_sys_stats_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_sys_stats_zero_gen_headers",
+        "perfetto_protos_perfetto_config_track_event_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_track_event_zero_gen_headers",
+        "perfetto_protos_perfetto_config_zero_gen_headers",
+        "perfetto_protos_perfetto_ipc_cpp_gen_headers",
+        "perfetto_protos_perfetto_ipc_ipc_gen_headers",
+        "perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_android_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_filesystem_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_ftrace_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_gpu_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_interned_data_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_minimal_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_non_minimal_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_perfetto_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_power_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_profiling_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_ps_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_sys_stats_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_system_info_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_track_event_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_track_event_zero_gen_headers",
+        "perfetto_src_base_version_gen_h",
+    ],
+    defaults: [
+        "perfetto_defaults",
+    ],
+    cflags: [
+        "-DGOOGLE_PROTOBUF_NO_RTTI",
+        "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
+    ],
+    apex_available: [
+        "//apex_available:platform",
+        "com.android.art",
+        "com.android.art.debug",
+    ],
+    min_sdk_version: "S",
 }
 
 // GN: //src/perfetto_cmd:perfetto
 cc_binary {
-  name: "perfetto",
-  srcs: [
-    ":perfetto_include_perfetto_base_base",
-    ":perfetto_include_perfetto_ext_base_base",
-    ":perfetto_include_perfetto_ext_ipc_ipc",
-    ":perfetto_include_perfetto_ext_traced_traced",
-    ":perfetto_include_perfetto_ext_tracing_core_core",
-    ":perfetto_include_perfetto_ext_tracing_ipc_ipc",
-    ":perfetto_include_perfetto_protozero_protozero",
-    ":perfetto_include_perfetto_tracing_core_core",
-    ":perfetto_include_perfetto_tracing_core_forward_decls",
-    ":perfetto_include_perfetto_tracing_tracing",
-    ":perfetto_protos_perfetto_common_cpp_gen",
-    ":perfetto_protos_perfetto_common_zero_gen",
-    ":perfetto_protos_perfetto_config_android_cpp_gen",
-    ":perfetto_protos_perfetto_config_android_zero_gen",
-    ":perfetto_protos_perfetto_config_cpp_gen",
-    ":perfetto_protos_perfetto_config_ftrace_cpp_gen",
-    ":perfetto_protos_perfetto_config_ftrace_zero_gen",
-    ":perfetto_protos_perfetto_config_gpu_cpp_gen",
-    ":perfetto_protos_perfetto_config_gpu_zero_gen",
-    ":perfetto_protos_perfetto_config_inode_file_cpp_gen",
-    ":perfetto_protos_perfetto_config_inode_file_zero_gen",
-    ":perfetto_protos_perfetto_config_interceptors_cpp_gen",
-    ":perfetto_protos_perfetto_config_interceptors_zero_gen",
-    ":perfetto_protos_perfetto_config_power_cpp_gen",
-    ":perfetto_protos_perfetto_config_power_zero_gen",
-    ":perfetto_protos_perfetto_config_process_stats_cpp_gen",
-    ":perfetto_protos_perfetto_config_process_stats_zero_gen",
-    ":perfetto_protos_perfetto_config_profiling_cpp_gen",
-    ":perfetto_protos_perfetto_config_profiling_zero_gen",
-    ":perfetto_protos_perfetto_config_sys_stats_cpp_gen",
-    ":perfetto_protos_perfetto_config_sys_stats_zero_gen",
-    ":perfetto_protos_perfetto_config_track_event_cpp_gen",
-    ":perfetto_protos_perfetto_config_track_event_zero_gen",
-    ":perfetto_protos_perfetto_config_zero_gen",
-    ":perfetto_protos_perfetto_ipc_cpp_gen",
-    ":perfetto_protos_perfetto_ipc_ipc_gen",
-    ":perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen",
-    ":perfetto_protos_perfetto_trace_android_zero_gen",
-    ":perfetto_protos_perfetto_trace_chrome_zero_gen",
-    ":perfetto_protos_perfetto_trace_filesystem_zero_gen",
-    ":perfetto_protos_perfetto_trace_ftrace_zero_gen",
-    ":perfetto_protos_perfetto_trace_gpu_zero_gen",
-    ":perfetto_protos_perfetto_trace_interned_data_zero_gen",
-    ":perfetto_protos_perfetto_trace_minimal_zero_gen",
-    ":perfetto_protos_perfetto_trace_non_minimal_zero_gen",
-    ":perfetto_protos_perfetto_trace_perfetto_zero_gen",
-    ":perfetto_protos_perfetto_trace_power_zero_gen",
-    ":perfetto_protos_perfetto_trace_profiling_zero_gen",
-    ":perfetto_protos_perfetto_trace_ps_zero_gen",
-    ":perfetto_protos_perfetto_trace_sys_stats_zero_gen",
-    ":perfetto_protos_perfetto_trace_system_info_zero_gen",
-    ":perfetto_protos_perfetto_trace_track_event_cpp_gen",
-    ":perfetto_protos_perfetto_trace_track_event_zero_gen",
-    ":perfetto_src_android_internal_headers",
-    ":perfetto_src_android_internal_lazy_library_loader",
-    ":perfetto_src_android_stats_android_stats",
-    ":perfetto_src_android_stats_perfetto_atoms",
-    ":perfetto_src_base_base",
-    ":perfetto_src_base_unix_socket",
-    ":perfetto_src_ipc_client",
-    ":perfetto_src_ipc_common",
-    ":perfetto_src_perfetto_cmd_perfetto_cmd",
-    ":perfetto_src_perfetto_cmd_protos_gen",
-    ":perfetto_src_perfetto_cmd_trigger_producer",
-    ":perfetto_src_protozero_protozero",
-    ":perfetto_src_tracing_common",
-    ":perfetto_src_tracing_core_core",
-    ":perfetto_src_tracing_ipc_common",
-    ":perfetto_src_tracing_ipc_consumer_consumer",
-    ":perfetto_src_tracing_ipc_producer_producer",
-    "src/perfetto_cmd/main.cc",
-  ],
-  shared_libs: [
-    "liblog",
-    "libz",
-  ],
-  generated_headers: [
-    "perfetto_protos_perfetto_common_cpp_gen_headers",
-    "perfetto_protos_perfetto_common_zero_gen_headers",
-    "perfetto_protos_perfetto_config_android_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_android_zero_gen_headers",
-    "perfetto_protos_perfetto_config_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_ftrace_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_ftrace_zero_gen_headers",
-    "perfetto_protos_perfetto_config_gpu_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_gpu_zero_gen_headers",
-    "perfetto_protos_perfetto_config_inode_file_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_inode_file_zero_gen_headers",
-    "perfetto_protos_perfetto_config_interceptors_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_interceptors_zero_gen_headers",
-    "perfetto_protos_perfetto_config_power_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_power_zero_gen_headers",
-    "perfetto_protos_perfetto_config_process_stats_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_process_stats_zero_gen_headers",
-    "perfetto_protos_perfetto_config_profiling_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_profiling_zero_gen_headers",
-    "perfetto_protos_perfetto_config_sys_stats_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_sys_stats_zero_gen_headers",
-    "perfetto_protos_perfetto_config_track_event_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_track_event_zero_gen_headers",
-    "perfetto_protos_perfetto_config_zero_gen_headers",
-    "perfetto_protos_perfetto_ipc_cpp_gen_headers",
-    "perfetto_protos_perfetto_ipc_ipc_gen_headers",
-    "perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_android_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_filesystem_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_ftrace_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_gpu_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_interned_data_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_minimal_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_non_minimal_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_perfetto_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_power_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_profiling_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_ps_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_sys_stats_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_system_info_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_track_event_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_track_event_zero_gen_headers",
-    "perfetto_src_base_version_gen_h",
-    "perfetto_src_perfetto_cmd_gen_cc_config_descriptor",
-    "perfetto_src_perfetto_cmd_protos_gen_headers",
-  ],
-  defaults: [
-    "perfetto_defaults",
-  ],
-  cflags: [
-    "-DGOOGLE_PROTOBUF_NO_RTTI",
-    "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
-    "-DHAVE_HIDDEN",
-  ],
+    name: "perfetto",
+    srcs: [
+        ":perfetto_include_perfetto_base_base",
+        ":perfetto_include_perfetto_ext_base_base",
+        ":perfetto_include_perfetto_ext_ipc_ipc",
+        ":perfetto_include_perfetto_ext_traced_traced",
+        ":perfetto_include_perfetto_ext_tracing_core_core",
+        ":perfetto_include_perfetto_ext_tracing_ipc_ipc",
+        ":perfetto_include_perfetto_protozero_protozero",
+        ":perfetto_include_perfetto_tracing_core_core",
+        ":perfetto_include_perfetto_tracing_core_forward_decls",
+        ":perfetto_include_perfetto_tracing_tracing",
+        ":perfetto_protos_perfetto_common_cpp_gen",
+        ":perfetto_protos_perfetto_common_zero_gen",
+        ":perfetto_protos_perfetto_config_android_cpp_gen",
+        ":perfetto_protos_perfetto_config_android_zero_gen",
+        ":perfetto_protos_perfetto_config_cpp_gen",
+        ":perfetto_protos_perfetto_config_ftrace_cpp_gen",
+        ":perfetto_protos_perfetto_config_ftrace_zero_gen",
+        ":perfetto_protos_perfetto_config_gpu_cpp_gen",
+        ":perfetto_protos_perfetto_config_gpu_zero_gen",
+        ":perfetto_protos_perfetto_config_inode_file_cpp_gen",
+        ":perfetto_protos_perfetto_config_inode_file_zero_gen",
+        ":perfetto_protos_perfetto_config_interceptors_cpp_gen",
+        ":perfetto_protos_perfetto_config_interceptors_zero_gen",
+        ":perfetto_protos_perfetto_config_power_cpp_gen",
+        ":perfetto_protos_perfetto_config_power_zero_gen",
+        ":perfetto_protos_perfetto_config_process_stats_cpp_gen",
+        ":perfetto_protos_perfetto_config_process_stats_zero_gen",
+        ":perfetto_protos_perfetto_config_profiling_cpp_gen",
+        ":perfetto_protos_perfetto_config_profiling_zero_gen",
+        ":perfetto_protos_perfetto_config_sys_stats_cpp_gen",
+        ":perfetto_protos_perfetto_config_sys_stats_zero_gen",
+        ":perfetto_protos_perfetto_config_track_event_cpp_gen",
+        ":perfetto_protos_perfetto_config_track_event_zero_gen",
+        ":perfetto_protos_perfetto_config_zero_gen",
+        ":perfetto_protos_perfetto_ipc_cpp_gen",
+        ":perfetto_protos_perfetto_ipc_ipc_gen",
+        ":perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen",
+        ":perfetto_protos_perfetto_trace_android_zero_gen",
+        ":perfetto_protos_perfetto_trace_chrome_zero_gen",
+        ":perfetto_protos_perfetto_trace_filesystem_zero_gen",
+        ":perfetto_protos_perfetto_trace_ftrace_zero_gen",
+        ":perfetto_protos_perfetto_trace_gpu_zero_gen",
+        ":perfetto_protos_perfetto_trace_interned_data_zero_gen",
+        ":perfetto_protos_perfetto_trace_minimal_zero_gen",
+        ":perfetto_protos_perfetto_trace_non_minimal_zero_gen",
+        ":perfetto_protos_perfetto_trace_perfetto_zero_gen",
+        ":perfetto_protos_perfetto_trace_power_zero_gen",
+        ":perfetto_protos_perfetto_trace_profiling_zero_gen",
+        ":perfetto_protos_perfetto_trace_ps_zero_gen",
+        ":perfetto_protos_perfetto_trace_sys_stats_zero_gen",
+        ":perfetto_protos_perfetto_trace_system_info_zero_gen",
+        ":perfetto_protos_perfetto_trace_track_event_cpp_gen",
+        ":perfetto_protos_perfetto_trace_track_event_zero_gen",
+        ":perfetto_src_android_internal_headers",
+        ":perfetto_src_android_internal_lazy_library_loader",
+        ":perfetto_src_android_stats_android_stats",
+        ":perfetto_src_android_stats_perfetto_atoms",
+        ":perfetto_src_base_base",
+        ":perfetto_src_base_unix_socket",
+        ":perfetto_src_ipc_client",
+        ":perfetto_src_ipc_common",
+        ":perfetto_src_perfetto_cmd_perfetto_cmd",
+        ":perfetto_src_perfetto_cmd_protos_gen",
+        ":perfetto_src_perfetto_cmd_trigger_producer",
+        ":perfetto_src_protozero_protozero",
+        ":perfetto_src_tracing_common",
+        ":perfetto_src_tracing_core_core",
+        ":perfetto_src_tracing_ipc_common",
+        ":perfetto_src_tracing_ipc_consumer_consumer",
+        ":perfetto_src_tracing_ipc_producer_producer",
+        "src/perfetto_cmd/main.cc",
+    ],
+    shared_libs: [
+        "liblog",
+        "libz",
+    ],
+    generated_headers: [
+        "perfetto_protos_perfetto_common_cpp_gen_headers",
+        "perfetto_protos_perfetto_common_zero_gen_headers",
+        "perfetto_protos_perfetto_config_android_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_android_zero_gen_headers",
+        "perfetto_protos_perfetto_config_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_ftrace_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_ftrace_zero_gen_headers",
+        "perfetto_protos_perfetto_config_gpu_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_gpu_zero_gen_headers",
+        "perfetto_protos_perfetto_config_inode_file_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_inode_file_zero_gen_headers",
+        "perfetto_protos_perfetto_config_interceptors_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_interceptors_zero_gen_headers",
+        "perfetto_protos_perfetto_config_power_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_power_zero_gen_headers",
+        "perfetto_protos_perfetto_config_process_stats_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_process_stats_zero_gen_headers",
+        "perfetto_protos_perfetto_config_profiling_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_profiling_zero_gen_headers",
+        "perfetto_protos_perfetto_config_sys_stats_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_sys_stats_zero_gen_headers",
+        "perfetto_protos_perfetto_config_track_event_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_track_event_zero_gen_headers",
+        "perfetto_protos_perfetto_config_zero_gen_headers",
+        "perfetto_protos_perfetto_ipc_cpp_gen_headers",
+        "perfetto_protos_perfetto_ipc_ipc_gen_headers",
+        "perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_android_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_filesystem_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_ftrace_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_gpu_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_interned_data_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_minimal_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_non_minimal_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_perfetto_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_power_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_profiling_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_ps_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_sys_stats_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_system_info_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_track_event_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_track_event_zero_gen_headers",
+        "perfetto_src_base_version_gen_h",
+        "perfetto_src_perfetto_cmd_gen_cc_config_descriptor",
+        "perfetto_src_perfetto_cmd_protos_gen_headers",
+    ],
+    defaults: [
+        "perfetto_defaults",
+    ],
+    cflags: [
+        "-DGOOGLE_PROTOBUF_NO_RTTI",
+        "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
+        "-DHAVE_HIDDEN",
+    ],
 }
 
 // GN: //test/cts:perfetto_cts_deps
 cc_library_static {
-  name: "perfetto_cts_deps",
-  srcs: [
-    ":perfetto_include_perfetto_base_base",
-    ":perfetto_include_perfetto_ext_base_base",
-    ":perfetto_include_perfetto_ext_ipc_ipc",
-    ":perfetto_include_perfetto_ext_traced_sys_stats_counters",
-    ":perfetto_include_perfetto_ext_traced_traced",
-    ":perfetto_include_perfetto_ext_tracing_core_core",
-    ":perfetto_include_perfetto_ext_tracing_ipc_ipc",
-    ":perfetto_include_perfetto_protozero_protozero",
-    ":perfetto_include_perfetto_tracing_core_core",
-    ":perfetto_include_perfetto_tracing_core_forward_decls",
-    ":perfetto_include_perfetto_tracing_tracing",
-    ":perfetto_protos_perfetto_common_cpp_gen",
-    ":perfetto_protos_perfetto_common_zero_gen",
-    ":perfetto_protos_perfetto_config_android_cpp_gen",
-    ":perfetto_protos_perfetto_config_android_zero_gen",
-    ":perfetto_protos_perfetto_config_cpp_gen",
-    ":perfetto_protos_perfetto_config_ftrace_cpp_gen",
-    ":perfetto_protos_perfetto_config_ftrace_zero_gen",
-    ":perfetto_protos_perfetto_config_gpu_cpp_gen",
-    ":perfetto_protos_perfetto_config_gpu_zero_gen",
-    ":perfetto_protos_perfetto_config_inode_file_cpp_gen",
-    ":perfetto_protos_perfetto_config_inode_file_zero_gen",
-    ":perfetto_protos_perfetto_config_interceptors_cpp_gen",
-    ":perfetto_protos_perfetto_config_interceptors_zero_gen",
-    ":perfetto_protos_perfetto_config_power_cpp_gen",
-    ":perfetto_protos_perfetto_config_power_zero_gen",
-    ":perfetto_protos_perfetto_config_process_stats_cpp_gen",
-    ":perfetto_protos_perfetto_config_process_stats_zero_gen",
-    ":perfetto_protos_perfetto_config_profiling_cpp_gen",
-    ":perfetto_protos_perfetto_config_profiling_zero_gen",
-    ":perfetto_protos_perfetto_config_sys_stats_cpp_gen",
-    ":perfetto_protos_perfetto_config_sys_stats_zero_gen",
-    ":perfetto_protos_perfetto_config_track_event_cpp_gen",
-    ":perfetto_protos_perfetto_config_track_event_zero_gen",
-    ":perfetto_protos_perfetto_config_zero_gen",
-    ":perfetto_protos_perfetto_ipc_cpp_gen",
-    ":perfetto_protos_perfetto_ipc_ipc_gen",
-    ":perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen",
-    ":perfetto_protos_perfetto_trace_android_cpp_gen",
-    ":perfetto_protos_perfetto_trace_android_zero_gen",
-    ":perfetto_protos_perfetto_trace_chrome_cpp_gen",
-    ":perfetto_protos_perfetto_trace_chrome_zero_gen",
-    ":perfetto_protos_perfetto_trace_filesystem_cpp_gen",
-    ":perfetto_protos_perfetto_trace_filesystem_zero_gen",
-    ":perfetto_protos_perfetto_trace_ftrace_cpp_gen",
-    ":perfetto_protos_perfetto_trace_ftrace_zero_gen",
-    ":perfetto_protos_perfetto_trace_gpu_cpp_gen",
-    ":perfetto_protos_perfetto_trace_gpu_zero_gen",
-    ":perfetto_protos_perfetto_trace_interned_data_cpp_gen",
-    ":perfetto_protos_perfetto_trace_interned_data_zero_gen",
-    ":perfetto_protos_perfetto_trace_minimal_cpp_gen",
-    ":perfetto_protos_perfetto_trace_minimal_zero_gen",
-    ":perfetto_protos_perfetto_trace_non_minimal_cpp_gen",
-    ":perfetto_protos_perfetto_trace_non_minimal_zero_gen",
-    ":perfetto_protos_perfetto_trace_perfetto_cpp_gen",
-    ":perfetto_protos_perfetto_trace_perfetto_zero_gen",
-    ":perfetto_protos_perfetto_trace_power_cpp_gen",
-    ":perfetto_protos_perfetto_trace_power_zero_gen",
-    ":perfetto_protos_perfetto_trace_profiling_cpp_gen",
-    ":perfetto_protos_perfetto_trace_profiling_zero_gen",
-    ":perfetto_protos_perfetto_trace_ps_cpp_gen",
-    ":perfetto_protos_perfetto_trace_ps_zero_gen",
-    ":perfetto_protos_perfetto_trace_sys_stats_cpp_gen",
-    ":perfetto_protos_perfetto_trace_sys_stats_zero_gen",
-    ":perfetto_protos_perfetto_trace_system_info_cpp_gen",
-    ":perfetto_protos_perfetto_trace_system_info_zero_gen",
-    ":perfetto_protos_perfetto_trace_track_event_cpp_gen",
-    ":perfetto_protos_perfetto_trace_track_event_zero_gen",
-    ":perfetto_src_android_internal_headers",
-    ":perfetto_src_android_internal_lazy_library_loader",
-    ":perfetto_src_android_stats_android_stats",
-    ":perfetto_src_android_stats_perfetto_atoms",
-    ":perfetto_src_base_base",
-    ":perfetto_src_base_test_support",
-    ":perfetto_src_base_unix_socket",
-    ":perfetto_src_ipc_client",
-    ":perfetto_src_ipc_common",
-    ":perfetto_src_ipc_host",
-    ":perfetto_src_ipc_perfetto_ipc",
-    ":perfetto_src_kallsyms_kallsyms",
-    ":perfetto_src_protozero_filtering_bytecode_common",
-    ":perfetto_src_protozero_filtering_bytecode_parser",
-    ":perfetto_src_protozero_filtering_message_filter",
-    ":perfetto_src_protozero_protozero",
-    ":perfetto_src_traced_probes_android_log_android_log",
-    ":perfetto_src_traced_probes_common_common",
-    ":perfetto_src_traced_probes_data_source",
-    ":perfetto_src_traced_probes_filesystem_filesystem",
-    ":perfetto_src_traced_probes_ftrace_format_parser_format_parser",
-    ":perfetto_src_traced_probes_ftrace_ftrace",
-    ":perfetto_src_traced_probes_ftrace_ftrace_procfs",
-    ":perfetto_src_traced_probes_initial_display_state_initial_display_state",
-    ":perfetto_src_traced_probes_metatrace_metatrace",
-    ":perfetto_src_traced_probes_packages_list_packages_list",
-    ":perfetto_src_traced_probes_packages_list_packages_list_parser",
-    ":perfetto_src_traced_probes_power_power",
-    ":perfetto_src_traced_probes_probes_src",
-    ":perfetto_src_traced_probes_ps_ps",
-    ":perfetto_src_traced_probes_sys_stats_sys_stats",
-    ":perfetto_src_traced_probes_system_info_system_info",
-    ":perfetto_src_tracing_common",
-    ":perfetto_src_tracing_core_core",
-    ":perfetto_src_tracing_core_service",
-    ":perfetto_src_tracing_ipc_common",
-    ":perfetto_src_tracing_ipc_consumer_consumer",
-    ":perfetto_src_tracing_ipc_producer_producer",
-    ":perfetto_src_tracing_ipc_service_service",
-    ":perfetto_test_end_to_end_integrationtests",
-    ":perfetto_test_test_helper",
-    "test/cts/device_feature_test_cts.cc",
-    "test/cts/end_to_end_integrationtest_cts.cc",
-    "test/cts/heapprofd_java_test_cts.cc",
-    "test/cts/heapprofd_test_cts.cc",
-    "test/cts/traced_perf_test_cts.cc",
-  ],
-  static_libs: [
-    "libgmock",
-    "libgtest",
-    "libperfetto_client_experimental",
-  ],
-  whole_static_libs: [
-    "perfetto_gtest_logcat_printer",
-  ],
-  generated_headers: [
-    "perfetto_protos_perfetto_common_cpp_gen_headers",
-    "perfetto_protos_perfetto_common_zero_gen_headers",
-    "perfetto_protos_perfetto_config_android_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_android_zero_gen_headers",
-    "perfetto_protos_perfetto_config_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_ftrace_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_ftrace_zero_gen_headers",
-    "perfetto_protos_perfetto_config_gpu_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_gpu_zero_gen_headers",
-    "perfetto_protos_perfetto_config_inode_file_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_inode_file_zero_gen_headers",
-    "perfetto_protos_perfetto_config_interceptors_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_interceptors_zero_gen_headers",
-    "perfetto_protos_perfetto_config_power_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_power_zero_gen_headers",
-    "perfetto_protos_perfetto_config_process_stats_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_process_stats_zero_gen_headers",
-    "perfetto_protos_perfetto_config_profiling_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_profiling_zero_gen_headers",
-    "perfetto_protos_perfetto_config_sys_stats_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_sys_stats_zero_gen_headers",
-    "perfetto_protos_perfetto_config_track_event_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_track_event_zero_gen_headers",
-    "perfetto_protos_perfetto_config_zero_gen_headers",
-    "perfetto_protos_perfetto_ipc_cpp_gen_headers",
-    "perfetto_protos_perfetto_ipc_ipc_gen_headers",
-    "perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_android_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_android_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_chrome_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_filesystem_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_filesystem_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_ftrace_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_ftrace_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_gpu_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_gpu_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_interned_data_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_interned_data_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_minimal_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_minimal_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_non_minimal_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_non_minimal_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_perfetto_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_perfetto_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_power_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_power_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_profiling_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_profiling_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_ps_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_ps_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_sys_stats_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_sys_stats_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_system_info_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_system_info_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_track_event_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_track_event_zero_gen_headers",
-    "perfetto_src_base_version_gen_h",
-  ],
-  export_generated_headers: [
-    "perfetto_protos_perfetto_common_cpp_gen_headers",
-    "perfetto_protos_perfetto_common_zero_gen_headers",
-    "perfetto_protos_perfetto_config_android_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_android_zero_gen_headers",
-    "perfetto_protos_perfetto_config_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_ftrace_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_ftrace_zero_gen_headers",
-    "perfetto_protos_perfetto_config_gpu_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_gpu_zero_gen_headers",
-    "perfetto_protos_perfetto_config_inode_file_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_inode_file_zero_gen_headers",
-    "perfetto_protos_perfetto_config_interceptors_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_interceptors_zero_gen_headers",
-    "perfetto_protos_perfetto_config_power_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_power_zero_gen_headers",
-    "perfetto_protos_perfetto_config_process_stats_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_process_stats_zero_gen_headers",
-    "perfetto_protos_perfetto_config_profiling_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_profiling_zero_gen_headers",
-    "perfetto_protos_perfetto_config_sys_stats_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_sys_stats_zero_gen_headers",
-    "perfetto_protos_perfetto_config_track_event_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_track_event_zero_gen_headers",
-    "perfetto_protos_perfetto_config_zero_gen_headers",
-    "perfetto_protos_perfetto_ipc_cpp_gen_headers",
-    "perfetto_protos_perfetto_ipc_ipc_gen_headers",
-    "perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_android_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_android_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_chrome_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_filesystem_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_filesystem_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_ftrace_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_ftrace_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_gpu_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_gpu_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_interned_data_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_interned_data_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_minimal_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_minimal_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_non_minimal_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_non_minimal_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_perfetto_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_perfetto_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_power_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_power_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_profiling_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_profiling_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_ps_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_ps_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_sys_stats_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_sys_stats_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_system_info_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_system_info_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_track_event_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_track_event_zero_gen_headers",
-    "perfetto_src_base_version_gen_h",
-  ],
-  defaults: [
-    "perfetto_defaults",
-  ],
-  cflags: [
-    "-DGOOGLE_PROTOBUF_NO_RTTI",
-    "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
-  ],
+    name: "perfetto_cts_deps",
+    srcs: [
+        ":perfetto_include_perfetto_base_base",
+        ":perfetto_include_perfetto_ext_base_base",
+        ":perfetto_include_perfetto_ext_ipc_ipc",
+        ":perfetto_include_perfetto_ext_traced_sys_stats_counters",
+        ":perfetto_include_perfetto_ext_traced_traced",
+        ":perfetto_include_perfetto_ext_tracing_core_core",
+        ":perfetto_include_perfetto_ext_tracing_ipc_ipc",
+        ":perfetto_include_perfetto_protozero_protozero",
+        ":perfetto_include_perfetto_tracing_core_core",
+        ":perfetto_include_perfetto_tracing_core_forward_decls",
+        ":perfetto_include_perfetto_tracing_tracing",
+        ":perfetto_protos_perfetto_common_cpp_gen",
+        ":perfetto_protos_perfetto_common_zero_gen",
+        ":perfetto_protos_perfetto_config_android_cpp_gen",
+        ":perfetto_protos_perfetto_config_android_zero_gen",
+        ":perfetto_protos_perfetto_config_cpp_gen",
+        ":perfetto_protos_perfetto_config_ftrace_cpp_gen",
+        ":perfetto_protos_perfetto_config_ftrace_zero_gen",
+        ":perfetto_protos_perfetto_config_gpu_cpp_gen",
+        ":perfetto_protos_perfetto_config_gpu_zero_gen",
+        ":perfetto_protos_perfetto_config_inode_file_cpp_gen",
+        ":perfetto_protos_perfetto_config_inode_file_zero_gen",
+        ":perfetto_protos_perfetto_config_interceptors_cpp_gen",
+        ":perfetto_protos_perfetto_config_interceptors_zero_gen",
+        ":perfetto_protos_perfetto_config_power_cpp_gen",
+        ":perfetto_protos_perfetto_config_power_zero_gen",
+        ":perfetto_protos_perfetto_config_process_stats_cpp_gen",
+        ":perfetto_protos_perfetto_config_process_stats_zero_gen",
+        ":perfetto_protos_perfetto_config_profiling_cpp_gen",
+        ":perfetto_protos_perfetto_config_profiling_zero_gen",
+        ":perfetto_protos_perfetto_config_sys_stats_cpp_gen",
+        ":perfetto_protos_perfetto_config_sys_stats_zero_gen",
+        ":perfetto_protos_perfetto_config_track_event_cpp_gen",
+        ":perfetto_protos_perfetto_config_track_event_zero_gen",
+        ":perfetto_protos_perfetto_config_zero_gen",
+        ":perfetto_protos_perfetto_ipc_cpp_gen",
+        ":perfetto_protos_perfetto_ipc_ipc_gen",
+        ":perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen",
+        ":perfetto_protos_perfetto_trace_android_cpp_gen",
+        ":perfetto_protos_perfetto_trace_android_zero_gen",
+        ":perfetto_protos_perfetto_trace_chrome_cpp_gen",
+        ":perfetto_protos_perfetto_trace_chrome_zero_gen",
+        ":perfetto_protos_perfetto_trace_filesystem_cpp_gen",
+        ":perfetto_protos_perfetto_trace_filesystem_zero_gen",
+        ":perfetto_protos_perfetto_trace_ftrace_cpp_gen",
+        ":perfetto_protos_perfetto_trace_ftrace_zero_gen",
+        ":perfetto_protos_perfetto_trace_gpu_cpp_gen",
+        ":perfetto_protos_perfetto_trace_gpu_zero_gen",
+        ":perfetto_protos_perfetto_trace_interned_data_cpp_gen",
+        ":perfetto_protos_perfetto_trace_interned_data_zero_gen",
+        ":perfetto_protos_perfetto_trace_minimal_cpp_gen",
+        ":perfetto_protos_perfetto_trace_minimal_zero_gen",
+        ":perfetto_protos_perfetto_trace_non_minimal_cpp_gen",
+        ":perfetto_protos_perfetto_trace_non_minimal_zero_gen",
+        ":perfetto_protos_perfetto_trace_perfetto_cpp_gen",
+        ":perfetto_protos_perfetto_trace_perfetto_zero_gen",
+        ":perfetto_protos_perfetto_trace_power_cpp_gen",
+        ":perfetto_protos_perfetto_trace_power_zero_gen",
+        ":perfetto_protos_perfetto_trace_profiling_cpp_gen",
+        ":perfetto_protos_perfetto_trace_profiling_zero_gen",
+        ":perfetto_protos_perfetto_trace_ps_cpp_gen",
+        ":perfetto_protos_perfetto_trace_ps_zero_gen",
+        ":perfetto_protos_perfetto_trace_sys_stats_cpp_gen",
+        ":perfetto_protos_perfetto_trace_sys_stats_zero_gen",
+        ":perfetto_protos_perfetto_trace_system_info_cpp_gen",
+        ":perfetto_protos_perfetto_trace_system_info_zero_gen",
+        ":perfetto_protos_perfetto_trace_track_event_cpp_gen",
+        ":perfetto_protos_perfetto_trace_track_event_zero_gen",
+        ":perfetto_src_android_internal_headers",
+        ":perfetto_src_android_internal_lazy_library_loader",
+        ":perfetto_src_android_stats_android_stats",
+        ":perfetto_src_android_stats_perfetto_atoms",
+        ":perfetto_src_base_base",
+        ":perfetto_src_base_test_support",
+        ":perfetto_src_base_unix_socket",
+        ":perfetto_src_ipc_client",
+        ":perfetto_src_ipc_common",
+        ":perfetto_src_ipc_host",
+        ":perfetto_src_ipc_perfetto_ipc",
+        ":perfetto_src_kallsyms_kallsyms",
+        ":perfetto_src_protozero_filtering_bytecode_common",
+        ":perfetto_src_protozero_filtering_bytecode_generator",
+        ":perfetto_src_protozero_filtering_bytecode_parser",
+        ":perfetto_src_protozero_filtering_message_filter",
+        ":perfetto_src_protozero_protozero",
+        ":perfetto_src_traced_probes_android_log_android_log",
+        ":perfetto_src_traced_probes_common_common",
+        ":perfetto_src_traced_probes_data_source",
+        ":perfetto_src_traced_probes_filesystem_filesystem",
+        ":perfetto_src_traced_probes_ftrace_format_parser_format_parser",
+        ":perfetto_src_traced_probes_ftrace_ftrace",
+        ":perfetto_src_traced_probes_ftrace_ftrace_procfs",
+        ":perfetto_src_traced_probes_initial_display_state_initial_display_state",
+        ":perfetto_src_traced_probes_metatrace_metatrace",
+        ":perfetto_src_traced_probes_packages_list_packages_list",
+        ":perfetto_src_traced_probes_packages_list_packages_list_parser",
+        ":perfetto_src_traced_probes_power_power",
+        ":perfetto_src_traced_probes_probes_src",
+        ":perfetto_src_traced_probes_ps_ps",
+        ":perfetto_src_traced_probes_sys_stats_sys_stats",
+        ":perfetto_src_traced_probes_system_info_system_info",
+        ":perfetto_src_tracing_common",
+        ":perfetto_src_tracing_core_core",
+        ":perfetto_src_tracing_core_service",
+        ":perfetto_src_tracing_ipc_common",
+        ":perfetto_src_tracing_ipc_consumer_consumer",
+        ":perfetto_src_tracing_ipc_producer_producer",
+        ":perfetto_src_tracing_ipc_service_service",
+        ":perfetto_test_end_to_end_integrationtests",
+        ":perfetto_test_test_helper",
+        "test/cts/device_feature_test_cts.cc",
+        "test/cts/end_to_end_integrationtest_cts.cc",
+        "test/cts/heapprofd_java_test_cts.cc",
+        "test/cts/heapprofd_test_cts.cc",
+        "test/cts/traced_perf_test_cts.cc",
+    ],
+    static_libs: [
+        "libgmock",
+        "libgtest",
+        "libperfetto_client_experimental",
+    ],
+    whole_static_libs: [
+        "perfetto_gtest_logcat_printer",
+    ],
+    generated_headers: [
+        "perfetto_protos_perfetto_common_cpp_gen_headers",
+        "perfetto_protos_perfetto_common_zero_gen_headers",
+        "perfetto_protos_perfetto_config_android_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_android_zero_gen_headers",
+        "perfetto_protos_perfetto_config_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_ftrace_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_ftrace_zero_gen_headers",
+        "perfetto_protos_perfetto_config_gpu_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_gpu_zero_gen_headers",
+        "perfetto_protos_perfetto_config_inode_file_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_inode_file_zero_gen_headers",
+        "perfetto_protos_perfetto_config_interceptors_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_interceptors_zero_gen_headers",
+        "perfetto_protos_perfetto_config_power_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_power_zero_gen_headers",
+        "perfetto_protos_perfetto_config_process_stats_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_process_stats_zero_gen_headers",
+        "perfetto_protos_perfetto_config_profiling_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_profiling_zero_gen_headers",
+        "perfetto_protos_perfetto_config_sys_stats_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_sys_stats_zero_gen_headers",
+        "perfetto_protos_perfetto_config_track_event_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_track_event_zero_gen_headers",
+        "perfetto_protos_perfetto_config_zero_gen_headers",
+        "perfetto_protos_perfetto_ipc_cpp_gen_headers",
+        "perfetto_protos_perfetto_ipc_ipc_gen_headers",
+        "perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_android_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_android_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_chrome_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_filesystem_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_filesystem_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_ftrace_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_ftrace_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_gpu_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_gpu_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_interned_data_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_interned_data_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_minimal_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_minimal_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_non_minimal_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_non_minimal_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_perfetto_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_perfetto_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_power_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_power_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_profiling_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_profiling_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_ps_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_ps_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_sys_stats_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_sys_stats_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_system_info_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_system_info_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_track_event_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_track_event_zero_gen_headers",
+        "perfetto_src_base_version_gen_h",
+    ],
+    export_generated_headers: [
+        "perfetto_protos_perfetto_common_cpp_gen_headers",
+        "perfetto_protos_perfetto_common_zero_gen_headers",
+        "perfetto_protos_perfetto_config_android_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_android_zero_gen_headers",
+        "perfetto_protos_perfetto_config_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_ftrace_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_ftrace_zero_gen_headers",
+        "perfetto_protos_perfetto_config_gpu_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_gpu_zero_gen_headers",
+        "perfetto_protos_perfetto_config_inode_file_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_inode_file_zero_gen_headers",
+        "perfetto_protos_perfetto_config_interceptors_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_interceptors_zero_gen_headers",
+        "perfetto_protos_perfetto_config_power_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_power_zero_gen_headers",
+        "perfetto_protos_perfetto_config_process_stats_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_process_stats_zero_gen_headers",
+        "perfetto_protos_perfetto_config_profiling_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_profiling_zero_gen_headers",
+        "perfetto_protos_perfetto_config_sys_stats_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_sys_stats_zero_gen_headers",
+        "perfetto_protos_perfetto_config_track_event_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_track_event_zero_gen_headers",
+        "perfetto_protos_perfetto_config_zero_gen_headers",
+        "perfetto_protos_perfetto_ipc_cpp_gen_headers",
+        "perfetto_protos_perfetto_ipc_ipc_gen_headers",
+        "perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_android_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_android_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_chrome_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_filesystem_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_filesystem_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_ftrace_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_ftrace_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_gpu_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_gpu_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_interned_data_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_interned_data_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_minimal_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_minimal_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_non_minimal_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_non_minimal_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_perfetto_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_perfetto_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_power_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_power_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_profiling_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_profiling_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_ps_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_ps_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_sys_stats_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_sys_stats_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_system_info_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_system_info_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_track_event_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_track_event_zero_gen_headers",
+        "perfetto_src_base_version_gen_h",
+    ],
+    defaults: [
+        "perfetto_defaults",
+    ],
+    cflags: [
+        "-DGOOGLE_PROTOBUF_NO_RTTI",
+        "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
+    ],
 }
 
 // GN: //test/cts:perfetto_cts_jni_deps
 cc_library_static {
-  name: "perfetto_cts_jni_deps",
-  srcs: [
-    ":perfetto_include_perfetto_base_base",
-    ":perfetto_include_perfetto_ext_base_base",
-    ":perfetto_include_perfetto_ext_ipc_ipc",
-    ":perfetto_include_perfetto_ext_traced_sys_stats_counters",
-    ":perfetto_include_perfetto_ext_traced_traced",
-    ":perfetto_include_perfetto_ext_tracing_core_core",
-    ":perfetto_include_perfetto_ext_tracing_ipc_ipc",
-    ":perfetto_include_perfetto_protozero_protozero",
-    ":perfetto_include_perfetto_tracing_core_core",
-    ":perfetto_include_perfetto_tracing_core_forward_decls",
-    ":perfetto_include_perfetto_tracing_tracing",
-    ":perfetto_protos_perfetto_common_cpp_gen",
-    ":perfetto_protos_perfetto_common_zero_gen",
-    ":perfetto_protos_perfetto_config_android_cpp_gen",
-    ":perfetto_protos_perfetto_config_android_zero_gen",
-    ":perfetto_protos_perfetto_config_cpp_gen",
-    ":perfetto_protos_perfetto_config_ftrace_cpp_gen",
-    ":perfetto_protos_perfetto_config_ftrace_zero_gen",
-    ":perfetto_protos_perfetto_config_gpu_cpp_gen",
-    ":perfetto_protos_perfetto_config_gpu_zero_gen",
-    ":perfetto_protos_perfetto_config_inode_file_cpp_gen",
-    ":perfetto_protos_perfetto_config_inode_file_zero_gen",
-    ":perfetto_protos_perfetto_config_interceptors_cpp_gen",
-    ":perfetto_protos_perfetto_config_interceptors_zero_gen",
-    ":perfetto_protos_perfetto_config_power_cpp_gen",
-    ":perfetto_protos_perfetto_config_power_zero_gen",
-    ":perfetto_protos_perfetto_config_process_stats_cpp_gen",
-    ":perfetto_protos_perfetto_config_process_stats_zero_gen",
-    ":perfetto_protos_perfetto_config_profiling_cpp_gen",
-    ":perfetto_protos_perfetto_config_profiling_zero_gen",
-    ":perfetto_protos_perfetto_config_sys_stats_cpp_gen",
-    ":perfetto_protos_perfetto_config_sys_stats_zero_gen",
-    ":perfetto_protos_perfetto_config_track_event_cpp_gen",
-    ":perfetto_protos_perfetto_config_track_event_zero_gen",
-    ":perfetto_protos_perfetto_config_zero_gen",
-    ":perfetto_protos_perfetto_ipc_cpp_gen",
-    ":perfetto_protos_perfetto_ipc_ipc_gen",
-    ":perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen",
-    ":perfetto_protos_perfetto_trace_android_cpp_gen",
-    ":perfetto_protos_perfetto_trace_android_zero_gen",
-    ":perfetto_protos_perfetto_trace_chrome_cpp_gen",
-    ":perfetto_protos_perfetto_trace_chrome_zero_gen",
-    ":perfetto_protos_perfetto_trace_filesystem_cpp_gen",
-    ":perfetto_protos_perfetto_trace_filesystem_zero_gen",
-    ":perfetto_protos_perfetto_trace_ftrace_cpp_gen",
-    ":perfetto_protos_perfetto_trace_ftrace_zero_gen",
-    ":perfetto_protos_perfetto_trace_gpu_cpp_gen",
-    ":perfetto_protos_perfetto_trace_gpu_zero_gen",
-    ":perfetto_protos_perfetto_trace_interned_data_cpp_gen",
-    ":perfetto_protos_perfetto_trace_interned_data_zero_gen",
-    ":perfetto_protos_perfetto_trace_minimal_cpp_gen",
-    ":perfetto_protos_perfetto_trace_minimal_zero_gen",
-    ":perfetto_protos_perfetto_trace_non_minimal_cpp_gen",
-    ":perfetto_protos_perfetto_trace_non_minimal_zero_gen",
-    ":perfetto_protos_perfetto_trace_perfetto_cpp_gen",
-    ":perfetto_protos_perfetto_trace_perfetto_zero_gen",
-    ":perfetto_protos_perfetto_trace_power_cpp_gen",
-    ":perfetto_protos_perfetto_trace_power_zero_gen",
-    ":perfetto_protos_perfetto_trace_profiling_cpp_gen",
-    ":perfetto_protos_perfetto_trace_profiling_zero_gen",
-    ":perfetto_protos_perfetto_trace_ps_cpp_gen",
-    ":perfetto_protos_perfetto_trace_ps_zero_gen",
-    ":perfetto_protos_perfetto_trace_sys_stats_cpp_gen",
-    ":perfetto_protos_perfetto_trace_sys_stats_zero_gen",
-    ":perfetto_protos_perfetto_trace_system_info_cpp_gen",
-    ":perfetto_protos_perfetto_trace_system_info_zero_gen",
-    ":perfetto_protos_perfetto_trace_track_event_cpp_gen",
-    ":perfetto_protos_perfetto_trace_track_event_zero_gen",
-    ":perfetto_src_android_internal_headers",
-    ":perfetto_src_android_internal_lazy_library_loader",
-    ":perfetto_src_android_stats_android_stats",
-    ":perfetto_src_android_stats_perfetto_atoms",
-    ":perfetto_src_base_base",
-    ":perfetto_src_base_test_support",
-    ":perfetto_src_base_unix_socket",
-    ":perfetto_src_ipc_client",
-    ":perfetto_src_ipc_common",
-    ":perfetto_src_ipc_host",
-    ":perfetto_src_ipc_perfetto_ipc",
-    ":perfetto_src_kallsyms_kallsyms",
-    ":perfetto_src_protozero_filtering_bytecode_common",
-    ":perfetto_src_protozero_filtering_bytecode_parser",
-    ":perfetto_src_protozero_filtering_message_filter",
-    ":perfetto_src_protozero_protozero",
-    ":perfetto_src_traced_probes_android_log_android_log",
-    ":perfetto_src_traced_probes_common_common",
-    ":perfetto_src_traced_probes_data_source",
-    ":perfetto_src_traced_probes_filesystem_filesystem",
-    ":perfetto_src_traced_probes_ftrace_format_parser_format_parser",
-    ":perfetto_src_traced_probes_ftrace_ftrace",
-    ":perfetto_src_traced_probes_ftrace_ftrace_procfs",
-    ":perfetto_src_traced_probes_initial_display_state_initial_display_state",
-    ":perfetto_src_traced_probes_metatrace_metatrace",
-    ":perfetto_src_traced_probes_packages_list_packages_list",
-    ":perfetto_src_traced_probes_packages_list_packages_list_parser",
-    ":perfetto_src_traced_probes_power_power",
-    ":perfetto_src_traced_probes_probes_src",
-    ":perfetto_src_traced_probes_ps_ps",
-    ":perfetto_src_traced_probes_sys_stats_sys_stats",
-    ":perfetto_src_traced_probes_system_info_system_info",
-    ":perfetto_src_tracing_common",
-    ":perfetto_src_tracing_core_core",
-    ":perfetto_src_tracing_core_service",
-    ":perfetto_src_tracing_ipc_common",
-    ":perfetto_src_tracing_ipc_consumer_consumer",
-    ":perfetto_src_tracing_ipc_producer_producer",
-    ":perfetto_src_tracing_ipc_service_service",
-    ":perfetto_test_test_helper",
-  ],
-  generated_headers: [
-    "perfetto_protos_perfetto_common_cpp_gen_headers",
-    "perfetto_protos_perfetto_common_zero_gen_headers",
-    "perfetto_protos_perfetto_config_android_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_android_zero_gen_headers",
-    "perfetto_protos_perfetto_config_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_ftrace_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_ftrace_zero_gen_headers",
-    "perfetto_protos_perfetto_config_gpu_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_gpu_zero_gen_headers",
-    "perfetto_protos_perfetto_config_inode_file_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_inode_file_zero_gen_headers",
-    "perfetto_protos_perfetto_config_interceptors_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_interceptors_zero_gen_headers",
-    "perfetto_protos_perfetto_config_power_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_power_zero_gen_headers",
-    "perfetto_protos_perfetto_config_process_stats_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_process_stats_zero_gen_headers",
-    "perfetto_protos_perfetto_config_profiling_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_profiling_zero_gen_headers",
-    "perfetto_protos_perfetto_config_sys_stats_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_sys_stats_zero_gen_headers",
-    "perfetto_protos_perfetto_config_track_event_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_track_event_zero_gen_headers",
-    "perfetto_protos_perfetto_config_zero_gen_headers",
-    "perfetto_protos_perfetto_ipc_cpp_gen_headers",
-    "perfetto_protos_perfetto_ipc_ipc_gen_headers",
-    "perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_android_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_android_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_chrome_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_filesystem_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_filesystem_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_ftrace_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_ftrace_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_gpu_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_gpu_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_interned_data_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_interned_data_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_minimal_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_minimal_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_non_minimal_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_non_minimal_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_perfetto_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_perfetto_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_power_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_power_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_profiling_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_profiling_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_ps_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_ps_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_sys_stats_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_sys_stats_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_system_info_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_system_info_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_track_event_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_track_event_zero_gen_headers",
-    "perfetto_src_base_version_gen_h",
-  ],
-  export_generated_headers: [
-    "perfetto_protos_perfetto_common_cpp_gen_headers",
-    "perfetto_protos_perfetto_common_zero_gen_headers",
-    "perfetto_protos_perfetto_config_android_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_android_zero_gen_headers",
-    "perfetto_protos_perfetto_config_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_ftrace_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_ftrace_zero_gen_headers",
-    "perfetto_protos_perfetto_config_gpu_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_gpu_zero_gen_headers",
-    "perfetto_protos_perfetto_config_inode_file_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_inode_file_zero_gen_headers",
-    "perfetto_protos_perfetto_config_interceptors_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_interceptors_zero_gen_headers",
-    "perfetto_protos_perfetto_config_power_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_power_zero_gen_headers",
-    "perfetto_protos_perfetto_config_process_stats_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_process_stats_zero_gen_headers",
-    "perfetto_protos_perfetto_config_profiling_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_profiling_zero_gen_headers",
-    "perfetto_protos_perfetto_config_sys_stats_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_sys_stats_zero_gen_headers",
-    "perfetto_protos_perfetto_config_track_event_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_track_event_zero_gen_headers",
-    "perfetto_protos_perfetto_config_zero_gen_headers",
-    "perfetto_protos_perfetto_ipc_cpp_gen_headers",
-    "perfetto_protos_perfetto_ipc_ipc_gen_headers",
-    "perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_android_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_android_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_chrome_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_filesystem_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_filesystem_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_ftrace_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_ftrace_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_gpu_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_gpu_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_interned_data_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_interned_data_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_minimal_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_minimal_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_non_minimal_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_non_minimal_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_perfetto_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_perfetto_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_power_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_power_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_profiling_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_profiling_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_ps_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_ps_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_sys_stats_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_sys_stats_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_system_info_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_system_info_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_track_event_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_track_event_zero_gen_headers",
-    "perfetto_src_base_version_gen_h",
-  ],
-  defaults: [
-    "perfetto_defaults",
-  ],
-  cflags: [
-    "-DGOOGLE_PROTOBUF_NO_RTTI",
-    "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
-  ],
+    name: "perfetto_cts_jni_deps",
+    srcs: [
+        ":perfetto_include_perfetto_base_base",
+        ":perfetto_include_perfetto_ext_base_base",
+        ":perfetto_include_perfetto_ext_ipc_ipc",
+        ":perfetto_include_perfetto_ext_traced_sys_stats_counters",
+        ":perfetto_include_perfetto_ext_traced_traced",
+        ":perfetto_include_perfetto_ext_tracing_core_core",
+        ":perfetto_include_perfetto_ext_tracing_ipc_ipc",
+        ":perfetto_include_perfetto_protozero_protozero",
+        ":perfetto_include_perfetto_tracing_core_core",
+        ":perfetto_include_perfetto_tracing_core_forward_decls",
+        ":perfetto_include_perfetto_tracing_tracing",
+        ":perfetto_protos_perfetto_common_cpp_gen",
+        ":perfetto_protos_perfetto_common_zero_gen",
+        ":perfetto_protos_perfetto_config_android_cpp_gen",
+        ":perfetto_protos_perfetto_config_android_zero_gen",
+        ":perfetto_protos_perfetto_config_cpp_gen",
+        ":perfetto_protos_perfetto_config_ftrace_cpp_gen",
+        ":perfetto_protos_perfetto_config_ftrace_zero_gen",
+        ":perfetto_protos_perfetto_config_gpu_cpp_gen",
+        ":perfetto_protos_perfetto_config_gpu_zero_gen",
+        ":perfetto_protos_perfetto_config_inode_file_cpp_gen",
+        ":perfetto_protos_perfetto_config_inode_file_zero_gen",
+        ":perfetto_protos_perfetto_config_interceptors_cpp_gen",
+        ":perfetto_protos_perfetto_config_interceptors_zero_gen",
+        ":perfetto_protos_perfetto_config_power_cpp_gen",
+        ":perfetto_protos_perfetto_config_power_zero_gen",
+        ":perfetto_protos_perfetto_config_process_stats_cpp_gen",
+        ":perfetto_protos_perfetto_config_process_stats_zero_gen",
+        ":perfetto_protos_perfetto_config_profiling_cpp_gen",
+        ":perfetto_protos_perfetto_config_profiling_zero_gen",
+        ":perfetto_protos_perfetto_config_sys_stats_cpp_gen",
+        ":perfetto_protos_perfetto_config_sys_stats_zero_gen",
+        ":perfetto_protos_perfetto_config_track_event_cpp_gen",
+        ":perfetto_protos_perfetto_config_track_event_zero_gen",
+        ":perfetto_protos_perfetto_config_zero_gen",
+        ":perfetto_protos_perfetto_ipc_cpp_gen",
+        ":perfetto_protos_perfetto_ipc_ipc_gen",
+        ":perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen",
+        ":perfetto_protos_perfetto_trace_android_cpp_gen",
+        ":perfetto_protos_perfetto_trace_android_zero_gen",
+        ":perfetto_protos_perfetto_trace_chrome_cpp_gen",
+        ":perfetto_protos_perfetto_trace_chrome_zero_gen",
+        ":perfetto_protos_perfetto_trace_filesystem_cpp_gen",
+        ":perfetto_protos_perfetto_trace_filesystem_zero_gen",
+        ":perfetto_protos_perfetto_trace_ftrace_cpp_gen",
+        ":perfetto_protos_perfetto_trace_ftrace_zero_gen",
+        ":perfetto_protos_perfetto_trace_gpu_cpp_gen",
+        ":perfetto_protos_perfetto_trace_gpu_zero_gen",
+        ":perfetto_protos_perfetto_trace_interned_data_cpp_gen",
+        ":perfetto_protos_perfetto_trace_interned_data_zero_gen",
+        ":perfetto_protos_perfetto_trace_minimal_cpp_gen",
+        ":perfetto_protos_perfetto_trace_minimal_zero_gen",
+        ":perfetto_protos_perfetto_trace_non_minimal_cpp_gen",
+        ":perfetto_protos_perfetto_trace_non_minimal_zero_gen",
+        ":perfetto_protos_perfetto_trace_perfetto_cpp_gen",
+        ":perfetto_protos_perfetto_trace_perfetto_zero_gen",
+        ":perfetto_protos_perfetto_trace_power_cpp_gen",
+        ":perfetto_protos_perfetto_trace_power_zero_gen",
+        ":perfetto_protos_perfetto_trace_profiling_cpp_gen",
+        ":perfetto_protos_perfetto_trace_profiling_zero_gen",
+        ":perfetto_protos_perfetto_trace_ps_cpp_gen",
+        ":perfetto_protos_perfetto_trace_ps_zero_gen",
+        ":perfetto_protos_perfetto_trace_sys_stats_cpp_gen",
+        ":perfetto_protos_perfetto_trace_sys_stats_zero_gen",
+        ":perfetto_protos_perfetto_trace_system_info_cpp_gen",
+        ":perfetto_protos_perfetto_trace_system_info_zero_gen",
+        ":perfetto_protos_perfetto_trace_track_event_cpp_gen",
+        ":perfetto_protos_perfetto_trace_track_event_zero_gen",
+        ":perfetto_src_android_internal_headers",
+        ":perfetto_src_android_internal_lazy_library_loader",
+        ":perfetto_src_android_stats_android_stats",
+        ":perfetto_src_android_stats_perfetto_atoms",
+        ":perfetto_src_base_base",
+        ":perfetto_src_base_test_support",
+        ":perfetto_src_base_unix_socket",
+        ":perfetto_src_ipc_client",
+        ":perfetto_src_ipc_common",
+        ":perfetto_src_ipc_host",
+        ":perfetto_src_ipc_perfetto_ipc",
+        ":perfetto_src_kallsyms_kallsyms",
+        ":perfetto_src_protozero_filtering_bytecode_common",
+        ":perfetto_src_protozero_filtering_bytecode_parser",
+        ":perfetto_src_protozero_filtering_message_filter",
+        ":perfetto_src_protozero_protozero",
+        ":perfetto_src_traced_probes_android_log_android_log",
+        ":perfetto_src_traced_probes_common_common",
+        ":perfetto_src_traced_probes_data_source",
+        ":perfetto_src_traced_probes_filesystem_filesystem",
+        ":perfetto_src_traced_probes_ftrace_format_parser_format_parser",
+        ":perfetto_src_traced_probes_ftrace_ftrace",
+        ":perfetto_src_traced_probes_ftrace_ftrace_procfs",
+        ":perfetto_src_traced_probes_initial_display_state_initial_display_state",
+        ":perfetto_src_traced_probes_metatrace_metatrace",
+        ":perfetto_src_traced_probes_packages_list_packages_list",
+        ":perfetto_src_traced_probes_packages_list_packages_list_parser",
+        ":perfetto_src_traced_probes_power_power",
+        ":perfetto_src_traced_probes_probes_src",
+        ":perfetto_src_traced_probes_ps_ps",
+        ":perfetto_src_traced_probes_sys_stats_sys_stats",
+        ":perfetto_src_traced_probes_system_info_system_info",
+        ":perfetto_src_tracing_common",
+        ":perfetto_src_tracing_core_core",
+        ":perfetto_src_tracing_core_service",
+        ":perfetto_src_tracing_ipc_common",
+        ":perfetto_src_tracing_ipc_consumer_consumer",
+        ":perfetto_src_tracing_ipc_producer_producer",
+        ":perfetto_src_tracing_ipc_service_service",
+        ":perfetto_test_test_helper",
+    ],
+    generated_headers: [
+        "perfetto_protos_perfetto_common_cpp_gen_headers",
+        "perfetto_protos_perfetto_common_zero_gen_headers",
+        "perfetto_protos_perfetto_config_android_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_android_zero_gen_headers",
+        "perfetto_protos_perfetto_config_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_ftrace_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_ftrace_zero_gen_headers",
+        "perfetto_protos_perfetto_config_gpu_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_gpu_zero_gen_headers",
+        "perfetto_protos_perfetto_config_inode_file_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_inode_file_zero_gen_headers",
+        "perfetto_protos_perfetto_config_interceptors_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_interceptors_zero_gen_headers",
+        "perfetto_protos_perfetto_config_power_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_power_zero_gen_headers",
+        "perfetto_protos_perfetto_config_process_stats_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_process_stats_zero_gen_headers",
+        "perfetto_protos_perfetto_config_profiling_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_profiling_zero_gen_headers",
+        "perfetto_protos_perfetto_config_sys_stats_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_sys_stats_zero_gen_headers",
+        "perfetto_protos_perfetto_config_track_event_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_track_event_zero_gen_headers",
+        "perfetto_protos_perfetto_config_zero_gen_headers",
+        "perfetto_protos_perfetto_ipc_cpp_gen_headers",
+        "perfetto_protos_perfetto_ipc_ipc_gen_headers",
+        "perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_android_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_android_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_chrome_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_filesystem_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_filesystem_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_ftrace_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_ftrace_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_gpu_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_gpu_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_interned_data_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_interned_data_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_minimal_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_minimal_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_non_minimal_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_non_minimal_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_perfetto_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_perfetto_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_power_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_power_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_profiling_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_profiling_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_ps_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_ps_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_sys_stats_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_sys_stats_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_system_info_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_system_info_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_track_event_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_track_event_zero_gen_headers",
+        "perfetto_src_base_version_gen_h",
+    ],
+    export_generated_headers: [
+        "perfetto_protos_perfetto_common_cpp_gen_headers",
+        "perfetto_protos_perfetto_common_zero_gen_headers",
+        "perfetto_protos_perfetto_config_android_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_android_zero_gen_headers",
+        "perfetto_protos_perfetto_config_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_ftrace_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_ftrace_zero_gen_headers",
+        "perfetto_protos_perfetto_config_gpu_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_gpu_zero_gen_headers",
+        "perfetto_protos_perfetto_config_inode_file_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_inode_file_zero_gen_headers",
+        "perfetto_protos_perfetto_config_interceptors_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_interceptors_zero_gen_headers",
+        "perfetto_protos_perfetto_config_power_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_power_zero_gen_headers",
+        "perfetto_protos_perfetto_config_process_stats_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_process_stats_zero_gen_headers",
+        "perfetto_protos_perfetto_config_profiling_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_profiling_zero_gen_headers",
+        "perfetto_protos_perfetto_config_sys_stats_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_sys_stats_zero_gen_headers",
+        "perfetto_protos_perfetto_config_track_event_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_track_event_zero_gen_headers",
+        "perfetto_protos_perfetto_config_zero_gen_headers",
+        "perfetto_protos_perfetto_ipc_cpp_gen_headers",
+        "perfetto_protos_perfetto_ipc_ipc_gen_headers",
+        "perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_android_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_android_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_chrome_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_filesystem_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_filesystem_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_ftrace_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_ftrace_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_gpu_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_gpu_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_interned_data_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_interned_data_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_minimal_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_minimal_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_non_minimal_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_non_minimal_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_perfetto_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_perfetto_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_power_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_power_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_profiling_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_profiling_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_ps_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_ps_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_sys_stats_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_sys_stats_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_system_info_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_system_info_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_track_event_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_track_event_zero_gen_headers",
+        "perfetto_src_base_version_gen_h",
+    ],
+    defaults: [
+        "perfetto_defaults",
+    ],
+    cflags: [
+        "-DGOOGLE_PROTOBUF_NO_RTTI",
+        "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
+    ],
 }
 
 // GN: //gn:default_deps
 cc_defaults {
-  name: "perfetto_defaults",
-  cflags: [
-    "-O2",
-    "-Wno-error=return-type",
-    "-Wno-sign-compare",
-    "-Wno-sign-promo",
-    "-Wno-unused-parameter",
-    "-fvisibility=hidden",
-  ],
-  include_dirs: [
-    "external/perfetto",
-    "external/perfetto/include",
-    "external/perfetto/include/perfetto/base/build_configs/android_tree",
-    "external/perfetto/src/profiling/memory/include",
-  ],
-  product_variables: {
-    debuggable: {
-      cflags: ["-DPERFETTO_BUILD_WITH_ANDROID_USERDEBUG"],
+    name: "perfetto_defaults",
+    cflags: [
+        "-O2",
+        "-Wno-error=return-type",
+        "-Wno-sign-compare",
+        "-Wno-sign-promo",
+        "-Wno-unused-parameter",
+        "-fvisibility=hidden",
+    ],
+    include_dirs: [
+        "external/perfetto",
+        "external/perfetto/include",
+        "external/perfetto/include/perfetto/base/build_configs/android_tree",
+        "external/perfetto/src/profiling/memory/include",
+    ],
+    product_variables: {
+        debuggable: {
+            cflags: ["-DPERFETTO_BUILD_WITH_ANDROID_USERDEBUG"],
+        },
     },
-  },
-  target: {
-    android: {
-      lto: {
-        thin: true,
-      },
+    target: {
+        android: {
+            lto: {
+                thin: true,
+            },
+        },
     },
-  },
 }
 
 // GN: //test:perfetto_gtest_logcat_printer
 cc_library_static {
-  name: "perfetto_gtest_logcat_printer",
-  srcs: [
-    "test/gtest_logcat_printer.cc",
-  ],
-  static_libs: [
-    "libgmock",
-    "libgtest",
-  ],
-  defaults: [
-    "perfetto_defaults",
-  ],
+    name: "perfetto_gtest_logcat_printer",
+    srcs: [
+        "test/gtest_logcat_printer.cc",
+    ],
+    static_libs: [
+        "libgmock",
+        "libgtest",
+    ],
+    defaults: [
+        "perfetto_defaults",
+    ],
 }
 
 // GN: //include/perfetto/base:base
 filegroup {
-  name: "perfetto_include_perfetto_base_base",
+    name: "perfetto_include_perfetto_base_base",
 }
 
 // GN: //include/perfetto/ext/base:base
 filegroup {
-  name: "perfetto_include_perfetto_ext_base_base",
+    name: "perfetto_include_perfetto_ext_base_base",
 }
 
 // GN: //include/perfetto/ext/ipc:ipc
 filegroup {
-  name: "perfetto_include_perfetto_ext_ipc_ipc",
+    name: "perfetto_include_perfetto_ext_ipc_ipc",
 }
 
 // GN: //include/perfetto/ext/trace_processor:export_json
 filegroup {
-  name: "perfetto_include_perfetto_ext_trace_processor_export_json",
+    name: "perfetto_include_perfetto_ext_trace_processor_export_json",
 }
 
 // GN: //include/perfetto/ext/trace_processor/importers/memory_tracker:memory_tracker
 filegroup {
-  name: "perfetto_include_perfetto_ext_trace_processor_importers_memory_tracker_memory_tracker",
+    name: "perfetto_include_perfetto_ext_trace_processor_importers_memory_tracker_memory_tracker",
 }
 
 // GN: //include/perfetto/ext/traced:sys_stats_counters
 filegroup {
-  name: "perfetto_include_perfetto_ext_traced_sys_stats_counters",
+    name: "perfetto_include_perfetto_ext_traced_sys_stats_counters",
 }
 
 // GN: //include/perfetto/ext/traced:traced
 filegroup {
-  name: "perfetto_include_perfetto_ext_traced_traced",
+    name: "perfetto_include_perfetto_ext_traced_traced",
 }
 
 // GN: //include/perfetto/ext/tracing/core:core
 filegroup {
-  name: "perfetto_include_perfetto_ext_tracing_core_core",
+    name: "perfetto_include_perfetto_ext_tracing_core_core",
 }
 
 // GN: //include/perfetto/ext/tracing/ipc:ipc
 filegroup {
-  name: "perfetto_include_perfetto_ext_tracing_ipc_ipc",
+    name: "perfetto_include_perfetto_ext_tracing_ipc_ipc",
 }
 
 // GN: //include/perfetto/profiling:normalize
 filegroup {
-  name: "perfetto_include_perfetto_profiling_normalize",
+    name: "perfetto_include_perfetto_profiling_normalize",
 }
 
 // GN: //include/perfetto/profiling:pprof_builder
 filegroup {
-  name: "perfetto_include_perfetto_profiling_pprof_builder",
+    name: "perfetto_include_perfetto_profiling_pprof_builder",
 }
 
 // GN: //include/perfetto/protozero:protozero
 filegroup {
-  name: "perfetto_include_perfetto_protozero_protozero",
+    name: "perfetto_include_perfetto_protozero_protozero",
 }
 
 // GN: //include/perfetto/public:public
 filegroup {
-  name: "perfetto_include_perfetto_public_public",
+    name: "perfetto_include_perfetto_public_public",
 }
 
 // GN: //include/perfetto/test:test_support
 filegroup {
-  name: "perfetto_include_perfetto_test_test_support",
+    name: "perfetto_include_perfetto_test_test_support",
 }
 
 // GN: //include/perfetto/trace_processor:basic_types
 filegroup {
-  name: "perfetto_include_perfetto_trace_processor_basic_types",
+    name: "perfetto_include_perfetto_trace_processor_basic_types",
 }
 
 // GN: //include/perfetto/trace_processor:storage
 filegroup {
-  name: "perfetto_include_perfetto_trace_processor_storage",
+    name: "perfetto_include_perfetto_trace_processor_storage",
 }
 
 // GN: //include/perfetto/trace_processor:trace_processor
 filegroup {
-  name: "perfetto_include_perfetto_trace_processor_trace_processor",
+    name: "perfetto_include_perfetto_trace_processor_trace_processor",
 }
 
 // GN: //include/perfetto/tracing/core:core
 filegroup {
-  name: "perfetto_include_perfetto_tracing_core_core",
+    name: "perfetto_include_perfetto_tracing_core_core",
 }
 
 // GN: //include/perfetto/tracing/core:forward_decls
 filegroup {
-  name: "perfetto_include_perfetto_tracing_core_forward_decls",
+    name: "perfetto_include_perfetto_tracing_core_forward_decls",
 }
 
 // GN: //include/perfetto/tracing:tracing
 filegroup {
-  name: "perfetto_include_perfetto_tracing_tracing",
+    name: "perfetto_include_perfetto_tracing_tracing",
 }
 
 // GN: //:perfetto_integrationtests
 cc_test {
-  name: "perfetto_integrationtests",
-  srcs: [
-    ":perfetto_include_perfetto_base_base",
-    ":perfetto_include_perfetto_ext_base_base",
-    ":perfetto_include_perfetto_ext_ipc_ipc",
-    ":perfetto_include_perfetto_ext_trace_processor_export_json",
-    ":perfetto_include_perfetto_ext_trace_processor_importers_memory_tracker_memory_tracker",
-    ":perfetto_include_perfetto_ext_traced_sys_stats_counters",
-    ":perfetto_include_perfetto_ext_traced_traced",
-    ":perfetto_include_perfetto_ext_tracing_core_core",
-    ":perfetto_include_perfetto_ext_tracing_ipc_ipc",
-    ":perfetto_include_perfetto_profiling_normalize",
-    ":perfetto_include_perfetto_protozero_protozero",
-    ":perfetto_include_perfetto_trace_processor_basic_types",
-    ":perfetto_include_perfetto_trace_processor_storage",
-    ":perfetto_include_perfetto_trace_processor_trace_processor",
-    ":perfetto_include_perfetto_tracing_core_core",
-    ":perfetto_include_perfetto_tracing_core_forward_decls",
-    ":perfetto_include_perfetto_tracing_tracing",
-    ":perfetto_protos_perfetto_common_cpp_gen",
-    ":perfetto_protos_perfetto_common_zero_gen",
-    ":perfetto_protos_perfetto_config_android_cpp_gen",
-    ":perfetto_protos_perfetto_config_android_zero_gen",
-    ":perfetto_protos_perfetto_config_cpp_gen",
-    ":perfetto_protos_perfetto_config_ftrace_cpp_gen",
-    ":perfetto_protos_perfetto_config_ftrace_zero_gen",
-    ":perfetto_protos_perfetto_config_gpu_cpp_gen",
-    ":perfetto_protos_perfetto_config_gpu_zero_gen",
-    ":perfetto_protos_perfetto_config_inode_file_cpp_gen",
-    ":perfetto_protos_perfetto_config_inode_file_zero_gen",
-    ":perfetto_protos_perfetto_config_interceptors_cpp_gen",
-    ":perfetto_protos_perfetto_config_interceptors_zero_gen",
-    ":perfetto_protos_perfetto_config_power_cpp_gen",
-    ":perfetto_protos_perfetto_config_power_zero_gen",
-    ":perfetto_protos_perfetto_config_process_stats_cpp_gen",
-    ":perfetto_protos_perfetto_config_process_stats_zero_gen",
-    ":perfetto_protos_perfetto_config_profiling_cpp_gen",
-    ":perfetto_protos_perfetto_config_profiling_zero_gen",
-    ":perfetto_protos_perfetto_config_sys_stats_cpp_gen",
-    ":perfetto_protos_perfetto_config_sys_stats_zero_gen",
-    ":perfetto_protos_perfetto_config_track_event_cpp_gen",
-    ":perfetto_protos_perfetto_config_track_event_zero_gen",
-    ":perfetto_protos_perfetto_config_zero_gen",
-    ":perfetto_protos_perfetto_ipc_cpp_gen",
-    ":perfetto_protos_perfetto_ipc_ipc_gen",
-    ":perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen",
-    ":perfetto_protos_perfetto_trace_android_cpp_gen",
-    ":perfetto_protos_perfetto_trace_android_zero_gen",
-    ":perfetto_protos_perfetto_trace_chrome_cpp_gen",
-    ":perfetto_protos_perfetto_trace_chrome_zero_gen",
-    ":perfetto_protos_perfetto_trace_filesystem_cpp_gen",
-    ":perfetto_protos_perfetto_trace_filesystem_zero_gen",
-    ":perfetto_protos_perfetto_trace_ftrace_cpp_gen",
-    ":perfetto_protos_perfetto_trace_ftrace_zero_gen",
-    ":perfetto_protos_perfetto_trace_gpu_cpp_gen",
-    ":perfetto_protos_perfetto_trace_gpu_zero_gen",
-    ":perfetto_protos_perfetto_trace_interned_data_cpp_gen",
-    ":perfetto_protos_perfetto_trace_interned_data_zero_gen",
-    ":perfetto_protos_perfetto_trace_minimal_cpp_gen",
-    ":perfetto_protos_perfetto_trace_minimal_zero_gen",
-    ":perfetto_protos_perfetto_trace_non_minimal_cpp_gen",
-    ":perfetto_protos_perfetto_trace_non_minimal_zero_gen",
-    ":perfetto_protos_perfetto_trace_perfetto_cpp_gen",
-    ":perfetto_protos_perfetto_trace_perfetto_zero_gen",
-    ":perfetto_protos_perfetto_trace_power_cpp_gen",
-    ":perfetto_protos_perfetto_trace_power_zero_gen",
-    ":perfetto_protos_perfetto_trace_processor_metrics_impl_zero_gen",
-    ":perfetto_protos_perfetto_trace_processor_zero_gen",
-    ":perfetto_protos_perfetto_trace_profiling_cpp_gen",
-    ":perfetto_protos_perfetto_trace_profiling_zero_gen",
-    ":perfetto_protos_perfetto_trace_ps_cpp_gen",
-    ":perfetto_protos_perfetto_trace_ps_zero_gen",
-    ":perfetto_protos_perfetto_trace_sys_stats_cpp_gen",
-    ":perfetto_protos_perfetto_trace_sys_stats_zero_gen",
-    ":perfetto_protos_perfetto_trace_system_info_cpp_gen",
-    ":perfetto_protos_perfetto_trace_system_info_zero_gen",
-    ":perfetto_protos_perfetto_trace_track_event_cpp_gen",
-    ":perfetto_protos_perfetto_trace_track_event_zero_gen",
-    ":perfetto_src_android_internal_headers",
-    ":perfetto_src_android_internal_lazy_library_loader",
-    ":perfetto_src_android_stats_android_stats",
-    ":perfetto_src_android_stats_perfetto_atoms",
-    ":perfetto_src_base_base",
-    ":perfetto_src_base_test_support",
-    ":perfetto_src_base_unix_socket",
-    ":perfetto_src_ipc_client",
-    ":perfetto_src_ipc_common",
-    ":perfetto_src_ipc_host",
-    ":perfetto_src_ipc_perfetto_ipc",
-    ":perfetto_src_kallsyms_kallsyms",
-    ":perfetto_src_profiling_common_callstack_trie",
-    ":perfetto_src_profiling_common_interner",
-    ":perfetto_src_profiling_common_interning_output",
-    ":perfetto_src_profiling_common_proc_utils",
-    ":perfetto_src_profiling_common_producer_support",
-    ":perfetto_src_profiling_common_profiler_guardrails",
-    ":perfetto_src_profiling_common_unwind_support",
-    ":perfetto_src_profiling_memory_client",
-    ":perfetto_src_profiling_memory_daemon",
-    ":perfetto_src_profiling_memory_end_to_end_tests",
-    ":perfetto_src_profiling_memory_ring_buffer",
-    ":perfetto_src_profiling_memory_scoped_spinlock",
-    ":perfetto_src_profiling_memory_wire_protocol",
-    ":perfetto_src_protozero_filtering_bytecode_common",
-    ":perfetto_src_protozero_filtering_bytecode_parser",
-    ":perfetto_src_protozero_filtering_message_filter",
-    ":perfetto_src_protozero_protozero",
-    ":perfetto_src_trace_processor_analysis_analysis",
-    ":perfetto_src_trace_processor_containers_containers",
-    ":perfetto_src_trace_processor_db_db",
-    ":perfetto_src_trace_processor_export_json",
-    ":perfetto_src_trace_processor_ftrace_descriptors",
-    ":perfetto_src_trace_processor_importers_common_common",
-    ":perfetto_src_trace_processor_importers_memory_tracker_graph_processor",
-    ":perfetto_src_trace_processor_lib",
-    ":perfetto_src_trace_processor_metatrace",
-    ":perfetto_src_trace_processor_metrics_lib",
-    ":perfetto_src_trace_processor_sqlite_sqlite",
-    ":perfetto_src_trace_processor_storage_full",
-    ":perfetto_src_trace_processor_storage_minimal",
-    ":perfetto_src_trace_processor_storage_storage",
-    ":perfetto_src_trace_processor_tables_tables",
-    ":perfetto_src_trace_processor_types_types",
-    ":perfetto_src_trace_processor_util_descriptors",
-    ":perfetto_src_trace_processor_util_gzip",
-    ":perfetto_src_trace_processor_util_interned_message_view",
-    ":perfetto_src_trace_processor_util_proto_to_args_parser",
-    ":perfetto_src_trace_processor_util_protozero_to_text",
-    ":perfetto_src_trace_processor_util_trace_blob_view",
-    ":perfetto_src_trace_processor_util_util",
-    ":perfetto_src_traced_probes_android_log_android_log",
-    ":perfetto_src_traced_probes_common_common",
-    ":perfetto_src_traced_probes_data_source",
-    ":perfetto_src_traced_probes_filesystem_filesystem",
-    ":perfetto_src_traced_probes_ftrace_format_parser_format_parser",
-    ":perfetto_src_traced_probes_ftrace_ftrace",
-    ":perfetto_src_traced_probes_ftrace_ftrace_procfs",
-    ":perfetto_src_traced_probes_ftrace_integrationtests",
-    ":perfetto_src_traced_probes_ftrace_test_support",
-    ":perfetto_src_traced_probes_initial_display_state_initial_display_state",
-    ":perfetto_src_traced_probes_metatrace_metatrace",
-    ":perfetto_src_traced_probes_packages_list_packages_list",
-    ":perfetto_src_traced_probes_packages_list_packages_list_parser",
-    ":perfetto_src_traced_probes_power_power",
-    ":perfetto_src_traced_probes_probes_src",
-    ":perfetto_src_traced_probes_ps_ps",
-    ":perfetto_src_traced_probes_sys_stats_sys_stats",
-    ":perfetto_src_traced_probes_system_info_system_info",
-    ":perfetto_src_tracing_client_api_without_backends",
-    ":perfetto_src_tracing_common",
-    ":perfetto_src_tracing_core_core",
-    ":perfetto_src_tracing_core_service",
-    ":perfetto_src_tracing_in_process_backend",
-    ":perfetto_src_tracing_ipc_common",
-    ":perfetto_src_tracing_ipc_consumer_consumer",
-    ":perfetto_src_tracing_ipc_producer_producer",
-    ":perfetto_src_tracing_ipc_service_service",
-    ":perfetto_src_tracing_platform_impl",
-    ":perfetto_src_tracing_system_backend",
-    ":perfetto_src_tracing_test_api_test_support",
-    ":perfetto_src_tracing_test_client_api_integrationtests",
-    ":perfetto_test_end_to_end_integrationtests",
-    ":perfetto_test_test_helper",
-  ],
-  shared_libs: [
-    "heapprofd_client_api",
-    "libandroidicu",
-    "libbase",
-    "liblog",
-    "libprocinfo",
-    "libsqlite",
-    "libunwindstack",
-    "libutils",
-    "libz",
-  ],
-  static_libs: [
-    "libgmock",
-    "libgtest",
-    "libperfetto_client_experimental",
-  ],
-  whole_static_libs: [
-    "perfetto_gtest_logcat_printer",
-  ],
-  generated_headers: [
-    "perfetto_protos_perfetto_common_cpp_gen_headers",
-    "perfetto_protos_perfetto_common_zero_gen_headers",
-    "perfetto_protos_perfetto_config_android_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_android_zero_gen_headers",
-    "perfetto_protos_perfetto_config_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_ftrace_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_ftrace_zero_gen_headers",
-    "perfetto_protos_perfetto_config_gpu_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_gpu_zero_gen_headers",
-    "perfetto_protos_perfetto_config_inode_file_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_inode_file_zero_gen_headers",
-    "perfetto_protos_perfetto_config_interceptors_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_interceptors_zero_gen_headers",
-    "perfetto_protos_perfetto_config_power_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_power_zero_gen_headers",
-    "perfetto_protos_perfetto_config_process_stats_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_process_stats_zero_gen_headers",
-    "perfetto_protos_perfetto_config_profiling_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_profiling_zero_gen_headers",
-    "perfetto_protos_perfetto_config_sys_stats_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_sys_stats_zero_gen_headers",
-    "perfetto_protos_perfetto_config_track_event_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_track_event_zero_gen_headers",
-    "perfetto_protos_perfetto_config_zero_gen_headers",
-    "perfetto_protos_perfetto_ipc_cpp_gen_headers",
-    "perfetto_protos_perfetto_ipc_ipc_gen_headers",
-    "perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_android_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_android_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_chrome_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_filesystem_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_filesystem_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_ftrace_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_ftrace_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_gpu_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_gpu_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_interned_data_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_interned_data_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_minimal_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_minimal_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_non_minimal_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_non_minimal_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_perfetto_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_perfetto_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_power_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_power_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_processor_metrics_impl_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_processor_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_profiling_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_profiling_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_ps_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_ps_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_sys_stats_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_sys_stats_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_system_info_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_system_info_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_track_event_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_track_event_zero_gen_headers",
-    "perfetto_src_base_version_gen_h",
-    "perfetto_src_trace_processor_importers_gen_cc_chrome_track_event_descriptor",
-    "perfetto_src_trace_processor_importers_gen_cc_config_descriptor",
-    "perfetto_src_trace_processor_importers_gen_cc_track_event_descriptor",
-    "perfetto_src_trace_processor_metrics_gen_cc_all_chrome_metrics_descriptor",
-    "perfetto_src_trace_processor_metrics_gen_cc_metrics_descriptor",
-    "perfetto_src_trace_processor_metrics_gen_merged_sql_metrics",
-  ],
-  defaults: [
-    "perfetto_defaults",
-  ],
-  cflags: [
-    "-DGOOGLE_PROTOBUF_NO_RTTI",
-    "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
-    "-DHAVE_HIDDEN",
-    "-fno-finite-loops",
-  ],
-  header_libs: [
-    "bionic_libc_platform_headers",
-  ],
-  test_suites: [
-    "general-tests",
-  ],
-  test_config: "PerfettoIntegrationTests.xml",
+    name: "perfetto_integrationtests",
+    srcs: [
+        ":perfetto_include_perfetto_base_base",
+        ":perfetto_include_perfetto_ext_base_base",
+        ":perfetto_include_perfetto_ext_ipc_ipc",
+        ":perfetto_include_perfetto_ext_trace_processor_export_json",
+        ":perfetto_include_perfetto_ext_trace_processor_importers_memory_tracker_memory_tracker",
+        ":perfetto_include_perfetto_ext_traced_sys_stats_counters",
+        ":perfetto_include_perfetto_ext_traced_traced",
+        ":perfetto_include_perfetto_ext_tracing_core_core",
+        ":perfetto_include_perfetto_ext_tracing_ipc_ipc",
+        ":perfetto_include_perfetto_profiling_normalize",
+        ":perfetto_include_perfetto_protozero_protozero",
+        ":perfetto_include_perfetto_trace_processor_basic_types",
+        ":perfetto_include_perfetto_trace_processor_storage",
+        ":perfetto_include_perfetto_trace_processor_trace_processor",
+        ":perfetto_include_perfetto_tracing_core_core",
+        ":perfetto_include_perfetto_tracing_core_forward_decls",
+        ":perfetto_include_perfetto_tracing_tracing",
+        ":perfetto_protos_perfetto_common_cpp_gen",
+        ":perfetto_protos_perfetto_common_zero_gen",
+        ":perfetto_protos_perfetto_config_android_cpp_gen",
+        ":perfetto_protos_perfetto_config_android_zero_gen",
+        ":perfetto_protos_perfetto_config_cpp_gen",
+        ":perfetto_protos_perfetto_config_ftrace_cpp_gen",
+        ":perfetto_protos_perfetto_config_ftrace_zero_gen",
+        ":perfetto_protos_perfetto_config_gpu_cpp_gen",
+        ":perfetto_protos_perfetto_config_gpu_zero_gen",
+        ":perfetto_protos_perfetto_config_inode_file_cpp_gen",
+        ":perfetto_protos_perfetto_config_inode_file_zero_gen",
+        ":perfetto_protos_perfetto_config_interceptors_cpp_gen",
+        ":perfetto_protos_perfetto_config_interceptors_zero_gen",
+        ":perfetto_protos_perfetto_config_power_cpp_gen",
+        ":perfetto_protos_perfetto_config_power_zero_gen",
+        ":perfetto_protos_perfetto_config_process_stats_cpp_gen",
+        ":perfetto_protos_perfetto_config_process_stats_zero_gen",
+        ":perfetto_protos_perfetto_config_profiling_cpp_gen",
+        ":perfetto_protos_perfetto_config_profiling_zero_gen",
+        ":perfetto_protos_perfetto_config_sys_stats_cpp_gen",
+        ":perfetto_protos_perfetto_config_sys_stats_zero_gen",
+        ":perfetto_protos_perfetto_config_track_event_cpp_gen",
+        ":perfetto_protos_perfetto_config_track_event_zero_gen",
+        ":perfetto_protos_perfetto_config_zero_gen",
+        ":perfetto_protos_perfetto_ipc_cpp_gen",
+        ":perfetto_protos_perfetto_ipc_ipc_gen",
+        ":perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen",
+        ":perfetto_protos_perfetto_trace_android_cpp_gen",
+        ":perfetto_protos_perfetto_trace_android_zero_gen",
+        ":perfetto_protos_perfetto_trace_chrome_cpp_gen",
+        ":perfetto_protos_perfetto_trace_chrome_zero_gen",
+        ":perfetto_protos_perfetto_trace_filesystem_cpp_gen",
+        ":perfetto_protos_perfetto_trace_filesystem_zero_gen",
+        ":perfetto_protos_perfetto_trace_ftrace_cpp_gen",
+        ":perfetto_protos_perfetto_trace_ftrace_zero_gen",
+        ":perfetto_protos_perfetto_trace_gpu_cpp_gen",
+        ":perfetto_protos_perfetto_trace_gpu_zero_gen",
+        ":perfetto_protos_perfetto_trace_interned_data_cpp_gen",
+        ":perfetto_protos_perfetto_trace_interned_data_zero_gen",
+        ":perfetto_protos_perfetto_trace_minimal_cpp_gen",
+        ":perfetto_protos_perfetto_trace_minimal_zero_gen",
+        ":perfetto_protos_perfetto_trace_non_minimal_cpp_gen",
+        ":perfetto_protos_perfetto_trace_non_minimal_zero_gen",
+        ":perfetto_protos_perfetto_trace_perfetto_cpp_gen",
+        ":perfetto_protos_perfetto_trace_perfetto_zero_gen",
+        ":perfetto_protos_perfetto_trace_power_cpp_gen",
+        ":perfetto_protos_perfetto_trace_power_zero_gen",
+        ":perfetto_protos_perfetto_trace_processor_metrics_impl_zero_gen",
+        ":perfetto_protos_perfetto_trace_processor_zero_gen",
+        ":perfetto_protos_perfetto_trace_profiling_cpp_gen",
+        ":perfetto_protos_perfetto_trace_profiling_zero_gen",
+        ":perfetto_protos_perfetto_trace_ps_cpp_gen",
+        ":perfetto_protos_perfetto_trace_ps_zero_gen",
+        ":perfetto_protos_perfetto_trace_sys_stats_cpp_gen",
+        ":perfetto_protos_perfetto_trace_sys_stats_zero_gen",
+        ":perfetto_protos_perfetto_trace_system_info_cpp_gen",
+        ":perfetto_protos_perfetto_trace_system_info_zero_gen",
+        ":perfetto_protos_perfetto_trace_track_event_cpp_gen",
+        ":perfetto_protos_perfetto_trace_track_event_zero_gen",
+        ":perfetto_src_android_internal_headers",
+        ":perfetto_src_android_internal_lazy_library_loader",
+        ":perfetto_src_android_stats_android_stats",
+        ":perfetto_src_android_stats_perfetto_atoms",
+        ":perfetto_src_base_base",
+        ":perfetto_src_base_test_support",
+        ":perfetto_src_base_unix_socket",
+        ":perfetto_src_ipc_client",
+        ":perfetto_src_ipc_common",
+        ":perfetto_src_ipc_host",
+        ":perfetto_src_ipc_perfetto_ipc",
+        ":perfetto_src_kallsyms_kallsyms",
+        ":perfetto_src_profiling_common_callstack_trie",
+        ":perfetto_src_profiling_common_interner",
+        ":perfetto_src_profiling_common_interning_output",
+        ":perfetto_src_profiling_common_proc_utils",
+        ":perfetto_src_profiling_common_producer_support",
+        ":perfetto_src_profiling_common_profiler_guardrails",
+        ":perfetto_src_profiling_common_unwind_support",
+        ":perfetto_src_profiling_memory_client",
+        ":perfetto_src_profiling_memory_daemon",
+        ":perfetto_src_profiling_memory_end_to_end_tests",
+        ":perfetto_src_profiling_memory_ring_buffer",
+        ":perfetto_src_profiling_memory_scoped_spinlock",
+        ":perfetto_src_profiling_memory_wire_protocol",
+        ":perfetto_src_protozero_filtering_bytecode_common",
+        ":perfetto_src_protozero_filtering_bytecode_generator",
+        ":perfetto_src_protozero_filtering_bytecode_parser",
+        ":perfetto_src_protozero_filtering_message_filter",
+        ":perfetto_src_protozero_protozero",
+        ":perfetto_src_trace_processor_analysis_analysis",
+        ":perfetto_src_trace_processor_containers_containers",
+        ":perfetto_src_trace_processor_db_db",
+        ":perfetto_src_trace_processor_export_json",
+        ":perfetto_src_trace_processor_ftrace_descriptors",
+        ":perfetto_src_trace_processor_importers_common_common",
+        ":perfetto_src_trace_processor_importers_memory_tracker_graph_processor",
+        ":perfetto_src_trace_processor_lib",
+        ":perfetto_src_trace_processor_metatrace",
+        ":perfetto_src_trace_processor_metrics_lib",
+        ":perfetto_src_trace_processor_sqlite_sqlite",
+        ":perfetto_src_trace_processor_storage_full",
+        ":perfetto_src_trace_processor_storage_minimal",
+        ":perfetto_src_trace_processor_storage_storage",
+        ":perfetto_src_trace_processor_tables_tables",
+        ":perfetto_src_trace_processor_types_types",
+        ":perfetto_src_trace_processor_util_descriptors",
+        ":perfetto_src_trace_processor_util_gzip",
+        ":perfetto_src_trace_processor_util_interned_message_view",
+        ":perfetto_src_trace_processor_util_proto_to_args_parser",
+        ":perfetto_src_trace_processor_util_protozero_to_text",
+        ":perfetto_src_trace_processor_util_trace_blob_view",
+        ":perfetto_src_trace_processor_util_util",
+        ":perfetto_src_traced_probes_android_log_android_log",
+        ":perfetto_src_traced_probes_common_common",
+        ":perfetto_src_traced_probes_data_source",
+        ":perfetto_src_traced_probes_filesystem_filesystem",
+        ":perfetto_src_traced_probes_ftrace_format_parser_format_parser",
+        ":perfetto_src_traced_probes_ftrace_ftrace",
+        ":perfetto_src_traced_probes_ftrace_ftrace_procfs",
+        ":perfetto_src_traced_probes_ftrace_integrationtests",
+        ":perfetto_src_traced_probes_ftrace_test_support",
+        ":perfetto_src_traced_probes_initial_display_state_initial_display_state",
+        ":perfetto_src_traced_probes_metatrace_metatrace",
+        ":perfetto_src_traced_probes_packages_list_packages_list",
+        ":perfetto_src_traced_probes_packages_list_packages_list_parser",
+        ":perfetto_src_traced_probes_power_power",
+        ":perfetto_src_traced_probes_probes_src",
+        ":perfetto_src_traced_probes_ps_ps",
+        ":perfetto_src_traced_probes_sys_stats_sys_stats",
+        ":perfetto_src_traced_probes_system_info_system_info",
+        ":perfetto_src_tracing_client_api_without_backends",
+        ":perfetto_src_tracing_common",
+        ":perfetto_src_tracing_core_core",
+        ":perfetto_src_tracing_core_service",
+        ":perfetto_src_tracing_in_process_backend",
+        ":perfetto_src_tracing_ipc_common",
+        ":perfetto_src_tracing_ipc_consumer_consumer",
+        ":perfetto_src_tracing_ipc_producer_producer",
+        ":perfetto_src_tracing_ipc_service_service",
+        ":perfetto_src_tracing_platform_impl",
+        ":perfetto_src_tracing_system_backend",
+        ":perfetto_src_tracing_test_api_test_support",
+        ":perfetto_src_tracing_test_client_api_integrationtests",
+        ":perfetto_test_end_to_end_integrationtests",
+        ":perfetto_test_test_helper",
+    ],
+    shared_libs: [
+        "heapprofd_client_api",
+        "libandroidicu",
+        "libbase",
+        "liblog",
+        "libprocinfo",
+        "libsqlite",
+        "libunwindstack",
+        "libutils",
+        "libz",
+    ],
+    static_libs: [
+        "libgmock",
+        "libgtest",
+        "libperfetto_client_experimental",
+    ],
+    whole_static_libs: [
+        "perfetto_gtest_logcat_printer",
+    ],
+    generated_headers: [
+        "perfetto_protos_perfetto_common_cpp_gen_headers",
+        "perfetto_protos_perfetto_common_zero_gen_headers",
+        "perfetto_protos_perfetto_config_android_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_android_zero_gen_headers",
+        "perfetto_protos_perfetto_config_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_ftrace_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_ftrace_zero_gen_headers",
+        "perfetto_protos_perfetto_config_gpu_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_gpu_zero_gen_headers",
+        "perfetto_protos_perfetto_config_inode_file_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_inode_file_zero_gen_headers",
+        "perfetto_protos_perfetto_config_interceptors_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_interceptors_zero_gen_headers",
+        "perfetto_protos_perfetto_config_power_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_power_zero_gen_headers",
+        "perfetto_protos_perfetto_config_process_stats_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_process_stats_zero_gen_headers",
+        "perfetto_protos_perfetto_config_profiling_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_profiling_zero_gen_headers",
+        "perfetto_protos_perfetto_config_sys_stats_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_sys_stats_zero_gen_headers",
+        "perfetto_protos_perfetto_config_track_event_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_track_event_zero_gen_headers",
+        "perfetto_protos_perfetto_config_zero_gen_headers",
+        "perfetto_protos_perfetto_ipc_cpp_gen_headers",
+        "perfetto_protos_perfetto_ipc_ipc_gen_headers",
+        "perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_android_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_android_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_chrome_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_filesystem_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_filesystem_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_ftrace_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_ftrace_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_gpu_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_gpu_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_interned_data_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_interned_data_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_minimal_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_minimal_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_non_minimal_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_non_minimal_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_perfetto_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_perfetto_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_power_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_power_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_processor_metrics_impl_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_processor_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_profiling_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_profiling_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_ps_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_ps_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_sys_stats_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_sys_stats_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_system_info_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_system_info_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_track_event_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_track_event_zero_gen_headers",
+        "perfetto_src_base_version_gen_h",
+        "perfetto_src_trace_processor_importers_gen_cc_chrome_track_event_descriptor",
+        "perfetto_src_trace_processor_importers_gen_cc_config_descriptor",
+        "perfetto_src_trace_processor_importers_gen_cc_track_event_descriptor",
+        "perfetto_src_trace_processor_metrics_gen_cc_all_chrome_metrics_descriptor",
+        "perfetto_src_trace_processor_metrics_gen_cc_metrics_descriptor",
+        "perfetto_src_trace_processor_metrics_gen_merged_sql_metrics",
+    ],
+    defaults: [
+        "perfetto_defaults",
+    ],
+    cflags: [
+        "-DGOOGLE_PROTOBUF_NO_RTTI",
+        "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
+        "-DHAVE_HIDDEN",
+        "-fno-finite-loops",
+    ],
+    header_libs: [
+        "bionic_libc_platform_headers",
+    ],
+    test_suites: [
+        "general-tests",
+    ],
+    test_config: "PerfettoIntegrationTests.xml",
 }
 
 // GN: //protos/perfetto/common:cpp
 genrule {
-  name: "perfetto_protos_perfetto_common_cpp_gen",
-  srcs: [
-    "protos/perfetto/common/android_energy_consumer_descriptor.proto",
-    "protos/perfetto/common/android_log_constants.proto",
-    "protos/perfetto/common/builtin_clock.proto",
-    "protos/perfetto/common/commit_data_request.proto",
-    "protos/perfetto/common/data_source_descriptor.proto",
-    "protos/perfetto/common/descriptor.proto",
-    "protos/perfetto/common/gpu_counter_descriptor.proto",
-    "protos/perfetto/common/interceptor_descriptor.proto",
-    "protos/perfetto/common/observable_events.proto",
-    "protos/perfetto/common/perf_events.proto",
-    "protos/perfetto/common/sys_stats_counters.proto",
-    "protos/perfetto/common/trace_stats.proto",
-    "protos/perfetto/common/tracing_service_capabilities.proto",
-    "protos/perfetto/common/tracing_service_state.proto",
-    "protos/perfetto/common/track_event_descriptor.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/common/android_energy_consumer_descriptor.gen.cc",
-    "external/perfetto/protos/perfetto/common/android_log_constants.gen.cc",
-    "external/perfetto/protos/perfetto/common/builtin_clock.gen.cc",
-    "external/perfetto/protos/perfetto/common/commit_data_request.gen.cc",
-    "external/perfetto/protos/perfetto/common/data_source_descriptor.gen.cc",
-    "external/perfetto/protos/perfetto/common/descriptor.gen.cc",
-    "external/perfetto/protos/perfetto/common/gpu_counter_descriptor.gen.cc",
-    "external/perfetto/protos/perfetto/common/interceptor_descriptor.gen.cc",
-    "external/perfetto/protos/perfetto/common/observable_events.gen.cc",
-    "external/perfetto/protos/perfetto/common/perf_events.gen.cc",
-    "external/perfetto/protos/perfetto/common/sys_stats_counters.gen.cc",
-    "external/perfetto/protos/perfetto/common/trace_stats.gen.cc",
-    "external/perfetto/protos/perfetto/common/tracing_service_capabilities.gen.cc",
-    "external/perfetto/protos/perfetto/common/tracing_service_state.gen.cc",
-    "external/perfetto/protos/perfetto/common/track_event_descriptor.gen.cc",
-  ],
+    name: "perfetto_protos_perfetto_common_cpp_gen",
+    srcs: [
+        "protos/perfetto/common/android_energy_consumer_descriptor.proto",
+        "protos/perfetto/common/android_log_constants.proto",
+        "protos/perfetto/common/builtin_clock.proto",
+        "protos/perfetto/common/commit_data_request.proto",
+        "protos/perfetto/common/data_source_descriptor.proto",
+        "protos/perfetto/common/descriptor.proto",
+        "protos/perfetto/common/gpu_counter_descriptor.proto",
+        "protos/perfetto/common/interceptor_descriptor.proto",
+        "protos/perfetto/common/observable_events.proto",
+        "protos/perfetto/common/perf_events.proto",
+        "protos/perfetto/common/sys_stats_counters.proto",
+        "protos/perfetto/common/trace_stats.proto",
+        "protos/perfetto/common/tracing_service_capabilities.proto",
+        "protos/perfetto/common/tracing_service_state.proto",
+        "protos/perfetto/common/track_event_descriptor.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/common/android_energy_consumer_descriptor.gen.cc",
+        "external/perfetto/protos/perfetto/common/android_log_constants.gen.cc",
+        "external/perfetto/protos/perfetto/common/builtin_clock.gen.cc",
+        "external/perfetto/protos/perfetto/common/commit_data_request.gen.cc",
+        "external/perfetto/protos/perfetto/common/data_source_descriptor.gen.cc",
+        "external/perfetto/protos/perfetto/common/descriptor.gen.cc",
+        "external/perfetto/protos/perfetto/common/gpu_counter_descriptor.gen.cc",
+        "external/perfetto/protos/perfetto/common/interceptor_descriptor.gen.cc",
+        "external/perfetto/protos/perfetto/common/observable_events.gen.cc",
+        "external/perfetto/protos/perfetto/common/perf_events.gen.cc",
+        "external/perfetto/protos/perfetto/common/sys_stats_counters.gen.cc",
+        "external/perfetto/protos/perfetto/common/trace_stats.gen.cc",
+        "external/perfetto/protos/perfetto/common/tracing_service_capabilities.gen.cc",
+        "external/perfetto/protos/perfetto/common/tracing_service_state.gen.cc",
+        "external/perfetto/protos/perfetto/common/track_event_descriptor.gen.cc",
+    ],
 }
 
 // GN: //protos/perfetto/common:cpp
 genrule {
-  name: "perfetto_protos_perfetto_common_cpp_gen_headers",
-  srcs: [
-    "protos/perfetto/common/android_energy_consumer_descriptor.proto",
-    "protos/perfetto/common/android_log_constants.proto",
-    "protos/perfetto/common/builtin_clock.proto",
-    "protos/perfetto/common/commit_data_request.proto",
-    "protos/perfetto/common/data_source_descriptor.proto",
-    "protos/perfetto/common/descriptor.proto",
-    "protos/perfetto/common/gpu_counter_descriptor.proto",
-    "protos/perfetto/common/interceptor_descriptor.proto",
-    "protos/perfetto/common/observable_events.proto",
-    "protos/perfetto/common/perf_events.proto",
-    "protos/perfetto/common/sys_stats_counters.proto",
-    "protos/perfetto/common/trace_stats.proto",
-    "protos/perfetto/common/tracing_service_capabilities.proto",
-    "protos/perfetto/common/tracing_service_state.proto",
-    "protos/perfetto/common/track_event_descriptor.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/common/android_energy_consumer_descriptor.gen.h",
-    "external/perfetto/protos/perfetto/common/android_log_constants.gen.h",
-    "external/perfetto/protos/perfetto/common/builtin_clock.gen.h",
-    "external/perfetto/protos/perfetto/common/commit_data_request.gen.h",
-    "external/perfetto/protos/perfetto/common/data_source_descriptor.gen.h",
-    "external/perfetto/protos/perfetto/common/descriptor.gen.h",
-    "external/perfetto/protos/perfetto/common/gpu_counter_descriptor.gen.h",
-    "external/perfetto/protos/perfetto/common/interceptor_descriptor.gen.h",
-    "external/perfetto/protos/perfetto/common/observable_events.gen.h",
-    "external/perfetto/protos/perfetto/common/perf_events.gen.h",
-    "external/perfetto/protos/perfetto/common/sys_stats_counters.gen.h",
-    "external/perfetto/protos/perfetto/common/trace_stats.gen.h",
-    "external/perfetto/protos/perfetto/common/tracing_service_capabilities.gen.h",
-    "external/perfetto/protos/perfetto/common/tracing_service_state.gen.h",
-    "external/perfetto/protos/perfetto/common/track_event_descriptor.gen.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_common_cpp_gen_headers",
+    srcs: [
+        "protos/perfetto/common/android_energy_consumer_descriptor.proto",
+        "protos/perfetto/common/android_log_constants.proto",
+        "protos/perfetto/common/builtin_clock.proto",
+        "protos/perfetto/common/commit_data_request.proto",
+        "protos/perfetto/common/data_source_descriptor.proto",
+        "protos/perfetto/common/descriptor.proto",
+        "protos/perfetto/common/gpu_counter_descriptor.proto",
+        "protos/perfetto/common/interceptor_descriptor.proto",
+        "protos/perfetto/common/observable_events.proto",
+        "protos/perfetto/common/perf_events.proto",
+        "protos/perfetto/common/sys_stats_counters.proto",
+        "protos/perfetto/common/trace_stats.proto",
+        "protos/perfetto/common/tracing_service_capabilities.proto",
+        "protos/perfetto/common/tracing_service_state.proto",
+        "protos/perfetto/common/track_event_descriptor.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/common/android_energy_consumer_descriptor.gen.h",
+        "external/perfetto/protos/perfetto/common/android_log_constants.gen.h",
+        "external/perfetto/protos/perfetto/common/builtin_clock.gen.h",
+        "external/perfetto/protos/perfetto/common/commit_data_request.gen.h",
+        "external/perfetto/protos/perfetto/common/data_source_descriptor.gen.h",
+        "external/perfetto/protos/perfetto/common/descriptor.gen.h",
+        "external/perfetto/protos/perfetto/common/gpu_counter_descriptor.gen.h",
+        "external/perfetto/protos/perfetto/common/interceptor_descriptor.gen.h",
+        "external/perfetto/protos/perfetto/common/observable_events.gen.h",
+        "external/perfetto/protos/perfetto/common/perf_events.gen.h",
+        "external/perfetto/protos/perfetto/common/sys_stats_counters.gen.h",
+        "external/perfetto/protos/perfetto/common/trace_stats.gen.h",
+        "external/perfetto/protos/perfetto/common/tracing_service_capabilities.gen.h",
+        "external/perfetto/protos/perfetto/common/tracing_service_state.gen.h",
+        "external/perfetto/protos/perfetto/common/track_event_descriptor.gen.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/common:lite
 genrule {
-  name: "perfetto_protos_perfetto_common_lite_gen",
-  srcs: [
-    "protos/perfetto/common/android_energy_consumer_descriptor.proto",
-    "protos/perfetto/common/android_log_constants.proto",
-    "protos/perfetto/common/builtin_clock.proto",
-    "protos/perfetto/common/commit_data_request.proto",
-    "protos/perfetto/common/data_source_descriptor.proto",
-    "protos/perfetto/common/descriptor.proto",
-    "protos/perfetto/common/gpu_counter_descriptor.proto",
-    "protos/perfetto/common/interceptor_descriptor.proto",
-    "protos/perfetto/common/observable_events.proto",
-    "protos/perfetto/common/perf_events.proto",
-    "protos/perfetto/common/sys_stats_counters.proto",
-    "protos/perfetto/common/trace_stats.proto",
-    "protos/perfetto/common/tracing_service_capabilities.proto",
-    "protos/perfetto/common/tracing_service_state.proto",
-    "protos/perfetto/common/track_event_descriptor.proto",
-  ],
-  tools: [
-    "aprotoc",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/common/android_energy_consumer_descriptor.pb.cc",
-    "external/perfetto/protos/perfetto/common/android_log_constants.pb.cc",
-    "external/perfetto/protos/perfetto/common/builtin_clock.pb.cc",
-    "external/perfetto/protos/perfetto/common/commit_data_request.pb.cc",
-    "external/perfetto/protos/perfetto/common/data_source_descriptor.pb.cc",
-    "external/perfetto/protos/perfetto/common/descriptor.pb.cc",
-    "external/perfetto/protos/perfetto/common/gpu_counter_descriptor.pb.cc",
-    "external/perfetto/protos/perfetto/common/interceptor_descriptor.pb.cc",
-    "external/perfetto/protos/perfetto/common/observable_events.pb.cc",
-    "external/perfetto/protos/perfetto/common/perf_events.pb.cc",
-    "external/perfetto/protos/perfetto/common/sys_stats_counters.pb.cc",
-    "external/perfetto/protos/perfetto/common/trace_stats.pb.cc",
-    "external/perfetto/protos/perfetto/common/tracing_service_capabilities.pb.cc",
-    "external/perfetto/protos/perfetto/common/tracing_service_state.pb.cc",
-    "external/perfetto/protos/perfetto/common/track_event_descriptor.pb.cc",
-  ],
+    name: "perfetto_protos_perfetto_common_lite_gen",
+    srcs: [
+        "protos/perfetto/common/android_energy_consumer_descriptor.proto",
+        "protos/perfetto/common/android_log_constants.proto",
+        "protos/perfetto/common/builtin_clock.proto",
+        "protos/perfetto/common/commit_data_request.proto",
+        "protos/perfetto/common/data_source_descriptor.proto",
+        "protos/perfetto/common/descriptor.proto",
+        "protos/perfetto/common/gpu_counter_descriptor.proto",
+        "protos/perfetto/common/interceptor_descriptor.proto",
+        "protos/perfetto/common/observable_events.proto",
+        "protos/perfetto/common/perf_events.proto",
+        "protos/perfetto/common/sys_stats_counters.proto",
+        "protos/perfetto/common/trace_stats.proto",
+        "protos/perfetto/common/tracing_service_capabilities.proto",
+        "protos/perfetto/common/tracing_service_state.proto",
+        "protos/perfetto/common/track_event_descriptor.proto",
+    ],
+    tools: [
+        "aprotoc",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/common/android_energy_consumer_descriptor.pb.cc",
+        "external/perfetto/protos/perfetto/common/android_log_constants.pb.cc",
+        "external/perfetto/protos/perfetto/common/builtin_clock.pb.cc",
+        "external/perfetto/protos/perfetto/common/commit_data_request.pb.cc",
+        "external/perfetto/protos/perfetto/common/data_source_descriptor.pb.cc",
+        "external/perfetto/protos/perfetto/common/descriptor.pb.cc",
+        "external/perfetto/protos/perfetto/common/gpu_counter_descriptor.pb.cc",
+        "external/perfetto/protos/perfetto/common/interceptor_descriptor.pb.cc",
+        "external/perfetto/protos/perfetto/common/observable_events.pb.cc",
+        "external/perfetto/protos/perfetto/common/perf_events.pb.cc",
+        "external/perfetto/protos/perfetto/common/sys_stats_counters.pb.cc",
+        "external/perfetto/protos/perfetto/common/trace_stats.pb.cc",
+        "external/perfetto/protos/perfetto/common/tracing_service_capabilities.pb.cc",
+        "external/perfetto/protos/perfetto/common/tracing_service_state.pb.cc",
+        "external/perfetto/protos/perfetto/common/track_event_descriptor.pb.cc",
+    ],
 }
 
 // GN: //protos/perfetto/common:lite
 genrule {
-  name: "perfetto_protos_perfetto_common_lite_gen_headers",
-  srcs: [
-    "protos/perfetto/common/android_energy_consumer_descriptor.proto",
-    "protos/perfetto/common/android_log_constants.proto",
-    "protos/perfetto/common/builtin_clock.proto",
-    "protos/perfetto/common/commit_data_request.proto",
-    "protos/perfetto/common/data_source_descriptor.proto",
-    "protos/perfetto/common/descriptor.proto",
-    "protos/perfetto/common/gpu_counter_descriptor.proto",
-    "protos/perfetto/common/interceptor_descriptor.proto",
-    "protos/perfetto/common/observable_events.proto",
-    "protos/perfetto/common/perf_events.proto",
-    "protos/perfetto/common/sys_stats_counters.proto",
-    "protos/perfetto/common/trace_stats.proto",
-    "protos/perfetto/common/tracing_service_capabilities.proto",
-    "protos/perfetto/common/tracing_service_state.proto",
-    "protos/perfetto/common/track_event_descriptor.proto",
-  ],
-  tools: [
-    "aprotoc",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/common/android_energy_consumer_descriptor.pb.h",
-    "external/perfetto/protos/perfetto/common/android_log_constants.pb.h",
-    "external/perfetto/protos/perfetto/common/builtin_clock.pb.h",
-    "external/perfetto/protos/perfetto/common/commit_data_request.pb.h",
-    "external/perfetto/protos/perfetto/common/data_source_descriptor.pb.h",
-    "external/perfetto/protos/perfetto/common/descriptor.pb.h",
-    "external/perfetto/protos/perfetto/common/gpu_counter_descriptor.pb.h",
-    "external/perfetto/protos/perfetto/common/interceptor_descriptor.pb.h",
-    "external/perfetto/protos/perfetto/common/observable_events.pb.h",
-    "external/perfetto/protos/perfetto/common/perf_events.pb.h",
-    "external/perfetto/protos/perfetto/common/sys_stats_counters.pb.h",
-    "external/perfetto/protos/perfetto/common/trace_stats.pb.h",
-    "external/perfetto/protos/perfetto/common/tracing_service_capabilities.pb.h",
-    "external/perfetto/protos/perfetto/common/tracing_service_state.pb.h",
-    "external/perfetto/protos/perfetto/common/track_event_descriptor.pb.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_common_lite_gen_headers",
+    srcs: [
+        "protos/perfetto/common/android_energy_consumer_descriptor.proto",
+        "protos/perfetto/common/android_log_constants.proto",
+        "protos/perfetto/common/builtin_clock.proto",
+        "protos/perfetto/common/commit_data_request.proto",
+        "protos/perfetto/common/data_source_descriptor.proto",
+        "protos/perfetto/common/descriptor.proto",
+        "protos/perfetto/common/gpu_counter_descriptor.proto",
+        "protos/perfetto/common/interceptor_descriptor.proto",
+        "protos/perfetto/common/observable_events.proto",
+        "protos/perfetto/common/perf_events.proto",
+        "protos/perfetto/common/sys_stats_counters.proto",
+        "protos/perfetto/common/trace_stats.proto",
+        "protos/perfetto/common/tracing_service_capabilities.proto",
+        "protos/perfetto/common/tracing_service_state.proto",
+        "protos/perfetto/common/track_event_descriptor.proto",
+    ],
+    tools: [
+        "aprotoc",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/common/android_energy_consumer_descriptor.pb.h",
+        "external/perfetto/protos/perfetto/common/android_log_constants.pb.h",
+        "external/perfetto/protos/perfetto/common/builtin_clock.pb.h",
+        "external/perfetto/protos/perfetto/common/commit_data_request.pb.h",
+        "external/perfetto/protos/perfetto/common/data_source_descriptor.pb.h",
+        "external/perfetto/protos/perfetto/common/descriptor.pb.h",
+        "external/perfetto/protos/perfetto/common/gpu_counter_descriptor.pb.h",
+        "external/perfetto/protos/perfetto/common/interceptor_descriptor.pb.h",
+        "external/perfetto/protos/perfetto/common/observable_events.pb.h",
+        "external/perfetto/protos/perfetto/common/perf_events.pb.h",
+        "external/perfetto/protos/perfetto/common/sys_stats_counters.pb.h",
+        "external/perfetto/protos/perfetto/common/trace_stats.pb.h",
+        "external/perfetto/protos/perfetto/common/tracing_service_capabilities.pb.h",
+        "external/perfetto/protos/perfetto/common/tracing_service_state.pb.h",
+        "external/perfetto/protos/perfetto/common/track_event_descriptor.pb.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/common:zero
 genrule {
-  name: "perfetto_protos_perfetto_common_zero_gen",
-  srcs: [
-    "protos/perfetto/common/android_energy_consumer_descriptor.proto",
-    "protos/perfetto/common/android_log_constants.proto",
-    "protos/perfetto/common/builtin_clock.proto",
-    "protos/perfetto/common/commit_data_request.proto",
-    "protos/perfetto/common/data_source_descriptor.proto",
-    "protos/perfetto/common/descriptor.proto",
-    "protos/perfetto/common/gpu_counter_descriptor.proto",
-    "protos/perfetto/common/interceptor_descriptor.proto",
-    "protos/perfetto/common/observable_events.proto",
-    "protos/perfetto/common/perf_events.proto",
-    "protos/perfetto/common/sys_stats_counters.proto",
-    "protos/perfetto/common/trace_stats.proto",
-    "protos/perfetto/common/tracing_service_capabilities.proto",
-    "protos/perfetto/common/tracing_service_state.proto",
-    "protos/perfetto/common/track_event_descriptor.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "protozero_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/common/android_energy_consumer_descriptor.pbzero.cc",
-    "external/perfetto/protos/perfetto/common/android_log_constants.pbzero.cc",
-    "external/perfetto/protos/perfetto/common/builtin_clock.pbzero.cc",
-    "external/perfetto/protos/perfetto/common/commit_data_request.pbzero.cc",
-    "external/perfetto/protos/perfetto/common/data_source_descriptor.pbzero.cc",
-    "external/perfetto/protos/perfetto/common/descriptor.pbzero.cc",
-    "external/perfetto/protos/perfetto/common/gpu_counter_descriptor.pbzero.cc",
-    "external/perfetto/protos/perfetto/common/interceptor_descriptor.pbzero.cc",
-    "external/perfetto/protos/perfetto/common/observable_events.pbzero.cc",
-    "external/perfetto/protos/perfetto/common/perf_events.pbzero.cc",
-    "external/perfetto/protos/perfetto/common/sys_stats_counters.pbzero.cc",
-    "external/perfetto/protos/perfetto/common/trace_stats.pbzero.cc",
-    "external/perfetto/protos/perfetto/common/tracing_service_capabilities.pbzero.cc",
-    "external/perfetto/protos/perfetto/common/tracing_service_state.pbzero.cc",
-    "external/perfetto/protos/perfetto/common/track_event_descriptor.pbzero.cc",
-  ],
+    name: "perfetto_protos_perfetto_common_zero_gen",
+    srcs: [
+        "protos/perfetto/common/android_energy_consumer_descriptor.proto",
+        "protos/perfetto/common/android_log_constants.proto",
+        "protos/perfetto/common/builtin_clock.proto",
+        "protos/perfetto/common/commit_data_request.proto",
+        "protos/perfetto/common/data_source_descriptor.proto",
+        "protos/perfetto/common/descriptor.proto",
+        "protos/perfetto/common/gpu_counter_descriptor.proto",
+        "protos/perfetto/common/interceptor_descriptor.proto",
+        "protos/perfetto/common/observable_events.proto",
+        "protos/perfetto/common/perf_events.proto",
+        "protos/perfetto/common/sys_stats_counters.proto",
+        "protos/perfetto/common/trace_stats.proto",
+        "protos/perfetto/common/tracing_service_capabilities.proto",
+        "protos/perfetto/common/tracing_service_state.proto",
+        "protos/perfetto/common/track_event_descriptor.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "protozero_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/common/android_energy_consumer_descriptor.pbzero.cc",
+        "external/perfetto/protos/perfetto/common/android_log_constants.pbzero.cc",
+        "external/perfetto/protos/perfetto/common/builtin_clock.pbzero.cc",
+        "external/perfetto/protos/perfetto/common/commit_data_request.pbzero.cc",
+        "external/perfetto/protos/perfetto/common/data_source_descriptor.pbzero.cc",
+        "external/perfetto/protos/perfetto/common/descriptor.pbzero.cc",
+        "external/perfetto/protos/perfetto/common/gpu_counter_descriptor.pbzero.cc",
+        "external/perfetto/protos/perfetto/common/interceptor_descriptor.pbzero.cc",
+        "external/perfetto/protos/perfetto/common/observable_events.pbzero.cc",
+        "external/perfetto/protos/perfetto/common/perf_events.pbzero.cc",
+        "external/perfetto/protos/perfetto/common/sys_stats_counters.pbzero.cc",
+        "external/perfetto/protos/perfetto/common/trace_stats.pbzero.cc",
+        "external/perfetto/protos/perfetto/common/tracing_service_capabilities.pbzero.cc",
+        "external/perfetto/protos/perfetto/common/tracing_service_state.pbzero.cc",
+        "external/perfetto/protos/perfetto/common/track_event_descriptor.pbzero.cc",
+    ],
 }
 
 // GN: //protos/perfetto/common:zero
 genrule {
-  name: "perfetto_protos_perfetto_common_zero_gen_headers",
-  srcs: [
-    "protos/perfetto/common/android_energy_consumer_descriptor.proto",
-    "protos/perfetto/common/android_log_constants.proto",
-    "protos/perfetto/common/builtin_clock.proto",
-    "protos/perfetto/common/commit_data_request.proto",
-    "protos/perfetto/common/data_source_descriptor.proto",
-    "protos/perfetto/common/descriptor.proto",
-    "protos/perfetto/common/gpu_counter_descriptor.proto",
-    "protos/perfetto/common/interceptor_descriptor.proto",
-    "protos/perfetto/common/observable_events.proto",
-    "protos/perfetto/common/perf_events.proto",
-    "protos/perfetto/common/sys_stats_counters.proto",
-    "protos/perfetto/common/trace_stats.proto",
-    "protos/perfetto/common/tracing_service_capabilities.proto",
-    "protos/perfetto/common/tracing_service_state.proto",
-    "protos/perfetto/common/track_event_descriptor.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "protozero_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/common/android_energy_consumer_descriptor.pbzero.h",
-    "external/perfetto/protos/perfetto/common/android_log_constants.pbzero.h",
-    "external/perfetto/protos/perfetto/common/builtin_clock.pbzero.h",
-    "external/perfetto/protos/perfetto/common/commit_data_request.pbzero.h",
-    "external/perfetto/protos/perfetto/common/data_source_descriptor.pbzero.h",
-    "external/perfetto/protos/perfetto/common/descriptor.pbzero.h",
-    "external/perfetto/protos/perfetto/common/gpu_counter_descriptor.pbzero.h",
-    "external/perfetto/protos/perfetto/common/interceptor_descriptor.pbzero.h",
-    "external/perfetto/protos/perfetto/common/observable_events.pbzero.h",
-    "external/perfetto/protos/perfetto/common/perf_events.pbzero.h",
-    "external/perfetto/protos/perfetto/common/sys_stats_counters.pbzero.h",
-    "external/perfetto/protos/perfetto/common/trace_stats.pbzero.h",
-    "external/perfetto/protos/perfetto/common/tracing_service_capabilities.pbzero.h",
-    "external/perfetto/protos/perfetto/common/tracing_service_state.pbzero.h",
-    "external/perfetto/protos/perfetto/common/track_event_descriptor.pbzero.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_common_zero_gen_headers",
+    srcs: [
+        "protos/perfetto/common/android_energy_consumer_descriptor.proto",
+        "protos/perfetto/common/android_log_constants.proto",
+        "protos/perfetto/common/builtin_clock.proto",
+        "protos/perfetto/common/commit_data_request.proto",
+        "protos/perfetto/common/data_source_descriptor.proto",
+        "protos/perfetto/common/descriptor.proto",
+        "protos/perfetto/common/gpu_counter_descriptor.proto",
+        "protos/perfetto/common/interceptor_descriptor.proto",
+        "protos/perfetto/common/observable_events.proto",
+        "protos/perfetto/common/perf_events.proto",
+        "protos/perfetto/common/sys_stats_counters.proto",
+        "protos/perfetto/common/trace_stats.proto",
+        "protos/perfetto/common/tracing_service_capabilities.proto",
+        "protos/perfetto/common/tracing_service_state.proto",
+        "protos/perfetto/common/track_event_descriptor.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "protozero_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/common/android_energy_consumer_descriptor.pbzero.h",
+        "external/perfetto/protos/perfetto/common/android_log_constants.pbzero.h",
+        "external/perfetto/protos/perfetto/common/builtin_clock.pbzero.h",
+        "external/perfetto/protos/perfetto/common/commit_data_request.pbzero.h",
+        "external/perfetto/protos/perfetto/common/data_source_descriptor.pbzero.h",
+        "external/perfetto/protos/perfetto/common/descriptor.pbzero.h",
+        "external/perfetto/protos/perfetto/common/gpu_counter_descriptor.pbzero.h",
+        "external/perfetto/protos/perfetto/common/interceptor_descriptor.pbzero.h",
+        "external/perfetto/protos/perfetto/common/observable_events.pbzero.h",
+        "external/perfetto/protos/perfetto/common/perf_events.pbzero.h",
+        "external/perfetto/protos/perfetto/common/sys_stats_counters.pbzero.h",
+        "external/perfetto/protos/perfetto/common/trace_stats.pbzero.h",
+        "external/perfetto/protos/perfetto/common/tracing_service_capabilities.pbzero.h",
+        "external/perfetto/protos/perfetto/common/tracing_service_state.pbzero.h",
+        "external/perfetto/protos/perfetto/common/track_event_descriptor.pbzero.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/config/android:cpp
 genrule {
-  name: "perfetto_protos_perfetto_config_android_cpp_gen",
-  srcs: [
-    "protos/perfetto/config/android/android_log_config.proto",
-    "protos/perfetto/config/android/android_polled_state_config.proto",
-    "protos/perfetto/config/android/packages_list_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/config/android/android_log_config.gen.cc",
-    "external/perfetto/protos/perfetto/config/android/android_polled_state_config.gen.cc",
-    "external/perfetto/protos/perfetto/config/android/packages_list_config.gen.cc",
-  ],
+    name: "perfetto_protos_perfetto_config_android_cpp_gen",
+    srcs: [
+        "protos/perfetto/config/android/android_log_config.proto",
+        "protos/perfetto/config/android/android_polled_state_config.proto",
+        "protos/perfetto/config/android/packages_list_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/config/android/android_log_config.gen.cc",
+        "external/perfetto/protos/perfetto/config/android/android_polled_state_config.gen.cc",
+        "external/perfetto/protos/perfetto/config/android/packages_list_config.gen.cc",
+    ],
 }
 
 // GN: //protos/perfetto/config/android:cpp
 genrule {
-  name: "perfetto_protos_perfetto_config_android_cpp_gen_headers",
-  srcs: [
-    "protos/perfetto/config/android/android_log_config.proto",
-    "protos/perfetto/config/android/android_polled_state_config.proto",
-    "protos/perfetto/config/android/packages_list_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/config/android/android_log_config.gen.h",
-    "external/perfetto/protos/perfetto/config/android/android_polled_state_config.gen.h",
-    "external/perfetto/protos/perfetto/config/android/packages_list_config.gen.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_config_android_cpp_gen_headers",
+    srcs: [
+        "protos/perfetto/config/android/android_log_config.proto",
+        "protos/perfetto/config/android/android_polled_state_config.proto",
+        "protos/perfetto/config/android/packages_list_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/config/android/android_log_config.gen.h",
+        "external/perfetto/protos/perfetto/config/android/android_polled_state_config.gen.h",
+        "external/perfetto/protos/perfetto/config/android/packages_list_config.gen.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/config/android:lite
 genrule {
-  name: "perfetto_protos_perfetto_config_android_lite_gen",
-  srcs: [
-    "protos/perfetto/config/android/android_log_config.proto",
-    "protos/perfetto/config/android/android_polled_state_config.proto",
-    "protos/perfetto/config/android/packages_list_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/config/android/android_log_config.pb.cc",
-    "external/perfetto/protos/perfetto/config/android/android_polled_state_config.pb.cc",
-    "external/perfetto/protos/perfetto/config/android/packages_list_config.pb.cc",
-  ],
+    name: "perfetto_protos_perfetto_config_android_lite_gen",
+    srcs: [
+        "protos/perfetto/config/android/android_log_config.proto",
+        "protos/perfetto/config/android/android_polled_state_config.proto",
+        "protos/perfetto/config/android/packages_list_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/config/android/android_log_config.pb.cc",
+        "external/perfetto/protos/perfetto/config/android/android_polled_state_config.pb.cc",
+        "external/perfetto/protos/perfetto/config/android/packages_list_config.pb.cc",
+    ],
 }
 
 // GN: //protos/perfetto/config/android:lite
 genrule {
-  name: "perfetto_protos_perfetto_config_android_lite_gen_headers",
-  srcs: [
-    "protos/perfetto/config/android/android_log_config.proto",
-    "protos/perfetto/config/android/android_polled_state_config.proto",
-    "protos/perfetto/config/android/packages_list_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/config/android/android_log_config.pb.h",
-    "external/perfetto/protos/perfetto/config/android/android_polled_state_config.pb.h",
-    "external/perfetto/protos/perfetto/config/android/packages_list_config.pb.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_config_android_lite_gen_headers",
+    srcs: [
+        "protos/perfetto/config/android/android_log_config.proto",
+        "protos/perfetto/config/android/android_polled_state_config.proto",
+        "protos/perfetto/config/android/packages_list_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/config/android/android_log_config.pb.h",
+        "external/perfetto/protos/perfetto/config/android/android_polled_state_config.pb.h",
+        "external/perfetto/protos/perfetto/config/android/packages_list_config.pb.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/config/android:zero
 genrule {
-  name: "perfetto_protos_perfetto_config_android_zero_gen",
-  srcs: [
-    "protos/perfetto/config/android/android_log_config.proto",
-    "protos/perfetto/config/android/android_polled_state_config.proto",
-    "protos/perfetto/config/android/packages_list_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "protozero_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/config/android/android_log_config.pbzero.cc",
-    "external/perfetto/protos/perfetto/config/android/android_polled_state_config.pbzero.cc",
-    "external/perfetto/protos/perfetto/config/android/packages_list_config.pbzero.cc",
-  ],
+    name: "perfetto_protos_perfetto_config_android_zero_gen",
+    srcs: [
+        "protos/perfetto/config/android/android_log_config.proto",
+        "protos/perfetto/config/android/android_polled_state_config.proto",
+        "protos/perfetto/config/android/packages_list_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "protozero_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/config/android/android_log_config.pbzero.cc",
+        "external/perfetto/protos/perfetto/config/android/android_polled_state_config.pbzero.cc",
+        "external/perfetto/protos/perfetto/config/android/packages_list_config.pbzero.cc",
+    ],
 }
 
 // GN: //protos/perfetto/config/android:zero
 genrule {
-  name: "perfetto_protos_perfetto_config_android_zero_gen_headers",
-  srcs: [
-    "protos/perfetto/config/android/android_log_config.proto",
-    "protos/perfetto/config/android/android_polled_state_config.proto",
-    "protos/perfetto/config/android/packages_list_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "protozero_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/config/android/android_log_config.pbzero.h",
-    "external/perfetto/protos/perfetto/config/android/android_polled_state_config.pbzero.h",
-    "external/perfetto/protos/perfetto/config/android/packages_list_config.pbzero.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_config_android_zero_gen_headers",
+    srcs: [
+        "protos/perfetto/config/android/android_log_config.proto",
+        "protos/perfetto/config/android/android_polled_state_config.proto",
+        "protos/perfetto/config/android/packages_list_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "protozero_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/config/android/android_log_config.pbzero.h",
+        "external/perfetto/protos/perfetto/config/android/android_polled_state_config.pbzero.h",
+        "external/perfetto/protos/perfetto/config/android/packages_list_config.pbzero.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/config:cpp
 genrule {
-  name: "perfetto_protos_perfetto_config_cpp_gen",
-  srcs: [
-    "protos/perfetto/config/chrome/chrome_config.proto",
-    "protos/perfetto/config/data_source_config.proto",
-    "protos/perfetto/config/interceptor_config.proto",
-    "protos/perfetto/config/stress_test_config.proto",
-    "protos/perfetto/config/test_config.proto",
-    "protos/perfetto/config/trace_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/config/chrome/chrome_config.gen.cc",
-    "external/perfetto/protos/perfetto/config/data_source_config.gen.cc",
-    "external/perfetto/protos/perfetto/config/interceptor_config.gen.cc",
-    "external/perfetto/protos/perfetto/config/stress_test_config.gen.cc",
-    "external/perfetto/protos/perfetto/config/test_config.gen.cc",
-    "external/perfetto/protos/perfetto/config/trace_config.gen.cc",
-  ],
+    name: "perfetto_protos_perfetto_config_cpp_gen",
+    srcs: [
+        "protos/perfetto/config/chrome/chrome_config.proto",
+        "protos/perfetto/config/data_source_config.proto",
+        "protos/perfetto/config/interceptor_config.proto",
+        "protos/perfetto/config/stress_test_config.proto",
+        "protos/perfetto/config/test_config.proto",
+        "protos/perfetto/config/trace_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/config/chrome/chrome_config.gen.cc",
+        "external/perfetto/protos/perfetto/config/data_source_config.gen.cc",
+        "external/perfetto/protos/perfetto/config/interceptor_config.gen.cc",
+        "external/perfetto/protos/perfetto/config/stress_test_config.gen.cc",
+        "external/perfetto/protos/perfetto/config/test_config.gen.cc",
+        "external/perfetto/protos/perfetto/config/trace_config.gen.cc",
+    ],
 }
 
 // GN: //protos/perfetto/config:cpp
 genrule {
-  name: "perfetto_protos_perfetto_config_cpp_gen_headers",
-  srcs: [
-    "protos/perfetto/config/chrome/chrome_config.proto",
-    "protos/perfetto/config/data_source_config.proto",
-    "protos/perfetto/config/interceptor_config.proto",
-    "protos/perfetto/config/stress_test_config.proto",
-    "protos/perfetto/config/test_config.proto",
-    "protos/perfetto/config/trace_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/config/chrome/chrome_config.gen.h",
-    "external/perfetto/protos/perfetto/config/data_source_config.gen.h",
-    "external/perfetto/protos/perfetto/config/interceptor_config.gen.h",
-    "external/perfetto/protos/perfetto/config/stress_test_config.gen.h",
-    "external/perfetto/protos/perfetto/config/test_config.gen.h",
-    "external/perfetto/protos/perfetto/config/trace_config.gen.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_config_cpp_gen_headers",
+    srcs: [
+        "protos/perfetto/config/chrome/chrome_config.proto",
+        "protos/perfetto/config/data_source_config.proto",
+        "protos/perfetto/config/interceptor_config.proto",
+        "protos/perfetto/config/stress_test_config.proto",
+        "protos/perfetto/config/test_config.proto",
+        "protos/perfetto/config/trace_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/config/chrome/chrome_config.gen.h",
+        "external/perfetto/protos/perfetto/config/data_source_config.gen.h",
+        "external/perfetto/protos/perfetto/config/interceptor_config.gen.h",
+        "external/perfetto/protos/perfetto/config/stress_test_config.gen.h",
+        "external/perfetto/protos/perfetto/config/test_config.gen.h",
+        "external/perfetto/protos/perfetto/config/trace_config.gen.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/config:descriptor
 genrule {
-  name: "perfetto_protos_perfetto_config_descriptor",
-  srcs: [
-    "protos/perfetto/common/android_energy_consumer_descriptor.proto",
-    "protos/perfetto/common/android_log_constants.proto",
-    "protos/perfetto/common/builtin_clock.proto",
-    "protos/perfetto/common/commit_data_request.proto",
-    "protos/perfetto/common/data_source_descriptor.proto",
-    "protos/perfetto/common/descriptor.proto",
-    "protos/perfetto/common/gpu_counter_descriptor.proto",
-    "protos/perfetto/common/interceptor_descriptor.proto",
-    "protos/perfetto/common/observable_events.proto",
-    "protos/perfetto/common/perf_events.proto",
-    "protos/perfetto/common/sys_stats_counters.proto",
-    "protos/perfetto/common/trace_stats.proto",
-    "protos/perfetto/common/tracing_service_capabilities.proto",
-    "protos/perfetto/common/tracing_service_state.proto",
-    "protos/perfetto/common/track_event_descriptor.proto",
-    "protos/perfetto/config/android/android_log_config.proto",
-    "protos/perfetto/config/android/android_polled_state_config.proto",
-    "protos/perfetto/config/android/packages_list_config.proto",
-    "protos/perfetto/config/chrome/chrome_config.proto",
-    "protos/perfetto/config/data_source_config.proto",
-    "protos/perfetto/config/ftrace/ftrace_config.proto",
-    "protos/perfetto/config/gpu/gpu_counter_config.proto",
-    "protos/perfetto/config/gpu/vulkan_memory_config.proto",
-    "protos/perfetto/config/inode_file/inode_file_config.proto",
-    "protos/perfetto/config/interceptor_config.proto",
-    "protos/perfetto/config/interceptors/console_config.proto",
-    "protos/perfetto/config/power/android_power_config.proto",
-    "protos/perfetto/config/process_stats/process_stats_config.proto",
-    "protos/perfetto/config/profiling/heapprofd_config.proto",
-    "protos/perfetto/config/profiling/java_hprof_config.proto",
-    "protos/perfetto/config/profiling/perf_event_config.proto",
-    "protos/perfetto/config/stress_test_config.proto",
-    "protos/perfetto/config/sys_stats/sys_stats_config.proto",
-    "protos/perfetto/config/test_config.proto",
-    "protos/perfetto/config/trace_config.proto",
-    "protos/perfetto/config/track_event/track_event_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --descriptor_set_out=$(out) $(in)",
-  out: [
-    "perfetto_protos_perfetto_config_descriptor.bin",
-  ],
+    name: "perfetto_protos_perfetto_config_descriptor",
+    srcs: [
+        "protos/perfetto/common/android_energy_consumer_descriptor.proto",
+        "protos/perfetto/common/android_log_constants.proto",
+        "protos/perfetto/common/builtin_clock.proto",
+        "protos/perfetto/common/commit_data_request.proto",
+        "protos/perfetto/common/data_source_descriptor.proto",
+        "protos/perfetto/common/descriptor.proto",
+        "protos/perfetto/common/gpu_counter_descriptor.proto",
+        "protos/perfetto/common/interceptor_descriptor.proto",
+        "protos/perfetto/common/observable_events.proto",
+        "protos/perfetto/common/perf_events.proto",
+        "protos/perfetto/common/sys_stats_counters.proto",
+        "protos/perfetto/common/trace_stats.proto",
+        "protos/perfetto/common/tracing_service_capabilities.proto",
+        "protos/perfetto/common/tracing_service_state.proto",
+        "protos/perfetto/common/track_event_descriptor.proto",
+        "protos/perfetto/config/android/android_log_config.proto",
+        "protos/perfetto/config/android/android_polled_state_config.proto",
+        "protos/perfetto/config/android/packages_list_config.proto",
+        "protos/perfetto/config/chrome/chrome_config.proto",
+        "protos/perfetto/config/data_source_config.proto",
+        "protos/perfetto/config/ftrace/ftrace_config.proto",
+        "protos/perfetto/config/gpu/gpu_counter_config.proto",
+        "protos/perfetto/config/gpu/vulkan_memory_config.proto",
+        "protos/perfetto/config/inode_file/inode_file_config.proto",
+        "protos/perfetto/config/interceptor_config.proto",
+        "protos/perfetto/config/interceptors/console_config.proto",
+        "protos/perfetto/config/power/android_power_config.proto",
+        "protos/perfetto/config/process_stats/process_stats_config.proto",
+        "protos/perfetto/config/profiling/heapprofd_config.proto",
+        "protos/perfetto/config/profiling/java_hprof_config.proto",
+        "protos/perfetto/config/profiling/perf_event_config.proto",
+        "protos/perfetto/config/stress_test_config.proto",
+        "protos/perfetto/config/sys_stats/sys_stats_config.proto",
+        "protos/perfetto/config/test_config.proto",
+        "protos/perfetto/config/trace_config.proto",
+        "protos/perfetto/config/track_event/track_event_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --descriptor_set_out=$(out) $(in)",
+    out: [
+        "perfetto_protos_perfetto_config_descriptor.bin",
+    ],
 }
 
 // GN: //protos/perfetto/config/ftrace:cpp
 genrule {
-  name: "perfetto_protos_perfetto_config_ftrace_cpp_gen",
-  srcs: [
-    "protos/perfetto/config/ftrace/ftrace_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/config/ftrace/ftrace_config.gen.cc",
-  ],
+    name: "perfetto_protos_perfetto_config_ftrace_cpp_gen",
+    srcs: [
+        "protos/perfetto/config/ftrace/ftrace_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/config/ftrace/ftrace_config.gen.cc",
+    ],
 }
 
 // GN: //protos/perfetto/config/ftrace:cpp
 genrule {
-  name: "perfetto_protos_perfetto_config_ftrace_cpp_gen_headers",
-  srcs: [
-    "protos/perfetto/config/ftrace/ftrace_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/config/ftrace/ftrace_config.gen.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_config_ftrace_cpp_gen_headers",
+    srcs: [
+        "protos/perfetto/config/ftrace/ftrace_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/config/ftrace/ftrace_config.gen.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/config/ftrace:lite
 genrule {
-  name: "perfetto_protos_perfetto_config_ftrace_lite_gen",
-  srcs: [
-    "protos/perfetto/config/ftrace/ftrace_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/config/ftrace/ftrace_config.pb.cc",
-  ],
+    name: "perfetto_protos_perfetto_config_ftrace_lite_gen",
+    srcs: [
+        "protos/perfetto/config/ftrace/ftrace_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/config/ftrace/ftrace_config.pb.cc",
+    ],
 }
 
 // GN: //protos/perfetto/config/ftrace:lite
 genrule {
-  name: "perfetto_protos_perfetto_config_ftrace_lite_gen_headers",
-  srcs: [
-    "protos/perfetto/config/ftrace/ftrace_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/config/ftrace/ftrace_config.pb.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_config_ftrace_lite_gen_headers",
+    srcs: [
+        "protos/perfetto/config/ftrace/ftrace_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/config/ftrace/ftrace_config.pb.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/config/ftrace:zero
 genrule {
-  name: "perfetto_protos_perfetto_config_ftrace_zero_gen",
-  srcs: [
-    "protos/perfetto/config/ftrace/ftrace_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "protozero_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/config/ftrace/ftrace_config.pbzero.cc",
-  ],
+    name: "perfetto_protos_perfetto_config_ftrace_zero_gen",
+    srcs: [
+        "protos/perfetto/config/ftrace/ftrace_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "protozero_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/config/ftrace/ftrace_config.pbzero.cc",
+    ],
 }
 
 // GN: //protos/perfetto/config/ftrace:zero
 genrule {
-  name: "perfetto_protos_perfetto_config_ftrace_zero_gen_headers",
-  srcs: [
-    "protos/perfetto/config/ftrace/ftrace_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "protozero_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/config/ftrace/ftrace_config.pbzero.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_config_ftrace_zero_gen_headers",
+    srcs: [
+        "protos/perfetto/config/ftrace/ftrace_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "protozero_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/config/ftrace/ftrace_config.pbzero.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/config/gpu:cpp
 genrule {
-  name: "perfetto_protos_perfetto_config_gpu_cpp_gen",
-  srcs: [
-    "protos/perfetto/config/gpu/gpu_counter_config.proto",
-    "protos/perfetto/config/gpu/vulkan_memory_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/config/gpu/gpu_counter_config.gen.cc",
-    "external/perfetto/protos/perfetto/config/gpu/vulkan_memory_config.gen.cc",
-  ],
+    name: "perfetto_protos_perfetto_config_gpu_cpp_gen",
+    srcs: [
+        "protos/perfetto/config/gpu/gpu_counter_config.proto",
+        "protos/perfetto/config/gpu/vulkan_memory_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/config/gpu/gpu_counter_config.gen.cc",
+        "external/perfetto/protos/perfetto/config/gpu/vulkan_memory_config.gen.cc",
+    ],
 }
 
 // GN: //protos/perfetto/config/gpu:cpp
 genrule {
-  name: "perfetto_protos_perfetto_config_gpu_cpp_gen_headers",
-  srcs: [
-    "protos/perfetto/config/gpu/gpu_counter_config.proto",
-    "protos/perfetto/config/gpu/vulkan_memory_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/config/gpu/gpu_counter_config.gen.h",
-    "external/perfetto/protos/perfetto/config/gpu/vulkan_memory_config.gen.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_config_gpu_cpp_gen_headers",
+    srcs: [
+        "protos/perfetto/config/gpu/gpu_counter_config.proto",
+        "protos/perfetto/config/gpu/vulkan_memory_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/config/gpu/gpu_counter_config.gen.h",
+        "external/perfetto/protos/perfetto/config/gpu/vulkan_memory_config.gen.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/config/gpu:lite
 genrule {
-  name: "perfetto_protos_perfetto_config_gpu_lite_gen",
-  srcs: [
-    "protos/perfetto/config/gpu/gpu_counter_config.proto",
-    "protos/perfetto/config/gpu/vulkan_memory_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/config/gpu/gpu_counter_config.pb.cc",
-    "external/perfetto/protos/perfetto/config/gpu/vulkan_memory_config.pb.cc",
-  ],
+    name: "perfetto_protos_perfetto_config_gpu_lite_gen",
+    srcs: [
+        "protos/perfetto/config/gpu/gpu_counter_config.proto",
+        "protos/perfetto/config/gpu/vulkan_memory_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/config/gpu/gpu_counter_config.pb.cc",
+        "external/perfetto/protos/perfetto/config/gpu/vulkan_memory_config.pb.cc",
+    ],
 }
 
 // GN: //protos/perfetto/config/gpu:lite
 genrule {
-  name: "perfetto_protos_perfetto_config_gpu_lite_gen_headers",
-  srcs: [
-    "protos/perfetto/config/gpu/gpu_counter_config.proto",
-    "protos/perfetto/config/gpu/vulkan_memory_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/config/gpu/gpu_counter_config.pb.h",
-    "external/perfetto/protos/perfetto/config/gpu/vulkan_memory_config.pb.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_config_gpu_lite_gen_headers",
+    srcs: [
+        "protos/perfetto/config/gpu/gpu_counter_config.proto",
+        "protos/perfetto/config/gpu/vulkan_memory_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/config/gpu/gpu_counter_config.pb.h",
+        "external/perfetto/protos/perfetto/config/gpu/vulkan_memory_config.pb.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/config/gpu:zero
 genrule {
-  name: "perfetto_protos_perfetto_config_gpu_zero_gen",
-  srcs: [
-    "protos/perfetto/config/gpu/gpu_counter_config.proto",
-    "protos/perfetto/config/gpu/vulkan_memory_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "protozero_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/config/gpu/gpu_counter_config.pbzero.cc",
-    "external/perfetto/protos/perfetto/config/gpu/vulkan_memory_config.pbzero.cc",
-  ],
+    name: "perfetto_protos_perfetto_config_gpu_zero_gen",
+    srcs: [
+        "protos/perfetto/config/gpu/gpu_counter_config.proto",
+        "protos/perfetto/config/gpu/vulkan_memory_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "protozero_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/config/gpu/gpu_counter_config.pbzero.cc",
+        "external/perfetto/protos/perfetto/config/gpu/vulkan_memory_config.pbzero.cc",
+    ],
 }
 
 // GN: //protos/perfetto/config/gpu:zero
 genrule {
-  name: "perfetto_protos_perfetto_config_gpu_zero_gen_headers",
-  srcs: [
-    "protos/perfetto/config/gpu/gpu_counter_config.proto",
-    "protos/perfetto/config/gpu/vulkan_memory_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "protozero_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/config/gpu/gpu_counter_config.pbzero.h",
-    "external/perfetto/protos/perfetto/config/gpu/vulkan_memory_config.pbzero.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_config_gpu_zero_gen_headers",
+    srcs: [
+        "protos/perfetto/config/gpu/gpu_counter_config.proto",
+        "protos/perfetto/config/gpu/vulkan_memory_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "protozero_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/config/gpu/gpu_counter_config.pbzero.h",
+        "external/perfetto/protos/perfetto/config/gpu/vulkan_memory_config.pbzero.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/config/inode_file:cpp
 genrule {
-  name: "perfetto_protos_perfetto_config_inode_file_cpp_gen",
-  srcs: [
-    "protos/perfetto/config/inode_file/inode_file_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/config/inode_file/inode_file_config.gen.cc",
-  ],
+    name: "perfetto_protos_perfetto_config_inode_file_cpp_gen",
+    srcs: [
+        "protos/perfetto/config/inode_file/inode_file_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/config/inode_file/inode_file_config.gen.cc",
+    ],
 }
 
 // GN: //protos/perfetto/config/inode_file:cpp
 genrule {
-  name: "perfetto_protos_perfetto_config_inode_file_cpp_gen_headers",
-  srcs: [
-    "protos/perfetto/config/inode_file/inode_file_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/config/inode_file/inode_file_config.gen.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_config_inode_file_cpp_gen_headers",
+    srcs: [
+        "protos/perfetto/config/inode_file/inode_file_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/config/inode_file/inode_file_config.gen.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/config/inode_file:lite
 genrule {
-  name: "perfetto_protos_perfetto_config_inode_file_lite_gen",
-  srcs: [
-    "protos/perfetto/config/inode_file/inode_file_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/config/inode_file/inode_file_config.pb.cc",
-  ],
+    name: "perfetto_protos_perfetto_config_inode_file_lite_gen",
+    srcs: [
+        "protos/perfetto/config/inode_file/inode_file_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/config/inode_file/inode_file_config.pb.cc",
+    ],
 }
 
 // GN: //protos/perfetto/config/inode_file:lite
 genrule {
-  name: "perfetto_protos_perfetto_config_inode_file_lite_gen_headers",
-  srcs: [
-    "protos/perfetto/config/inode_file/inode_file_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/config/inode_file/inode_file_config.pb.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_config_inode_file_lite_gen_headers",
+    srcs: [
+        "protos/perfetto/config/inode_file/inode_file_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/config/inode_file/inode_file_config.pb.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/config/inode_file:zero
 genrule {
-  name: "perfetto_protos_perfetto_config_inode_file_zero_gen",
-  srcs: [
-    "protos/perfetto/config/inode_file/inode_file_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "protozero_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/config/inode_file/inode_file_config.pbzero.cc",
-  ],
+    name: "perfetto_protos_perfetto_config_inode_file_zero_gen",
+    srcs: [
+        "protos/perfetto/config/inode_file/inode_file_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "protozero_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/config/inode_file/inode_file_config.pbzero.cc",
+    ],
 }
 
 // GN: //protos/perfetto/config/inode_file:zero
 genrule {
-  name: "perfetto_protos_perfetto_config_inode_file_zero_gen_headers",
-  srcs: [
-    "protos/perfetto/config/inode_file/inode_file_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "protozero_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/config/inode_file/inode_file_config.pbzero.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_config_inode_file_zero_gen_headers",
+    srcs: [
+        "protos/perfetto/config/inode_file/inode_file_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "protozero_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/config/inode_file/inode_file_config.pbzero.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/config/interceptors:cpp
 genrule {
-  name: "perfetto_protos_perfetto_config_interceptors_cpp_gen",
-  srcs: [
-    "protos/perfetto/config/interceptors/console_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/config/interceptors/console_config.gen.cc",
-  ],
+    name: "perfetto_protos_perfetto_config_interceptors_cpp_gen",
+    srcs: [
+        "protos/perfetto/config/interceptors/console_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/config/interceptors/console_config.gen.cc",
+    ],
 }
 
 // GN: //protos/perfetto/config/interceptors:cpp
 genrule {
-  name: "perfetto_protos_perfetto_config_interceptors_cpp_gen_headers",
-  srcs: [
-    "protos/perfetto/config/interceptors/console_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/config/interceptors/console_config.gen.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_config_interceptors_cpp_gen_headers",
+    srcs: [
+        "protos/perfetto/config/interceptors/console_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/config/interceptors/console_config.gen.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/config/interceptors:lite
 genrule {
-  name: "perfetto_protos_perfetto_config_interceptors_lite_gen",
-  srcs: [
-    "protos/perfetto/config/interceptors/console_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/config/interceptors/console_config.pb.cc",
-  ],
+    name: "perfetto_protos_perfetto_config_interceptors_lite_gen",
+    srcs: [
+        "protos/perfetto/config/interceptors/console_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/config/interceptors/console_config.pb.cc",
+    ],
 }
 
 // GN: //protos/perfetto/config/interceptors:lite
 genrule {
-  name: "perfetto_protos_perfetto_config_interceptors_lite_gen_headers",
-  srcs: [
-    "protos/perfetto/config/interceptors/console_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/config/interceptors/console_config.pb.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_config_interceptors_lite_gen_headers",
+    srcs: [
+        "protos/perfetto/config/interceptors/console_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/config/interceptors/console_config.pb.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/config/interceptors:zero
 genrule {
-  name: "perfetto_protos_perfetto_config_interceptors_zero_gen",
-  srcs: [
-    "protos/perfetto/config/interceptors/console_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "protozero_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/config/interceptors/console_config.pbzero.cc",
-  ],
+    name: "perfetto_protos_perfetto_config_interceptors_zero_gen",
+    srcs: [
+        "protos/perfetto/config/interceptors/console_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "protozero_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/config/interceptors/console_config.pbzero.cc",
+    ],
 }
 
 // GN: //protos/perfetto/config/interceptors:zero
 genrule {
-  name: "perfetto_protos_perfetto_config_interceptors_zero_gen_headers",
-  srcs: [
-    "protos/perfetto/config/interceptors/console_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "protozero_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/config/interceptors/console_config.pbzero.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_config_interceptors_zero_gen_headers",
+    srcs: [
+        "protos/perfetto/config/interceptors/console_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "protozero_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/config/interceptors/console_config.pbzero.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/config:lite
 genrule {
-  name: "perfetto_protos_perfetto_config_lite_gen",
-  srcs: [
-    "protos/perfetto/config/chrome/chrome_config.proto",
-    "protos/perfetto/config/data_source_config.proto",
-    "protos/perfetto/config/interceptor_config.proto",
-    "protos/perfetto/config/stress_test_config.proto",
-    "protos/perfetto/config/test_config.proto",
-    "protos/perfetto/config/trace_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/config/chrome/chrome_config.pb.cc",
-    "external/perfetto/protos/perfetto/config/data_source_config.pb.cc",
-    "external/perfetto/protos/perfetto/config/interceptor_config.pb.cc",
-    "external/perfetto/protos/perfetto/config/stress_test_config.pb.cc",
-    "external/perfetto/protos/perfetto/config/test_config.pb.cc",
-    "external/perfetto/protos/perfetto/config/trace_config.pb.cc",
-  ],
+    name: "perfetto_protos_perfetto_config_lite_gen",
+    srcs: [
+        "protos/perfetto/config/chrome/chrome_config.proto",
+        "protos/perfetto/config/data_source_config.proto",
+        "protos/perfetto/config/interceptor_config.proto",
+        "protos/perfetto/config/stress_test_config.proto",
+        "protos/perfetto/config/test_config.proto",
+        "protos/perfetto/config/trace_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/config/chrome/chrome_config.pb.cc",
+        "external/perfetto/protos/perfetto/config/data_source_config.pb.cc",
+        "external/perfetto/protos/perfetto/config/interceptor_config.pb.cc",
+        "external/perfetto/protos/perfetto/config/stress_test_config.pb.cc",
+        "external/perfetto/protos/perfetto/config/test_config.pb.cc",
+        "external/perfetto/protos/perfetto/config/trace_config.pb.cc",
+    ],
 }
 
 // GN: //protos/perfetto/config:lite
 genrule {
-  name: "perfetto_protos_perfetto_config_lite_gen_headers",
-  srcs: [
-    "protos/perfetto/config/chrome/chrome_config.proto",
-    "protos/perfetto/config/data_source_config.proto",
-    "protos/perfetto/config/interceptor_config.proto",
-    "protos/perfetto/config/stress_test_config.proto",
-    "protos/perfetto/config/test_config.proto",
-    "protos/perfetto/config/trace_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/config/chrome/chrome_config.pb.h",
-    "external/perfetto/protos/perfetto/config/data_source_config.pb.h",
-    "external/perfetto/protos/perfetto/config/interceptor_config.pb.h",
-    "external/perfetto/protos/perfetto/config/stress_test_config.pb.h",
-    "external/perfetto/protos/perfetto/config/test_config.pb.h",
-    "external/perfetto/protos/perfetto/config/trace_config.pb.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_config_lite_gen_headers",
+    srcs: [
+        "protos/perfetto/config/chrome/chrome_config.proto",
+        "protos/perfetto/config/data_source_config.proto",
+        "protos/perfetto/config/interceptor_config.proto",
+        "protos/perfetto/config/stress_test_config.proto",
+        "protos/perfetto/config/test_config.proto",
+        "protos/perfetto/config/trace_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/config/chrome/chrome_config.pb.h",
+        "external/perfetto/protos/perfetto/config/data_source_config.pb.h",
+        "external/perfetto/protos/perfetto/config/interceptor_config.pb.h",
+        "external/perfetto/protos/perfetto/config/stress_test_config.pb.h",
+        "external/perfetto/protos/perfetto/config/test_config.pb.h",
+        "external/perfetto/protos/perfetto/config/trace_config.pb.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/config:perfetto_config_descriptor
 genrule {
-  name: "perfetto_protos_perfetto_config_perfetto_config_descriptor",
-  srcs: [
-    "protos/perfetto/config/perfetto_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --descriptor_set_out=$(out) $(in)",
-  out: [
-    "perfetto_protos_perfetto_config_perfetto_config_descriptor.bin",
-  ],
+    name: "perfetto_protos_perfetto_config_perfetto_config_descriptor",
+    srcs: [
+        "protos/perfetto/config/perfetto_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --descriptor_set_out=$(out) $(in)",
+    out: [
+        "perfetto_protos_perfetto_config_perfetto_config_descriptor.bin",
+    ],
 }
 
 // GN: //protos/perfetto/config/power:cpp
 genrule {
-  name: "perfetto_protos_perfetto_config_power_cpp_gen",
-  srcs: [
-    "protos/perfetto/config/power/android_power_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/config/power/android_power_config.gen.cc",
-  ],
+    name: "perfetto_protos_perfetto_config_power_cpp_gen",
+    srcs: [
+        "protos/perfetto/config/power/android_power_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/config/power/android_power_config.gen.cc",
+    ],
 }
 
 // GN: //protos/perfetto/config/power:cpp
 genrule {
-  name: "perfetto_protos_perfetto_config_power_cpp_gen_headers",
-  srcs: [
-    "protos/perfetto/config/power/android_power_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/config/power/android_power_config.gen.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_config_power_cpp_gen_headers",
+    srcs: [
+        "protos/perfetto/config/power/android_power_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/config/power/android_power_config.gen.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/config/power:lite
 genrule {
-  name: "perfetto_protos_perfetto_config_power_lite_gen",
-  srcs: [
-    "protos/perfetto/config/power/android_power_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/config/power/android_power_config.pb.cc",
-  ],
+    name: "perfetto_protos_perfetto_config_power_lite_gen",
+    srcs: [
+        "protos/perfetto/config/power/android_power_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/config/power/android_power_config.pb.cc",
+    ],
 }
 
 // GN: //protos/perfetto/config/power:lite
 genrule {
-  name: "perfetto_protos_perfetto_config_power_lite_gen_headers",
-  srcs: [
-    "protos/perfetto/config/power/android_power_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/config/power/android_power_config.pb.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_config_power_lite_gen_headers",
+    srcs: [
+        "protos/perfetto/config/power/android_power_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/config/power/android_power_config.pb.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/config/power:zero
 genrule {
-  name: "perfetto_protos_perfetto_config_power_zero_gen",
-  srcs: [
-    "protos/perfetto/config/power/android_power_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "protozero_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/config/power/android_power_config.pbzero.cc",
-  ],
+    name: "perfetto_protos_perfetto_config_power_zero_gen",
+    srcs: [
+        "protos/perfetto/config/power/android_power_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "protozero_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/config/power/android_power_config.pbzero.cc",
+    ],
 }
 
 // GN: //protos/perfetto/config/power:zero
 genrule {
-  name: "perfetto_protos_perfetto_config_power_zero_gen_headers",
-  srcs: [
-    "protos/perfetto/config/power/android_power_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "protozero_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/config/power/android_power_config.pbzero.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_config_power_zero_gen_headers",
+    srcs: [
+        "protos/perfetto/config/power/android_power_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "protozero_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/config/power/android_power_config.pbzero.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/config/process_stats:cpp
 genrule {
-  name: "perfetto_protos_perfetto_config_process_stats_cpp_gen",
-  srcs: [
-    "protos/perfetto/config/process_stats/process_stats_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/config/process_stats/process_stats_config.gen.cc",
-  ],
+    name: "perfetto_protos_perfetto_config_process_stats_cpp_gen",
+    srcs: [
+        "protos/perfetto/config/process_stats/process_stats_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/config/process_stats/process_stats_config.gen.cc",
+    ],
 }
 
 // GN: //protos/perfetto/config/process_stats:cpp
 genrule {
-  name: "perfetto_protos_perfetto_config_process_stats_cpp_gen_headers",
-  srcs: [
-    "protos/perfetto/config/process_stats/process_stats_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/config/process_stats/process_stats_config.gen.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_config_process_stats_cpp_gen_headers",
+    srcs: [
+        "protos/perfetto/config/process_stats/process_stats_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/config/process_stats/process_stats_config.gen.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/config/process_stats:lite
 genrule {
-  name: "perfetto_protos_perfetto_config_process_stats_lite_gen",
-  srcs: [
-    "protos/perfetto/config/process_stats/process_stats_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/config/process_stats/process_stats_config.pb.cc",
-  ],
+    name: "perfetto_protos_perfetto_config_process_stats_lite_gen",
+    srcs: [
+        "protos/perfetto/config/process_stats/process_stats_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/config/process_stats/process_stats_config.pb.cc",
+    ],
 }
 
 // GN: //protos/perfetto/config/process_stats:lite
 genrule {
-  name: "perfetto_protos_perfetto_config_process_stats_lite_gen_headers",
-  srcs: [
-    "protos/perfetto/config/process_stats/process_stats_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/config/process_stats/process_stats_config.pb.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_config_process_stats_lite_gen_headers",
+    srcs: [
+        "protos/perfetto/config/process_stats/process_stats_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/config/process_stats/process_stats_config.pb.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/config/process_stats:zero
 genrule {
-  name: "perfetto_protos_perfetto_config_process_stats_zero_gen",
-  srcs: [
-    "protos/perfetto/config/process_stats/process_stats_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "protozero_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/config/process_stats/process_stats_config.pbzero.cc",
-  ],
+    name: "perfetto_protos_perfetto_config_process_stats_zero_gen",
+    srcs: [
+        "protos/perfetto/config/process_stats/process_stats_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "protozero_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/config/process_stats/process_stats_config.pbzero.cc",
+    ],
 }
 
 // GN: //protos/perfetto/config/process_stats:zero
 genrule {
-  name: "perfetto_protos_perfetto_config_process_stats_zero_gen_headers",
-  srcs: [
-    "protos/perfetto/config/process_stats/process_stats_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "protozero_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/config/process_stats/process_stats_config.pbzero.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_config_process_stats_zero_gen_headers",
+    srcs: [
+        "protos/perfetto/config/process_stats/process_stats_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "protozero_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/config/process_stats/process_stats_config.pbzero.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/config/profiling:cpp
 genrule {
-  name: "perfetto_protos_perfetto_config_profiling_cpp_gen",
-  srcs: [
-    "protos/perfetto/config/profiling/heapprofd_config.proto",
-    "protos/perfetto/config/profiling/java_hprof_config.proto",
-    "protos/perfetto/config/profiling/perf_event_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/config/profiling/heapprofd_config.gen.cc",
-    "external/perfetto/protos/perfetto/config/profiling/java_hprof_config.gen.cc",
-    "external/perfetto/protos/perfetto/config/profiling/perf_event_config.gen.cc",
-  ],
+    name: "perfetto_protos_perfetto_config_profiling_cpp_gen",
+    srcs: [
+        "protos/perfetto/config/profiling/heapprofd_config.proto",
+        "protos/perfetto/config/profiling/java_hprof_config.proto",
+        "protos/perfetto/config/profiling/perf_event_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/config/profiling/heapprofd_config.gen.cc",
+        "external/perfetto/protos/perfetto/config/profiling/java_hprof_config.gen.cc",
+        "external/perfetto/protos/perfetto/config/profiling/perf_event_config.gen.cc",
+    ],
 }
 
 // GN: //protos/perfetto/config/profiling:cpp
 genrule {
-  name: "perfetto_protos_perfetto_config_profiling_cpp_gen_headers",
-  srcs: [
-    "protos/perfetto/config/profiling/heapprofd_config.proto",
-    "protos/perfetto/config/profiling/java_hprof_config.proto",
-    "protos/perfetto/config/profiling/perf_event_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/config/profiling/heapprofd_config.gen.h",
-    "external/perfetto/protos/perfetto/config/profiling/java_hprof_config.gen.h",
-    "external/perfetto/protos/perfetto/config/profiling/perf_event_config.gen.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_config_profiling_cpp_gen_headers",
+    srcs: [
+        "protos/perfetto/config/profiling/heapprofd_config.proto",
+        "protos/perfetto/config/profiling/java_hprof_config.proto",
+        "protos/perfetto/config/profiling/perf_event_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/config/profiling/heapprofd_config.gen.h",
+        "external/perfetto/protos/perfetto/config/profiling/java_hprof_config.gen.h",
+        "external/perfetto/protos/perfetto/config/profiling/perf_event_config.gen.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/config/profiling:lite
 genrule {
-  name: "perfetto_protos_perfetto_config_profiling_lite_gen",
-  srcs: [
-    "protos/perfetto/config/profiling/heapprofd_config.proto",
-    "protos/perfetto/config/profiling/java_hprof_config.proto",
-    "protos/perfetto/config/profiling/perf_event_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/config/profiling/heapprofd_config.pb.cc",
-    "external/perfetto/protos/perfetto/config/profiling/java_hprof_config.pb.cc",
-    "external/perfetto/protos/perfetto/config/profiling/perf_event_config.pb.cc",
-  ],
+    name: "perfetto_protos_perfetto_config_profiling_lite_gen",
+    srcs: [
+        "protos/perfetto/config/profiling/heapprofd_config.proto",
+        "protos/perfetto/config/profiling/java_hprof_config.proto",
+        "protos/perfetto/config/profiling/perf_event_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/config/profiling/heapprofd_config.pb.cc",
+        "external/perfetto/protos/perfetto/config/profiling/java_hprof_config.pb.cc",
+        "external/perfetto/protos/perfetto/config/profiling/perf_event_config.pb.cc",
+    ],
 }
 
 // GN: //protos/perfetto/config/profiling:lite
 genrule {
-  name: "perfetto_protos_perfetto_config_profiling_lite_gen_headers",
-  srcs: [
-    "protos/perfetto/config/profiling/heapprofd_config.proto",
-    "protos/perfetto/config/profiling/java_hprof_config.proto",
-    "protos/perfetto/config/profiling/perf_event_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/config/profiling/heapprofd_config.pb.h",
-    "external/perfetto/protos/perfetto/config/profiling/java_hprof_config.pb.h",
-    "external/perfetto/protos/perfetto/config/profiling/perf_event_config.pb.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_config_profiling_lite_gen_headers",
+    srcs: [
+        "protos/perfetto/config/profiling/heapprofd_config.proto",
+        "protos/perfetto/config/profiling/java_hprof_config.proto",
+        "protos/perfetto/config/profiling/perf_event_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/config/profiling/heapprofd_config.pb.h",
+        "external/perfetto/protos/perfetto/config/profiling/java_hprof_config.pb.h",
+        "external/perfetto/protos/perfetto/config/profiling/perf_event_config.pb.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/config/profiling:zero
 genrule {
-  name: "perfetto_protos_perfetto_config_profiling_zero_gen",
-  srcs: [
-    "protos/perfetto/config/profiling/heapprofd_config.proto",
-    "protos/perfetto/config/profiling/java_hprof_config.proto",
-    "protos/perfetto/config/profiling/perf_event_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "protozero_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/config/profiling/heapprofd_config.pbzero.cc",
-    "external/perfetto/protos/perfetto/config/profiling/java_hprof_config.pbzero.cc",
-    "external/perfetto/protos/perfetto/config/profiling/perf_event_config.pbzero.cc",
-  ],
+    name: "perfetto_protos_perfetto_config_profiling_zero_gen",
+    srcs: [
+        "protos/perfetto/config/profiling/heapprofd_config.proto",
+        "protos/perfetto/config/profiling/java_hprof_config.proto",
+        "protos/perfetto/config/profiling/perf_event_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "protozero_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/config/profiling/heapprofd_config.pbzero.cc",
+        "external/perfetto/protos/perfetto/config/profiling/java_hprof_config.pbzero.cc",
+        "external/perfetto/protos/perfetto/config/profiling/perf_event_config.pbzero.cc",
+    ],
 }
 
 // GN: //protos/perfetto/config/profiling:zero
 genrule {
-  name: "perfetto_protos_perfetto_config_profiling_zero_gen_headers",
-  srcs: [
-    "protos/perfetto/config/profiling/heapprofd_config.proto",
-    "protos/perfetto/config/profiling/java_hprof_config.proto",
-    "protos/perfetto/config/profiling/perf_event_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "protozero_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/config/profiling/heapprofd_config.pbzero.h",
-    "external/perfetto/protos/perfetto/config/profiling/java_hprof_config.pbzero.h",
-    "external/perfetto/protos/perfetto/config/profiling/perf_event_config.pbzero.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_config_profiling_zero_gen_headers",
+    srcs: [
+        "protos/perfetto/config/profiling/heapprofd_config.proto",
+        "protos/perfetto/config/profiling/java_hprof_config.proto",
+        "protos/perfetto/config/profiling/perf_event_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "protozero_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/config/profiling/heapprofd_config.pbzero.h",
+        "external/perfetto/protos/perfetto/config/profiling/java_hprof_config.pbzero.h",
+        "external/perfetto/protos/perfetto/config/profiling/perf_event_config.pbzero.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/config/sys_stats:cpp
 genrule {
-  name: "perfetto_protos_perfetto_config_sys_stats_cpp_gen",
-  srcs: [
-    "protos/perfetto/config/sys_stats/sys_stats_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/config/sys_stats/sys_stats_config.gen.cc",
-  ],
+    name: "perfetto_protos_perfetto_config_sys_stats_cpp_gen",
+    srcs: [
+        "protos/perfetto/config/sys_stats/sys_stats_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/config/sys_stats/sys_stats_config.gen.cc",
+    ],
 }
 
 // GN: //protos/perfetto/config/sys_stats:cpp
 genrule {
-  name: "perfetto_protos_perfetto_config_sys_stats_cpp_gen_headers",
-  srcs: [
-    "protos/perfetto/config/sys_stats/sys_stats_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/config/sys_stats/sys_stats_config.gen.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_config_sys_stats_cpp_gen_headers",
+    srcs: [
+        "protos/perfetto/config/sys_stats/sys_stats_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/config/sys_stats/sys_stats_config.gen.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/config/sys_stats:lite
 genrule {
-  name: "perfetto_protos_perfetto_config_sys_stats_lite_gen",
-  srcs: [
-    "protos/perfetto/config/sys_stats/sys_stats_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/config/sys_stats/sys_stats_config.pb.cc",
-  ],
+    name: "perfetto_protos_perfetto_config_sys_stats_lite_gen",
+    srcs: [
+        "protos/perfetto/config/sys_stats/sys_stats_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/config/sys_stats/sys_stats_config.pb.cc",
+    ],
 }
 
 // GN: //protos/perfetto/config/sys_stats:lite
 genrule {
-  name: "perfetto_protos_perfetto_config_sys_stats_lite_gen_headers",
-  srcs: [
-    "protos/perfetto/config/sys_stats/sys_stats_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/config/sys_stats/sys_stats_config.pb.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_config_sys_stats_lite_gen_headers",
+    srcs: [
+        "protos/perfetto/config/sys_stats/sys_stats_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/config/sys_stats/sys_stats_config.pb.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/config/sys_stats:zero
 genrule {
-  name: "perfetto_protos_perfetto_config_sys_stats_zero_gen",
-  srcs: [
-    "protos/perfetto/config/sys_stats/sys_stats_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "protozero_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/config/sys_stats/sys_stats_config.pbzero.cc",
-  ],
+    name: "perfetto_protos_perfetto_config_sys_stats_zero_gen",
+    srcs: [
+        "protos/perfetto/config/sys_stats/sys_stats_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "protozero_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/config/sys_stats/sys_stats_config.pbzero.cc",
+    ],
 }
 
 // GN: //protos/perfetto/config/sys_stats:zero
 genrule {
-  name: "perfetto_protos_perfetto_config_sys_stats_zero_gen_headers",
-  srcs: [
-    "protos/perfetto/config/sys_stats/sys_stats_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "protozero_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/config/sys_stats/sys_stats_config.pbzero.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_config_sys_stats_zero_gen_headers",
+    srcs: [
+        "protos/perfetto/config/sys_stats/sys_stats_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "protozero_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/config/sys_stats/sys_stats_config.pbzero.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/config/track_event:cpp
 genrule {
-  name: "perfetto_protos_perfetto_config_track_event_cpp_gen",
-  srcs: [
-    "protos/perfetto/config/track_event/track_event_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/config/track_event/track_event_config.gen.cc",
-  ],
+    name: "perfetto_protos_perfetto_config_track_event_cpp_gen",
+    srcs: [
+        "protos/perfetto/config/track_event/track_event_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/config/track_event/track_event_config.gen.cc",
+    ],
 }
 
 // GN: //protos/perfetto/config/track_event:cpp
 genrule {
-  name: "perfetto_protos_perfetto_config_track_event_cpp_gen_headers",
-  srcs: [
-    "protos/perfetto/config/track_event/track_event_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/config/track_event/track_event_config.gen.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_config_track_event_cpp_gen_headers",
+    srcs: [
+        "protos/perfetto/config/track_event/track_event_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/config/track_event/track_event_config.gen.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/config/track_event:lite
 genrule {
-  name: "perfetto_protos_perfetto_config_track_event_lite_gen",
-  srcs: [
-    "protos/perfetto/config/track_event/track_event_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/config/track_event/track_event_config.pb.cc",
-  ],
+    name: "perfetto_protos_perfetto_config_track_event_lite_gen",
+    srcs: [
+        "protos/perfetto/config/track_event/track_event_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/config/track_event/track_event_config.pb.cc",
+    ],
 }
 
 // GN: //protos/perfetto/config/track_event:lite
 genrule {
-  name: "perfetto_protos_perfetto_config_track_event_lite_gen_headers",
-  srcs: [
-    "protos/perfetto/config/track_event/track_event_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/config/track_event/track_event_config.pb.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_config_track_event_lite_gen_headers",
+    srcs: [
+        "protos/perfetto/config/track_event/track_event_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/config/track_event/track_event_config.pb.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/config/track_event:zero
 genrule {
-  name: "perfetto_protos_perfetto_config_track_event_zero_gen",
-  srcs: [
-    "protos/perfetto/config/track_event/track_event_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "protozero_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/config/track_event/track_event_config.pbzero.cc",
-  ],
+    name: "perfetto_protos_perfetto_config_track_event_zero_gen",
+    srcs: [
+        "protos/perfetto/config/track_event/track_event_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "protozero_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/config/track_event/track_event_config.pbzero.cc",
+    ],
 }
 
 // GN: //protos/perfetto/config/track_event:zero
 genrule {
-  name: "perfetto_protos_perfetto_config_track_event_zero_gen_headers",
-  srcs: [
-    "protos/perfetto/config/track_event/track_event_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "protozero_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/config/track_event/track_event_config.pbzero.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_config_track_event_zero_gen_headers",
+    srcs: [
+        "protos/perfetto/config/track_event/track_event_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "protozero_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/config/track_event/track_event_config.pbzero.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/config:zero
 genrule {
-  name: "perfetto_protos_perfetto_config_zero_gen",
-  srcs: [
-    "protos/perfetto/config/chrome/chrome_config.proto",
-    "protos/perfetto/config/data_source_config.proto",
-    "protos/perfetto/config/interceptor_config.proto",
-    "protos/perfetto/config/stress_test_config.proto",
-    "protos/perfetto/config/test_config.proto",
-    "protos/perfetto/config/trace_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "protozero_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/config/chrome/chrome_config.pbzero.cc",
-    "external/perfetto/protos/perfetto/config/data_source_config.pbzero.cc",
-    "external/perfetto/protos/perfetto/config/interceptor_config.pbzero.cc",
-    "external/perfetto/protos/perfetto/config/stress_test_config.pbzero.cc",
-    "external/perfetto/protos/perfetto/config/test_config.pbzero.cc",
-    "external/perfetto/protos/perfetto/config/trace_config.pbzero.cc",
-  ],
+    name: "perfetto_protos_perfetto_config_zero_gen",
+    srcs: [
+        "protos/perfetto/config/chrome/chrome_config.proto",
+        "protos/perfetto/config/data_source_config.proto",
+        "protos/perfetto/config/interceptor_config.proto",
+        "protos/perfetto/config/stress_test_config.proto",
+        "protos/perfetto/config/test_config.proto",
+        "protos/perfetto/config/trace_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "protozero_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/config/chrome/chrome_config.pbzero.cc",
+        "external/perfetto/protos/perfetto/config/data_source_config.pbzero.cc",
+        "external/perfetto/protos/perfetto/config/interceptor_config.pbzero.cc",
+        "external/perfetto/protos/perfetto/config/stress_test_config.pbzero.cc",
+        "external/perfetto/protos/perfetto/config/test_config.pbzero.cc",
+        "external/perfetto/protos/perfetto/config/trace_config.pbzero.cc",
+    ],
 }
 
 // GN: //protos/perfetto/config:zero
 genrule {
-  name: "perfetto_protos_perfetto_config_zero_gen_headers",
-  srcs: [
-    "protos/perfetto/config/chrome/chrome_config.proto",
-    "protos/perfetto/config/data_source_config.proto",
-    "protos/perfetto/config/interceptor_config.proto",
-    "protos/perfetto/config/stress_test_config.proto",
-    "protos/perfetto/config/test_config.proto",
-    "protos/perfetto/config/trace_config.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "protozero_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/config/chrome/chrome_config.pbzero.h",
-    "external/perfetto/protos/perfetto/config/data_source_config.pbzero.h",
-    "external/perfetto/protos/perfetto/config/interceptor_config.pbzero.h",
-    "external/perfetto/protos/perfetto/config/stress_test_config.pbzero.h",
-    "external/perfetto/protos/perfetto/config/test_config.pbzero.h",
-    "external/perfetto/protos/perfetto/config/trace_config.pbzero.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_config_zero_gen_headers",
+    srcs: [
+        "protos/perfetto/config/chrome/chrome_config.proto",
+        "protos/perfetto/config/data_source_config.proto",
+        "protos/perfetto/config/interceptor_config.proto",
+        "protos/perfetto/config/stress_test_config.proto",
+        "protos/perfetto/config/test_config.proto",
+        "protos/perfetto/config/trace_config.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "protozero_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/config/chrome/chrome_config.pbzero.h",
+        "external/perfetto/protos/perfetto/config/data_source_config.pbzero.h",
+        "external/perfetto/protos/perfetto/config/interceptor_config.pbzero.h",
+        "external/perfetto/protos/perfetto/config/stress_test_config.pbzero.h",
+        "external/perfetto/protos/perfetto/config/test_config.pbzero.h",
+        "external/perfetto/protos/perfetto/config/trace_config.pbzero.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/ipc:cpp
 genrule {
-  name: "perfetto_protos_perfetto_ipc_cpp_gen",
-  srcs: [
-    "protos/perfetto/ipc/consumer_port.proto",
-    "protos/perfetto/ipc/producer_port.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/ipc/consumer_port.gen.cc",
-    "external/perfetto/protos/perfetto/ipc/producer_port.gen.cc",
-  ],
+    name: "perfetto_protos_perfetto_ipc_cpp_gen",
+    srcs: [
+        "protos/perfetto/ipc/consumer_port.proto",
+        "protos/perfetto/ipc/producer_port.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/ipc/consumer_port.gen.cc",
+        "external/perfetto/protos/perfetto/ipc/producer_port.gen.cc",
+    ],
 }
 
 // GN: //protos/perfetto/ipc:cpp
 genrule {
-  name: "perfetto_protos_perfetto_ipc_cpp_gen_headers",
-  srcs: [
-    "protos/perfetto/ipc/consumer_port.proto",
-    "protos/perfetto/ipc/producer_port.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/ipc/consumer_port.gen.h",
-    "external/perfetto/protos/perfetto/ipc/producer_port.gen.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_ipc_cpp_gen_headers",
+    srcs: [
+        "protos/perfetto/ipc/consumer_port.proto",
+        "protos/perfetto/ipc/producer_port.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/ipc/consumer_port.gen.h",
+        "external/perfetto/protos/perfetto/ipc/producer_port.gen.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/ipc:ipc
 genrule {
-  name: "perfetto_protos_perfetto_ipc_ipc_gen",
-  srcs: [
-    "protos/perfetto/ipc/consumer_port.proto",
-    "protos/perfetto/ipc/producer_port.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "ipc_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location ipc_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/ipc/consumer_port.ipc.cc",
-    "external/perfetto/protos/perfetto/ipc/producer_port.ipc.cc",
-  ],
+    name: "perfetto_protos_perfetto_ipc_ipc_gen",
+    srcs: [
+        "protos/perfetto/ipc/consumer_port.proto",
+        "protos/perfetto/ipc/producer_port.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "ipc_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location ipc_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/ipc/consumer_port.ipc.cc",
+        "external/perfetto/protos/perfetto/ipc/producer_port.ipc.cc",
+    ],
 }
 
 // GN: //protos/perfetto/ipc:ipc
 genrule {
-  name: "perfetto_protos_perfetto_ipc_ipc_gen_headers",
-  srcs: [
-    "protos/perfetto/ipc/consumer_port.proto",
-    "protos/perfetto/ipc/producer_port.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "ipc_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location ipc_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/ipc/consumer_port.ipc.h",
-    "external/perfetto/protos/perfetto/ipc/producer_port.ipc.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_ipc_ipc_gen_headers",
+    srcs: [
+        "protos/perfetto/ipc/consumer_port.proto",
+        "protos/perfetto/ipc/producer_port.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "ipc_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location ipc_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/ipc/consumer_port.ipc.h",
+        "external/perfetto/protos/perfetto/ipc/producer_port.ipc.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/ipc:wire_protocol_cpp
 genrule {
-  name: "perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen",
-  srcs: [
-    "protos/perfetto/ipc/wire_protocol.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/ipc/wire_protocol.gen.cc",
-  ],
+    name: "perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen",
+    srcs: [
+        "protos/perfetto/ipc/wire_protocol.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/ipc/wire_protocol.gen.cc",
+    ],
 }
 
 // GN: //protos/perfetto/ipc:wire_protocol_cpp
 genrule {
-  name: "perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen_headers",
-  srcs: [
-    "protos/perfetto/ipc/wire_protocol.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/ipc/wire_protocol.gen.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen_headers",
+    srcs: [
+        "protos/perfetto/ipc/wire_protocol.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/ipc/wire_protocol.gen.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/metrics/chrome:descriptor
 genrule {
-  name: "perfetto_protos_perfetto_metrics_chrome_descriptor",
-  srcs: [
-    "protos/perfetto/metrics/android/batt_metric.proto",
-    "protos/perfetto/metrics/android/cpu_metric.proto",
-    "protos/perfetto/metrics/android/display_metrics.proto",
-    "protos/perfetto/metrics/android/dma_heap_metric.proto",
-    "protos/perfetto/metrics/android/fastrpc_metric.proto",
-    "protos/perfetto/metrics/android/g2d_metric.proto",
-    "protos/perfetto/metrics/android/gpu_metric.proto",
-    "protos/perfetto/metrics/android/hwcomposer.proto",
-    "protos/perfetto/metrics/android/hwui_metric.proto",
-    "protos/perfetto/metrics/android/ion_metric.proto",
-    "protos/perfetto/metrics/android/jank_metric.proto",
-    "protos/perfetto/metrics/android/java_heap_histogram.proto",
-    "protos/perfetto/metrics/android/java_heap_stats.proto",
-    "protos/perfetto/metrics/android/lmk_metric.proto",
-    "protos/perfetto/metrics/android/lmk_reason_metric.proto",
-    "protos/perfetto/metrics/android/mem_metric.proto",
-    "protos/perfetto/metrics/android/mem_unagg_metric.proto",
-    "protos/perfetto/metrics/android/package_list.proto",
-    "protos/perfetto/metrics/android/powrails_metric.proto",
-    "protos/perfetto/metrics/android/process_metadata.proto",
-    "protos/perfetto/metrics/android/profiler_smaps.proto",
-    "protos/perfetto/metrics/android/startup_metric.proto",
-    "protos/perfetto/metrics/android/surfaceflinger.proto",
-    "protos/perfetto/metrics/android/sysui_cuj_metrics.proto",
-    "protos/perfetto/metrics/android/task_names.proto",
-    "protos/perfetto/metrics/android/thread_time_in_state_metric.proto",
-    "protos/perfetto/metrics/android/trace_quality.proto",
-    "protos/perfetto/metrics/android/unsymbolized_frames.proto",
-    "protos/perfetto/metrics/chrome/all_chrome_metrics.proto",
-    "protos/perfetto/metrics/chrome/blink_gc_metric.proto",
-    "protos/perfetto/metrics/chrome/frame_times.proto",
-    "protos/perfetto/metrics/chrome/media_metric.proto",
-    "protos/perfetto/metrics/chrome/reported_by_page.proto",
-    "protos/perfetto/metrics/chrome/scroll_jank.proto",
-    "protos/perfetto/metrics/chrome/test_chrome_metric.proto",
-    "protos/perfetto/metrics/chrome/touch_jank.proto",
-    "protos/perfetto/metrics/custom_options.proto",
-    "protos/perfetto/metrics/metrics.proto",
-  ],
-  tools: [
-    "aprotoc",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --proto_path=external/protobuf/src --descriptor_set_out=$(out) $(in)",
-  out: [
-    "perfetto_protos_perfetto_metrics_chrome_descriptor.bin",
-  ],
+    name: "perfetto_protos_perfetto_metrics_chrome_descriptor",
+    srcs: [
+        "protos/perfetto/metrics/android/batt_metric.proto",
+        "protos/perfetto/metrics/android/cpu_metric.proto",
+        "protos/perfetto/metrics/android/display_metrics.proto",
+        "protos/perfetto/metrics/android/dma_heap_metric.proto",
+        "protos/perfetto/metrics/android/fastrpc_metric.proto",
+        "protos/perfetto/metrics/android/g2d_metric.proto",
+        "protos/perfetto/metrics/android/gpu_metric.proto",
+        "protos/perfetto/metrics/android/hwcomposer.proto",
+        "protos/perfetto/metrics/android/hwui_metric.proto",
+        "protos/perfetto/metrics/android/ion_metric.proto",
+        "protos/perfetto/metrics/android/jank_metric.proto",
+        "protos/perfetto/metrics/android/java_heap_histogram.proto",
+        "protos/perfetto/metrics/android/java_heap_stats.proto",
+        "protos/perfetto/metrics/android/lmk_metric.proto",
+        "protos/perfetto/metrics/android/lmk_reason_metric.proto",
+        "protos/perfetto/metrics/android/mem_metric.proto",
+        "protos/perfetto/metrics/android/mem_unagg_metric.proto",
+        "protos/perfetto/metrics/android/multiuser_metric.proto",
+        "protos/perfetto/metrics/android/package_list.proto",
+        "protos/perfetto/metrics/android/powrails_metric.proto",
+        "protos/perfetto/metrics/android/process_metadata.proto",
+        "protos/perfetto/metrics/android/profiler_smaps.proto",
+        "protos/perfetto/metrics/android/startup_metric.proto",
+        "protos/perfetto/metrics/android/surfaceflinger.proto",
+        "protos/perfetto/metrics/android/sysui_cuj_metrics.proto",
+        "protos/perfetto/metrics/android/task_names.proto",
+        "protos/perfetto/metrics/android/thread_time_in_state_metric.proto",
+        "protos/perfetto/metrics/android/trace_quality.proto",
+        "protos/perfetto/metrics/android/unsymbolized_frames.proto",
+        "protos/perfetto/metrics/chrome/all_chrome_metrics.proto",
+        "protos/perfetto/metrics/chrome/blink_gc_metric.proto",
+        "protos/perfetto/metrics/chrome/frame_times.proto",
+        "protos/perfetto/metrics/chrome/media_metric.proto",
+        "protos/perfetto/metrics/chrome/reported_by_page.proto",
+        "protos/perfetto/metrics/chrome/scroll_jank.proto",
+        "protos/perfetto/metrics/chrome/test_chrome_metric.proto",
+        "protos/perfetto/metrics/chrome/touch_jank.proto",
+        "protos/perfetto/metrics/custom_options.proto",
+        "protos/perfetto/metrics/metrics.proto",
+    ],
+    tools: [
+        "aprotoc",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --proto_path=external/protobuf/src --descriptor_set_out=$(out) $(in)",
+    out: [
+        "perfetto_protos_perfetto_metrics_chrome_descriptor.bin",
+    ],
 }
 
 // GN: //protos/perfetto/metrics:descriptor
 genrule {
-  name: "perfetto_protos_perfetto_metrics_descriptor",
-  srcs: [
-    "protos/perfetto/metrics/android/batt_metric.proto",
-    "protos/perfetto/metrics/android/cpu_metric.proto",
-    "protos/perfetto/metrics/android/display_metrics.proto",
-    "protos/perfetto/metrics/android/dma_heap_metric.proto",
-    "protos/perfetto/metrics/android/fastrpc_metric.proto",
-    "protos/perfetto/metrics/android/g2d_metric.proto",
-    "protos/perfetto/metrics/android/gpu_metric.proto",
-    "protos/perfetto/metrics/android/hwcomposer.proto",
-    "protos/perfetto/metrics/android/hwui_metric.proto",
-    "protos/perfetto/metrics/android/ion_metric.proto",
-    "protos/perfetto/metrics/android/jank_metric.proto",
-    "protos/perfetto/metrics/android/java_heap_histogram.proto",
-    "protos/perfetto/metrics/android/java_heap_stats.proto",
-    "protos/perfetto/metrics/android/lmk_metric.proto",
-    "protos/perfetto/metrics/android/lmk_reason_metric.proto",
-    "protos/perfetto/metrics/android/mem_metric.proto",
-    "protos/perfetto/metrics/android/mem_unagg_metric.proto",
-    "protos/perfetto/metrics/android/package_list.proto",
-    "protos/perfetto/metrics/android/powrails_metric.proto",
-    "protos/perfetto/metrics/android/process_metadata.proto",
-    "protos/perfetto/metrics/android/profiler_smaps.proto",
-    "protos/perfetto/metrics/android/startup_metric.proto",
-    "protos/perfetto/metrics/android/surfaceflinger.proto",
-    "protos/perfetto/metrics/android/sysui_cuj_metrics.proto",
-    "protos/perfetto/metrics/android/task_names.proto",
-    "protos/perfetto/metrics/android/thread_time_in_state_metric.proto",
-    "protos/perfetto/metrics/android/trace_quality.proto",
-    "protos/perfetto/metrics/android/unsymbolized_frames.proto",
-    "protos/perfetto/metrics/metrics.proto",
-  ],
-  tools: [
-    "aprotoc",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --descriptor_set_out=$(out) $(in)",
-  out: [
-    "perfetto_protos_perfetto_metrics_descriptor.bin",
-  ],
+    name: "perfetto_protos_perfetto_metrics_descriptor",
+    srcs: [
+        "protos/perfetto/metrics/android/batt_metric.proto",
+        "protos/perfetto/metrics/android/cpu_metric.proto",
+        "protos/perfetto/metrics/android/display_metrics.proto",
+        "protos/perfetto/metrics/android/dma_heap_metric.proto",
+        "protos/perfetto/metrics/android/fastrpc_metric.proto",
+        "protos/perfetto/metrics/android/g2d_metric.proto",
+        "protos/perfetto/metrics/android/gpu_metric.proto",
+        "protos/perfetto/metrics/android/hwcomposer.proto",
+        "protos/perfetto/metrics/android/hwui_metric.proto",
+        "protos/perfetto/metrics/android/ion_metric.proto",
+        "protos/perfetto/metrics/android/jank_metric.proto",
+        "protos/perfetto/metrics/android/java_heap_histogram.proto",
+        "protos/perfetto/metrics/android/java_heap_stats.proto",
+        "protos/perfetto/metrics/android/lmk_metric.proto",
+        "protos/perfetto/metrics/android/lmk_reason_metric.proto",
+        "protos/perfetto/metrics/android/mem_metric.proto",
+        "protos/perfetto/metrics/android/mem_unagg_metric.proto",
+        "protos/perfetto/metrics/android/multiuser_metric.proto",
+        "protos/perfetto/metrics/android/package_list.proto",
+        "protos/perfetto/metrics/android/powrails_metric.proto",
+        "protos/perfetto/metrics/android/process_metadata.proto",
+        "protos/perfetto/metrics/android/profiler_smaps.proto",
+        "protos/perfetto/metrics/android/startup_metric.proto",
+        "protos/perfetto/metrics/android/surfaceflinger.proto",
+        "protos/perfetto/metrics/android/sysui_cuj_metrics.proto",
+        "protos/perfetto/metrics/android/task_names.proto",
+        "protos/perfetto/metrics/android/thread_time_in_state_metric.proto",
+        "protos/perfetto/metrics/android/trace_quality.proto",
+        "protos/perfetto/metrics/android/unsymbolized_frames.proto",
+        "protos/perfetto/metrics/metrics.proto",
+    ],
+    tools: [
+        "aprotoc",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --descriptor_set_out=$(out) $(in)",
+    out: [
+        "perfetto_protos_perfetto_metrics_descriptor.bin",
+    ],
 }
 
 // GN: //protos/perfetto/trace/android:cpp
 genrule {
-  name: "perfetto_protos_perfetto_trace_android_cpp_gen",
-  srcs: [
-    "protos/perfetto/trace/android/android_log.proto",
-    "protos/perfetto/trace/android/frame_timeline_event.proto",
-    "protos/perfetto/trace/android/gpu_mem_event.proto",
-    "protos/perfetto/trace/android/graphics_frame_event.proto",
-    "protos/perfetto/trace/android/initial_display_state.proto",
-    "protos/perfetto/trace/android/packages_list.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/android/android_log.gen.cc",
-    "external/perfetto/protos/perfetto/trace/android/frame_timeline_event.gen.cc",
-    "external/perfetto/protos/perfetto/trace/android/gpu_mem_event.gen.cc",
-    "external/perfetto/protos/perfetto/trace/android/graphics_frame_event.gen.cc",
-    "external/perfetto/protos/perfetto/trace/android/initial_display_state.gen.cc",
-    "external/perfetto/protos/perfetto/trace/android/packages_list.gen.cc",
-  ],
+    name: "perfetto_protos_perfetto_trace_android_cpp_gen",
+    srcs: [
+        "protos/perfetto/trace/android/android_log.proto",
+        "protos/perfetto/trace/android/frame_timeline_event.proto",
+        "protos/perfetto/trace/android/gpu_mem_event.proto",
+        "protos/perfetto/trace/android/graphics_frame_event.proto",
+        "protos/perfetto/trace/android/initial_display_state.proto",
+        "protos/perfetto/trace/android/packages_list.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/android/android_log.gen.cc",
+        "external/perfetto/protos/perfetto/trace/android/frame_timeline_event.gen.cc",
+        "external/perfetto/protos/perfetto/trace/android/gpu_mem_event.gen.cc",
+        "external/perfetto/protos/perfetto/trace/android/graphics_frame_event.gen.cc",
+        "external/perfetto/protos/perfetto/trace/android/initial_display_state.gen.cc",
+        "external/perfetto/protos/perfetto/trace/android/packages_list.gen.cc",
+    ],
 }
 
 // GN: //protos/perfetto/trace/android:cpp
 genrule {
-  name: "perfetto_protos_perfetto_trace_android_cpp_gen_headers",
-  srcs: [
-    "protos/perfetto/trace/android/android_log.proto",
-    "protos/perfetto/trace/android/frame_timeline_event.proto",
-    "protos/perfetto/trace/android/gpu_mem_event.proto",
-    "protos/perfetto/trace/android/graphics_frame_event.proto",
-    "protos/perfetto/trace/android/initial_display_state.proto",
-    "protos/perfetto/trace/android/packages_list.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/android/android_log.gen.h",
-    "external/perfetto/protos/perfetto/trace/android/frame_timeline_event.gen.h",
-    "external/perfetto/protos/perfetto/trace/android/gpu_mem_event.gen.h",
-    "external/perfetto/protos/perfetto/trace/android/graphics_frame_event.gen.h",
-    "external/perfetto/protos/perfetto/trace/android/initial_display_state.gen.h",
-    "external/perfetto/protos/perfetto/trace/android/packages_list.gen.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_trace_android_cpp_gen_headers",
+    srcs: [
+        "protos/perfetto/trace/android/android_log.proto",
+        "protos/perfetto/trace/android/frame_timeline_event.proto",
+        "protos/perfetto/trace/android/gpu_mem_event.proto",
+        "protos/perfetto/trace/android/graphics_frame_event.proto",
+        "protos/perfetto/trace/android/initial_display_state.proto",
+        "protos/perfetto/trace/android/packages_list.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/android/android_log.gen.h",
+        "external/perfetto/protos/perfetto/trace/android/frame_timeline_event.gen.h",
+        "external/perfetto/protos/perfetto/trace/android/gpu_mem_event.gen.h",
+        "external/perfetto/protos/perfetto/trace/android/graphics_frame_event.gen.h",
+        "external/perfetto/protos/perfetto/trace/android/initial_display_state.gen.h",
+        "external/perfetto/protos/perfetto/trace/android/packages_list.gen.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/trace/android:lite
 genrule {
-  name: "perfetto_protos_perfetto_trace_android_lite_gen",
-  srcs: [
-    "protos/perfetto/trace/android/android_log.proto",
-    "protos/perfetto/trace/android/frame_timeline_event.proto",
-    "protos/perfetto/trace/android/gpu_mem_event.proto",
-    "protos/perfetto/trace/android/graphics_frame_event.proto",
-    "protos/perfetto/trace/android/initial_display_state.proto",
-    "protos/perfetto/trace/android/packages_list.proto",
-  ],
-  tools: [
-    "aprotoc",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/android/android_log.pb.cc",
-    "external/perfetto/protos/perfetto/trace/android/frame_timeline_event.pb.cc",
-    "external/perfetto/protos/perfetto/trace/android/gpu_mem_event.pb.cc",
-    "external/perfetto/protos/perfetto/trace/android/graphics_frame_event.pb.cc",
-    "external/perfetto/protos/perfetto/trace/android/initial_display_state.pb.cc",
-    "external/perfetto/protos/perfetto/trace/android/packages_list.pb.cc",
-  ],
+    name: "perfetto_protos_perfetto_trace_android_lite_gen",
+    srcs: [
+        "protos/perfetto/trace/android/android_log.proto",
+        "protos/perfetto/trace/android/frame_timeline_event.proto",
+        "protos/perfetto/trace/android/gpu_mem_event.proto",
+        "protos/perfetto/trace/android/graphics_frame_event.proto",
+        "protos/perfetto/trace/android/initial_display_state.proto",
+        "protos/perfetto/trace/android/packages_list.proto",
+    ],
+    tools: [
+        "aprotoc",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/android/android_log.pb.cc",
+        "external/perfetto/protos/perfetto/trace/android/frame_timeline_event.pb.cc",
+        "external/perfetto/protos/perfetto/trace/android/gpu_mem_event.pb.cc",
+        "external/perfetto/protos/perfetto/trace/android/graphics_frame_event.pb.cc",
+        "external/perfetto/protos/perfetto/trace/android/initial_display_state.pb.cc",
+        "external/perfetto/protos/perfetto/trace/android/packages_list.pb.cc",
+    ],
 }
 
 // GN: //protos/perfetto/trace/android:lite
 genrule {
-  name: "perfetto_protos_perfetto_trace_android_lite_gen_headers",
-  srcs: [
-    "protos/perfetto/trace/android/android_log.proto",
-    "protos/perfetto/trace/android/frame_timeline_event.proto",
-    "protos/perfetto/trace/android/gpu_mem_event.proto",
-    "protos/perfetto/trace/android/graphics_frame_event.proto",
-    "protos/perfetto/trace/android/initial_display_state.proto",
-    "protos/perfetto/trace/android/packages_list.proto",
-  ],
-  tools: [
-    "aprotoc",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/android/android_log.pb.h",
-    "external/perfetto/protos/perfetto/trace/android/frame_timeline_event.pb.h",
-    "external/perfetto/protos/perfetto/trace/android/gpu_mem_event.pb.h",
-    "external/perfetto/protos/perfetto/trace/android/graphics_frame_event.pb.h",
-    "external/perfetto/protos/perfetto/trace/android/initial_display_state.pb.h",
-    "external/perfetto/protos/perfetto/trace/android/packages_list.pb.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_trace_android_lite_gen_headers",
+    srcs: [
+        "protos/perfetto/trace/android/android_log.proto",
+        "protos/perfetto/trace/android/frame_timeline_event.proto",
+        "protos/perfetto/trace/android/gpu_mem_event.proto",
+        "protos/perfetto/trace/android/graphics_frame_event.proto",
+        "protos/perfetto/trace/android/initial_display_state.proto",
+        "protos/perfetto/trace/android/packages_list.proto",
+    ],
+    tools: [
+        "aprotoc",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/android/android_log.pb.h",
+        "external/perfetto/protos/perfetto/trace/android/frame_timeline_event.pb.h",
+        "external/perfetto/protos/perfetto/trace/android/gpu_mem_event.pb.h",
+        "external/perfetto/protos/perfetto/trace/android/graphics_frame_event.pb.h",
+        "external/perfetto/protos/perfetto/trace/android/initial_display_state.pb.h",
+        "external/perfetto/protos/perfetto/trace/android/packages_list.pb.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/trace/android:zero
 genrule {
-  name: "perfetto_protos_perfetto_trace_android_zero_gen",
-  srcs: [
-    "protos/perfetto/trace/android/android_log.proto",
-    "protos/perfetto/trace/android/frame_timeline_event.proto",
-    "protos/perfetto/trace/android/gpu_mem_event.proto",
-    "protos/perfetto/trace/android/graphics_frame_event.proto",
-    "protos/perfetto/trace/android/initial_display_state.proto",
-    "protos/perfetto/trace/android/packages_list.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "protozero_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/android/android_log.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/android/frame_timeline_event.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/android/gpu_mem_event.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/android/graphics_frame_event.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/android/initial_display_state.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/android/packages_list.pbzero.cc",
-  ],
+    name: "perfetto_protos_perfetto_trace_android_zero_gen",
+    srcs: [
+        "protos/perfetto/trace/android/android_log.proto",
+        "protos/perfetto/trace/android/frame_timeline_event.proto",
+        "protos/perfetto/trace/android/gpu_mem_event.proto",
+        "protos/perfetto/trace/android/graphics_frame_event.proto",
+        "protos/perfetto/trace/android/initial_display_state.proto",
+        "protos/perfetto/trace/android/packages_list.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "protozero_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/android/android_log.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/android/frame_timeline_event.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/android/gpu_mem_event.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/android/graphics_frame_event.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/android/initial_display_state.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/android/packages_list.pbzero.cc",
+    ],
 }
 
 // GN: //protos/perfetto/trace/android:zero
 genrule {
-  name: "perfetto_protos_perfetto_trace_android_zero_gen_headers",
-  srcs: [
-    "protos/perfetto/trace/android/android_log.proto",
-    "protos/perfetto/trace/android/frame_timeline_event.proto",
-    "protos/perfetto/trace/android/gpu_mem_event.proto",
-    "protos/perfetto/trace/android/graphics_frame_event.proto",
-    "protos/perfetto/trace/android/initial_display_state.proto",
-    "protos/perfetto/trace/android/packages_list.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "protozero_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/android/android_log.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/android/frame_timeline_event.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/android/gpu_mem_event.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/android/graphics_frame_event.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/android/initial_display_state.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/android/packages_list.pbzero.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_trace_android_zero_gen_headers",
+    srcs: [
+        "protos/perfetto/trace/android/android_log.proto",
+        "protos/perfetto/trace/android/frame_timeline_event.proto",
+        "protos/perfetto/trace/android/gpu_mem_event.proto",
+        "protos/perfetto/trace/android/graphics_frame_event.proto",
+        "protos/perfetto/trace/android/initial_display_state.proto",
+        "protos/perfetto/trace/android/packages_list.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "protozero_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/android/android_log.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/android/frame_timeline_event.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/android/gpu_mem_event.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/android/graphics_frame_event.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/android/initial_display_state.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/android/packages_list.pbzero.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/trace/chrome:cpp
 genrule {
-  name: "perfetto_protos_perfetto_trace_chrome_cpp_gen",
-  srcs: [
-    "protos/perfetto/trace/chrome/chrome_benchmark_metadata.proto",
-    "protos/perfetto/trace/chrome/chrome_metadata.proto",
-    "protos/perfetto/trace/chrome/chrome_trace_event.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/chrome/chrome_benchmark_metadata.gen.cc",
-    "external/perfetto/protos/perfetto/trace/chrome/chrome_metadata.gen.cc",
-    "external/perfetto/protos/perfetto/trace/chrome/chrome_trace_event.gen.cc",
-  ],
+    name: "perfetto_protos_perfetto_trace_chrome_cpp_gen",
+    srcs: [
+        "protos/perfetto/trace/chrome/chrome_benchmark_metadata.proto",
+        "protos/perfetto/trace/chrome/chrome_metadata.proto",
+        "protos/perfetto/trace/chrome/chrome_trace_event.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/chrome/chrome_benchmark_metadata.gen.cc",
+        "external/perfetto/protos/perfetto/trace/chrome/chrome_metadata.gen.cc",
+        "external/perfetto/protos/perfetto/trace/chrome/chrome_trace_event.gen.cc",
+    ],
 }
 
 // GN: //protos/perfetto/trace/chrome:cpp
 genrule {
-  name: "perfetto_protos_perfetto_trace_chrome_cpp_gen_headers",
-  srcs: [
-    "protos/perfetto/trace/chrome/chrome_benchmark_metadata.proto",
-    "protos/perfetto/trace/chrome/chrome_metadata.proto",
-    "protos/perfetto/trace/chrome/chrome_trace_event.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/chrome/chrome_benchmark_metadata.gen.h",
-    "external/perfetto/protos/perfetto/trace/chrome/chrome_metadata.gen.h",
-    "external/perfetto/protos/perfetto/trace/chrome/chrome_trace_event.gen.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_trace_chrome_cpp_gen_headers",
+    srcs: [
+        "protos/perfetto/trace/chrome/chrome_benchmark_metadata.proto",
+        "protos/perfetto/trace/chrome/chrome_metadata.proto",
+        "protos/perfetto/trace/chrome/chrome_trace_event.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/chrome/chrome_benchmark_metadata.gen.h",
+        "external/perfetto/protos/perfetto/trace/chrome/chrome_metadata.gen.h",
+        "external/perfetto/protos/perfetto/trace/chrome/chrome_trace_event.gen.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/trace/chrome:lite
 genrule {
-  name: "perfetto_protos_perfetto_trace_chrome_lite_gen",
-  srcs: [
-    "protos/perfetto/trace/chrome/chrome_benchmark_metadata.proto",
-    "protos/perfetto/trace/chrome/chrome_metadata.proto",
-    "protos/perfetto/trace/chrome/chrome_trace_event.proto",
-  ],
-  tools: [
-    "aprotoc",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/chrome/chrome_benchmark_metadata.pb.cc",
-    "external/perfetto/protos/perfetto/trace/chrome/chrome_metadata.pb.cc",
-    "external/perfetto/protos/perfetto/trace/chrome/chrome_trace_event.pb.cc",
-  ],
+    name: "perfetto_protos_perfetto_trace_chrome_lite_gen",
+    srcs: [
+        "protos/perfetto/trace/chrome/chrome_benchmark_metadata.proto",
+        "protos/perfetto/trace/chrome/chrome_metadata.proto",
+        "protos/perfetto/trace/chrome/chrome_trace_event.proto",
+    ],
+    tools: [
+        "aprotoc",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/chrome/chrome_benchmark_metadata.pb.cc",
+        "external/perfetto/protos/perfetto/trace/chrome/chrome_metadata.pb.cc",
+        "external/perfetto/protos/perfetto/trace/chrome/chrome_trace_event.pb.cc",
+    ],
 }
 
 // GN: //protos/perfetto/trace/chrome:lite
 genrule {
-  name: "perfetto_protos_perfetto_trace_chrome_lite_gen_headers",
-  srcs: [
-    "protos/perfetto/trace/chrome/chrome_benchmark_metadata.proto",
-    "protos/perfetto/trace/chrome/chrome_metadata.proto",
-    "protos/perfetto/trace/chrome/chrome_trace_event.proto",
-  ],
-  tools: [
-    "aprotoc",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/chrome/chrome_benchmark_metadata.pb.h",
-    "external/perfetto/protos/perfetto/trace/chrome/chrome_metadata.pb.h",
-    "external/perfetto/protos/perfetto/trace/chrome/chrome_trace_event.pb.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_trace_chrome_lite_gen_headers",
+    srcs: [
+        "protos/perfetto/trace/chrome/chrome_benchmark_metadata.proto",
+        "protos/perfetto/trace/chrome/chrome_metadata.proto",
+        "protos/perfetto/trace/chrome/chrome_trace_event.proto",
+    ],
+    tools: [
+        "aprotoc",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/chrome/chrome_benchmark_metadata.pb.h",
+        "external/perfetto/protos/perfetto/trace/chrome/chrome_metadata.pb.h",
+        "external/perfetto/protos/perfetto/trace/chrome/chrome_trace_event.pb.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/trace/chrome:zero
 genrule {
-  name: "perfetto_protos_perfetto_trace_chrome_zero_gen",
-  srcs: [
-    "protos/perfetto/trace/chrome/chrome_benchmark_metadata.proto",
-    "protos/perfetto/trace/chrome/chrome_metadata.proto",
-    "protos/perfetto/trace/chrome/chrome_trace_event.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "protozero_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/chrome/chrome_benchmark_metadata.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/chrome/chrome_metadata.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/chrome/chrome_trace_event.pbzero.cc",
-  ],
+    name: "perfetto_protos_perfetto_trace_chrome_zero_gen",
+    srcs: [
+        "protos/perfetto/trace/chrome/chrome_benchmark_metadata.proto",
+        "protos/perfetto/trace/chrome/chrome_metadata.proto",
+        "protos/perfetto/trace/chrome/chrome_trace_event.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "protozero_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/chrome/chrome_benchmark_metadata.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/chrome/chrome_metadata.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/chrome/chrome_trace_event.pbzero.cc",
+    ],
 }
 
 // GN: //protos/perfetto/trace/chrome:zero
 genrule {
-  name: "perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
-  srcs: [
-    "protos/perfetto/trace/chrome/chrome_benchmark_metadata.proto",
-    "protos/perfetto/trace/chrome/chrome_metadata.proto",
-    "protos/perfetto/trace/chrome/chrome_trace_event.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "protozero_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/chrome/chrome_benchmark_metadata.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/chrome/chrome_metadata.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/chrome/chrome_trace_event.pbzero.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
+    srcs: [
+        "protos/perfetto/trace/chrome/chrome_benchmark_metadata.proto",
+        "protos/perfetto/trace/chrome/chrome_metadata.proto",
+        "protos/perfetto/trace/chrome/chrome_trace_event.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "protozero_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/chrome/chrome_benchmark_metadata.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/chrome/chrome_metadata.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/chrome/chrome_trace_event.pbzero.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/trace:descriptor
 genrule {
-  name: "perfetto_protos_perfetto_trace_descriptor",
-  srcs: [
-    "protos/perfetto/common/android_energy_consumer_descriptor.proto",
-    "protos/perfetto/common/android_log_constants.proto",
-    "protos/perfetto/common/builtin_clock.proto",
-    "protos/perfetto/common/commit_data_request.proto",
-    "protos/perfetto/common/data_source_descriptor.proto",
-    "protos/perfetto/common/descriptor.proto",
-    "protos/perfetto/common/gpu_counter_descriptor.proto",
-    "protos/perfetto/common/interceptor_descriptor.proto",
-    "protos/perfetto/common/observable_events.proto",
-    "protos/perfetto/common/perf_events.proto",
-    "protos/perfetto/common/sys_stats_counters.proto",
-    "protos/perfetto/common/trace_stats.proto",
-    "protos/perfetto/common/tracing_service_capabilities.proto",
-    "protos/perfetto/common/tracing_service_state.proto",
-    "protos/perfetto/common/track_event_descriptor.proto",
-    "protos/perfetto/config/android/android_log_config.proto",
-    "protos/perfetto/config/android/android_polled_state_config.proto",
-    "protos/perfetto/config/android/packages_list_config.proto",
-    "protos/perfetto/config/chrome/chrome_config.proto",
-    "protos/perfetto/config/data_source_config.proto",
-    "protos/perfetto/config/ftrace/ftrace_config.proto",
-    "protos/perfetto/config/gpu/gpu_counter_config.proto",
-    "protos/perfetto/config/gpu/vulkan_memory_config.proto",
-    "protos/perfetto/config/inode_file/inode_file_config.proto",
-    "protos/perfetto/config/interceptor_config.proto",
-    "protos/perfetto/config/interceptors/console_config.proto",
-    "protos/perfetto/config/power/android_power_config.proto",
-    "protos/perfetto/config/process_stats/process_stats_config.proto",
-    "protos/perfetto/config/profiling/heapprofd_config.proto",
-    "protos/perfetto/config/profiling/java_hprof_config.proto",
-    "protos/perfetto/config/profiling/perf_event_config.proto",
-    "protos/perfetto/config/stress_test_config.proto",
-    "protos/perfetto/config/sys_stats/sys_stats_config.proto",
-    "protos/perfetto/config/test_config.proto",
-    "protos/perfetto/config/trace_config.proto",
-    "protos/perfetto/config/track_event/track_event_config.proto",
-    "protos/perfetto/trace/android/android_log.proto",
-    "protos/perfetto/trace/android/frame_timeline_event.proto",
-    "protos/perfetto/trace/android/gpu_mem_event.proto",
-    "protos/perfetto/trace/android/graphics_frame_event.proto",
-    "protos/perfetto/trace/android/initial_display_state.proto",
-    "protos/perfetto/trace/android/packages_list.proto",
-    "protos/perfetto/trace/chrome/chrome_benchmark_metadata.proto",
-    "protos/perfetto/trace/chrome/chrome_metadata.proto",
-    "protos/perfetto/trace/chrome/chrome_trace_event.proto",
-    "protos/perfetto/trace/clock_snapshot.proto",
-    "protos/perfetto/trace/extension_descriptor.proto",
-    "protos/perfetto/trace/filesystem/inode_file_map.proto",
-    "protos/perfetto/trace/ftrace/binder.proto",
-    "protos/perfetto/trace/ftrace/block.proto",
-    "protos/perfetto/trace/ftrace/cgroup.proto",
-    "protos/perfetto/trace/ftrace/clk.proto",
-    "protos/perfetto/trace/ftrace/compaction.proto",
-    "protos/perfetto/trace/ftrace/cpuhp.proto",
-    "protos/perfetto/trace/ftrace/dmabuf_heap.proto",
-    "protos/perfetto/trace/ftrace/dpu.proto",
-    "protos/perfetto/trace/ftrace/ext4.proto",
-    "protos/perfetto/trace/ftrace/f2fs.proto",
-    "protos/perfetto/trace/ftrace/fastrpc.proto",
-    "protos/perfetto/trace/ftrace/fence.proto",
-    "protos/perfetto/trace/ftrace/filemap.proto",
-    "protos/perfetto/trace/ftrace/ftrace.proto",
-    "protos/perfetto/trace/ftrace/ftrace_event.proto",
-    "protos/perfetto/trace/ftrace/ftrace_event_bundle.proto",
-    "protos/perfetto/trace/ftrace/ftrace_stats.proto",
-    "protos/perfetto/trace/ftrace/g2d.proto",
-    "protos/perfetto/trace/ftrace/generic.proto",
-    "protos/perfetto/trace/ftrace/gpu_mem.proto",
-    "protos/perfetto/trace/ftrace/i2c.proto",
-    "protos/perfetto/trace/ftrace/ion.proto",
-    "protos/perfetto/trace/ftrace/ipi.proto",
-    "protos/perfetto/trace/ftrace/irq.proto",
-    "protos/perfetto/trace/ftrace/kmem.proto",
-    "protos/perfetto/trace/ftrace/lowmemorykiller.proto",
-    "protos/perfetto/trace/ftrace/mali.proto",
-    "protos/perfetto/trace/ftrace/mdss.proto",
-    "protos/perfetto/trace/ftrace/mm_event.proto",
-    "protos/perfetto/trace/ftrace/oom.proto",
-    "protos/perfetto/trace/ftrace/power.proto",
-    "protos/perfetto/trace/ftrace/raw_syscalls.proto",
-    "protos/perfetto/trace/ftrace/regulator.proto",
-    "protos/perfetto/trace/ftrace/sched.proto",
-    "protos/perfetto/trace/ftrace/scm.proto",
-    "protos/perfetto/trace/ftrace/sde.proto",
-    "protos/perfetto/trace/ftrace/signal.proto",
-    "protos/perfetto/trace/ftrace/sync.proto",
-    "protos/perfetto/trace/ftrace/systrace.proto",
-    "protos/perfetto/trace/ftrace/task.proto",
-    "protos/perfetto/trace/ftrace/test_bundle_wrapper.proto",
-    "protos/perfetto/trace/ftrace/thermal.proto",
-    "protos/perfetto/trace/ftrace/vmscan.proto",
-    "protos/perfetto/trace/ftrace/workqueue.proto",
-    "protos/perfetto/trace/gpu/gpu_counter_event.proto",
-    "protos/perfetto/trace/gpu/gpu_log.proto",
-    "protos/perfetto/trace/gpu/gpu_render_stage_event.proto",
-    "protos/perfetto/trace/gpu/vulkan_api_event.proto",
-    "protos/perfetto/trace/gpu/vulkan_memory_event.proto",
-    "protos/perfetto/trace/interned_data/interned_data.proto",
-    "protos/perfetto/trace/memory_graph.proto",
-    "protos/perfetto/trace/perfetto/perfetto_metatrace.proto",
-    "protos/perfetto/trace/perfetto/tracing_service_event.proto",
-    "protos/perfetto/trace/power/android_energy_estimation_breakdown.proto",
-    "protos/perfetto/trace/power/battery_counters.proto",
-    "protos/perfetto/trace/power/power_rails.proto",
-    "protos/perfetto/trace/profiling/deobfuscation.proto",
-    "protos/perfetto/trace/profiling/heap_graph.proto",
-    "protos/perfetto/trace/profiling/profile_common.proto",
-    "protos/perfetto/trace/profiling/profile_packet.proto",
-    "protos/perfetto/trace/profiling/smaps.proto",
-    "protos/perfetto/trace/ps/process_stats.proto",
-    "protos/perfetto/trace/ps/process_tree.proto",
-    "protos/perfetto/trace/sys_stats/sys_stats.proto",
-    "protos/perfetto/trace/system_info.proto",
-    "protos/perfetto/trace/system_info/cpu_info.proto",
-    "protos/perfetto/trace/test_event.proto",
-    "protos/perfetto/trace/test_extensions.proto",
-    "protos/perfetto/trace/trace.proto",
-    "protos/perfetto/trace/trace_packet.proto",
-    "protos/perfetto/trace/trace_packet_defaults.proto",
-    "protos/perfetto/trace/track_event/chrome_application_state_info.proto",
-    "protos/perfetto/trace/track_event/chrome_compositor_scheduler_state.proto",
-    "protos/perfetto/trace/track_event/chrome_content_settings_event_info.proto",
-    "protos/perfetto/trace/track_event/chrome_frame_reporter.proto",
-    "protos/perfetto/trace/track_event/chrome_histogram_sample.proto",
-    "protos/perfetto/trace/track_event/chrome_keyed_service.proto",
-    "protos/perfetto/trace/track_event/chrome_latency_info.proto",
-    "protos/perfetto/trace/track_event/chrome_legacy_ipc.proto",
-    "protos/perfetto/trace/track_event/chrome_message_pump.proto",
-    "protos/perfetto/trace/track_event/chrome_mojo_event_info.proto",
-    "protos/perfetto/trace/track_event/chrome_process_descriptor.proto",
-    "protos/perfetto/trace/track_event/chrome_renderer_scheduler_state.proto",
-    "protos/perfetto/trace/track_event/chrome_thread_descriptor.proto",
-    "protos/perfetto/trace/track_event/chrome_user_event.proto",
-    "protos/perfetto/trace/track_event/chrome_window_handle_event_info.proto",
-    "protos/perfetto/trace/track_event/counter_descriptor.proto",
-    "protos/perfetto/trace/track_event/debug_annotation.proto",
-    "protos/perfetto/trace/track_event/log_message.proto",
-    "protos/perfetto/trace/track_event/process_descriptor.proto",
-    "protos/perfetto/trace/track_event/source_location.proto",
-    "protos/perfetto/trace/track_event/task_execution.proto",
-    "protos/perfetto/trace/track_event/thread_descriptor.proto",
-    "protos/perfetto/trace/track_event/track_descriptor.proto",
-    "protos/perfetto/trace/track_event/track_event.proto",
-    "protos/perfetto/trace/trigger.proto",
-    "protos/perfetto/trace/ui_state.proto",
-  ],
-  tools: [
-    "aprotoc",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --descriptor_set_out=$(out) $(in)",
-  out: [
-    "perfetto_protos_perfetto_trace_descriptor.bin",
-  ],
+    name: "perfetto_protos_perfetto_trace_descriptor",
+    srcs: [
+        "protos/perfetto/common/android_energy_consumer_descriptor.proto",
+        "protos/perfetto/common/android_log_constants.proto",
+        "protos/perfetto/common/builtin_clock.proto",
+        "protos/perfetto/common/commit_data_request.proto",
+        "protos/perfetto/common/data_source_descriptor.proto",
+        "protos/perfetto/common/descriptor.proto",
+        "protos/perfetto/common/gpu_counter_descriptor.proto",
+        "protos/perfetto/common/interceptor_descriptor.proto",
+        "protos/perfetto/common/observable_events.proto",
+        "protos/perfetto/common/perf_events.proto",
+        "protos/perfetto/common/sys_stats_counters.proto",
+        "protos/perfetto/common/trace_stats.proto",
+        "protos/perfetto/common/tracing_service_capabilities.proto",
+        "protos/perfetto/common/tracing_service_state.proto",
+        "protos/perfetto/common/track_event_descriptor.proto",
+        "protos/perfetto/config/android/android_log_config.proto",
+        "protos/perfetto/config/android/android_polled_state_config.proto",
+        "protos/perfetto/config/android/packages_list_config.proto",
+        "protos/perfetto/config/chrome/chrome_config.proto",
+        "protos/perfetto/config/data_source_config.proto",
+        "protos/perfetto/config/ftrace/ftrace_config.proto",
+        "protos/perfetto/config/gpu/gpu_counter_config.proto",
+        "protos/perfetto/config/gpu/vulkan_memory_config.proto",
+        "protos/perfetto/config/inode_file/inode_file_config.proto",
+        "protos/perfetto/config/interceptor_config.proto",
+        "protos/perfetto/config/interceptors/console_config.proto",
+        "protos/perfetto/config/power/android_power_config.proto",
+        "protos/perfetto/config/process_stats/process_stats_config.proto",
+        "protos/perfetto/config/profiling/heapprofd_config.proto",
+        "protos/perfetto/config/profiling/java_hprof_config.proto",
+        "protos/perfetto/config/profiling/perf_event_config.proto",
+        "protos/perfetto/config/stress_test_config.proto",
+        "protos/perfetto/config/sys_stats/sys_stats_config.proto",
+        "protos/perfetto/config/test_config.proto",
+        "protos/perfetto/config/trace_config.proto",
+        "protos/perfetto/config/track_event/track_event_config.proto",
+        "protos/perfetto/trace/android/android_log.proto",
+        "protos/perfetto/trace/android/frame_timeline_event.proto",
+        "protos/perfetto/trace/android/gpu_mem_event.proto",
+        "protos/perfetto/trace/android/graphics_frame_event.proto",
+        "protos/perfetto/trace/android/initial_display_state.proto",
+        "protos/perfetto/trace/android/packages_list.proto",
+        "protos/perfetto/trace/chrome/chrome_benchmark_metadata.proto",
+        "protos/perfetto/trace/chrome/chrome_metadata.proto",
+        "protos/perfetto/trace/chrome/chrome_trace_event.proto",
+        "protos/perfetto/trace/clock_snapshot.proto",
+        "protos/perfetto/trace/extension_descriptor.proto",
+        "protos/perfetto/trace/filesystem/inode_file_map.proto",
+        "protos/perfetto/trace/ftrace/binder.proto",
+        "protos/perfetto/trace/ftrace/block.proto",
+        "protos/perfetto/trace/ftrace/cgroup.proto",
+        "protos/perfetto/trace/ftrace/clk.proto",
+        "protos/perfetto/trace/ftrace/compaction.proto",
+        "protos/perfetto/trace/ftrace/cpuhp.proto",
+        "protos/perfetto/trace/ftrace/dmabuf_heap.proto",
+        "protos/perfetto/trace/ftrace/dpu.proto",
+        "protos/perfetto/trace/ftrace/ext4.proto",
+        "protos/perfetto/trace/ftrace/f2fs.proto",
+        "protos/perfetto/trace/ftrace/fastrpc.proto",
+        "protos/perfetto/trace/ftrace/fence.proto",
+        "protos/perfetto/trace/ftrace/filemap.proto",
+        "protos/perfetto/trace/ftrace/ftrace.proto",
+        "protos/perfetto/trace/ftrace/ftrace_event.proto",
+        "protos/perfetto/trace/ftrace/ftrace_event_bundle.proto",
+        "protos/perfetto/trace/ftrace/ftrace_stats.proto",
+        "protos/perfetto/trace/ftrace/g2d.proto",
+        "protos/perfetto/trace/ftrace/generic.proto",
+        "protos/perfetto/trace/ftrace/gpu_mem.proto",
+        "protos/perfetto/trace/ftrace/i2c.proto",
+        "protos/perfetto/trace/ftrace/ion.proto",
+        "protos/perfetto/trace/ftrace/ipi.proto",
+        "protos/perfetto/trace/ftrace/irq.proto",
+        "protos/perfetto/trace/ftrace/kmem.proto",
+        "protos/perfetto/trace/ftrace/lowmemorykiller.proto",
+        "protos/perfetto/trace/ftrace/mali.proto",
+        "protos/perfetto/trace/ftrace/mdss.proto",
+        "protos/perfetto/trace/ftrace/mm_event.proto",
+        "protos/perfetto/trace/ftrace/oom.proto",
+        "protos/perfetto/trace/ftrace/power.proto",
+        "protos/perfetto/trace/ftrace/raw_syscalls.proto",
+        "protos/perfetto/trace/ftrace/regulator.proto",
+        "protos/perfetto/trace/ftrace/sched.proto",
+        "protos/perfetto/trace/ftrace/scm.proto",
+        "protos/perfetto/trace/ftrace/sde.proto",
+        "protos/perfetto/trace/ftrace/signal.proto",
+        "protos/perfetto/trace/ftrace/sync.proto",
+        "protos/perfetto/trace/ftrace/systrace.proto",
+        "protos/perfetto/trace/ftrace/task.proto",
+        "protos/perfetto/trace/ftrace/test_bundle_wrapper.proto",
+        "protos/perfetto/trace/ftrace/thermal.proto",
+        "protos/perfetto/trace/ftrace/vmscan.proto",
+        "protos/perfetto/trace/ftrace/workqueue.proto",
+        "protos/perfetto/trace/gpu/gpu_counter_event.proto",
+        "protos/perfetto/trace/gpu/gpu_log.proto",
+        "protos/perfetto/trace/gpu/gpu_render_stage_event.proto",
+        "protos/perfetto/trace/gpu/vulkan_api_event.proto",
+        "protos/perfetto/trace/gpu/vulkan_memory_event.proto",
+        "protos/perfetto/trace/interned_data/interned_data.proto",
+        "protos/perfetto/trace/memory_graph.proto",
+        "protos/perfetto/trace/perfetto/perfetto_metatrace.proto",
+        "protos/perfetto/trace/perfetto/tracing_service_event.proto",
+        "protos/perfetto/trace/power/android_energy_estimation_breakdown.proto",
+        "protos/perfetto/trace/power/battery_counters.proto",
+        "protos/perfetto/trace/power/power_rails.proto",
+        "protos/perfetto/trace/profiling/deobfuscation.proto",
+        "protos/perfetto/trace/profiling/heap_graph.proto",
+        "protos/perfetto/trace/profiling/profile_common.proto",
+        "protos/perfetto/trace/profiling/profile_packet.proto",
+        "protos/perfetto/trace/profiling/smaps.proto",
+        "protos/perfetto/trace/ps/process_stats.proto",
+        "protos/perfetto/trace/ps/process_tree.proto",
+        "protos/perfetto/trace/sys_stats/sys_stats.proto",
+        "protos/perfetto/trace/system_info.proto",
+        "protos/perfetto/trace/system_info/cpu_info.proto",
+        "protos/perfetto/trace/test_event.proto",
+        "protos/perfetto/trace/test_extensions.proto",
+        "protos/perfetto/trace/trace.proto",
+        "protos/perfetto/trace/trace_packet.proto",
+        "protos/perfetto/trace/trace_packet_defaults.proto",
+        "protos/perfetto/trace/track_event/chrome_application_state_info.proto",
+        "protos/perfetto/trace/track_event/chrome_compositor_scheduler_state.proto",
+        "protos/perfetto/trace/track_event/chrome_content_settings_event_info.proto",
+        "protos/perfetto/trace/track_event/chrome_frame_reporter.proto",
+        "protos/perfetto/trace/track_event/chrome_histogram_sample.proto",
+        "protos/perfetto/trace/track_event/chrome_keyed_service.proto",
+        "protos/perfetto/trace/track_event/chrome_latency_info.proto",
+        "protos/perfetto/trace/track_event/chrome_legacy_ipc.proto",
+        "protos/perfetto/trace/track_event/chrome_message_pump.proto",
+        "protos/perfetto/trace/track_event/chrome_mojo_event_info.proto",
+        "protos/perfetto/trace/track_event/chrome_process_descriptor.proto",
+        "protos/perfetto/trace/track_event/chrome_renderer_scheduler_state.proto",
+        "protos/perfetto/trace/track_event/chrome_thread_descriptor.proto",
+        "protos/perfetto/trace/track_event/chrome_user_event.proto",
+        "protos/perfetto/trace/track_event/chrome_window_handle_event_info.proto",
+        "protos/perfetto/trace/track_event/counter_descriptor.proto",
+        "protos/perfetto/trace/track_event/debug_annotation.proto",
+        "protos/perfetto/trace/track_event/log_message.proto",
+        "protos/perfetto/trace/track_event/process_descriptor.proto",
+        "protos/perfetto/trace/track_event/source_location.proto",
+        "protos/perfetto/trace/track_event/task_execution.proto",
+        "protos/perfetto/trace/track_event/thread_descriptor.proto",
+        "protos/perfetto/trace/track_event/track_descriptor.proto",
+        "protos/perfetto/trace/track_event/track_event.proto",
+        "protos/perfetto/trace/trigger.proto",
+        "protos/perfetto/trace/ui_state.proto",
+    ],
+    tools: [
+        "aprotoc",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --descriptor_set_out=$(out) $(in)",
+    out: [
+        "perfetto_protos_perfetto_trace_descriptor.bin",
+    ],
 }
 
 // GN: //protos/perfetto/trace/filesystem:cpp
 genrule {
-  name: "perfetto_protos_perfetto_trace_filesystem_cpp_gen",
-  srcs: [
-    "protos/perfetto/trace/filesystem/inode_file_map.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/filesystem/inode_file_map.gen.cc",
-  ],
+    name: "perfetto_protos_perfetto_trace_filesystem_cpp_gen",
+    srcs: [
+        "protos/perfetto/trace/filesystem/inode_file_map.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/filesystem/inode_file_map.gen.cc",
+    ],
 }
 
 // GN: //protos/perfetto/trace/filesystem:cpp
 genrule {
-  name: "perfetto_protos_perfetto_trace_filesystem_cpp_gen_headers",
-  srcs: [
-    "protos/perfetto/trace/filesystem/inode_file_map.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/filesystem/inode_file_map.gen.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_trace_filesystem_cpp_gen_headers",
+    srcs: [
+        "protos/perfetto/trace/filesystem/inode_file_map.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/filesystem/inode_file_map.gen.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/trace/filesystem:lite
 genrule {
-  name: "perfetto_protos_perfetto_trace_filesystem_lite_gen",
-  srcs: [
-    "protos/perfetto/trace/filesystem/inode_file_map.proto",
-  ],
-  tools: [
-    "aprotoc",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/filesystem/inode_file_map.pb.cc",
-  ],
+    name: "perfetto_protos_perfetto_trace_filesystem_lite_gen",
+    srcs: [
+        "protos/perfetto/trace/filesystem/inode_file_map.proto",
+    ],
+    tools: [
+        "aprotoc",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/filesystem/inode_file_map.pb.cc",
+    ],
 }
 
 // GN: //protos/perfetto/trace/filesystem:lite
 genrule {
-  name: "perfetto_protos_perfetto_trace_filesystem_lite_gen_headers",
-  srcs: [
-    "protos/perfetto/trace/filesystem/inode_file_map.proto",
-  ],
-  tools: [
-    "aprotoc",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/filesystem/inode_file_map.pb.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_trace_filesystem_lite_gen_headers",
+    srcs: [
+        "protos/perfetto/trace/filesystem/inode_file_map.proto",
+    ],
+    tools: [
+        "aprotoc",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/filesystem/inode_file_map.pb.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/trace/filesystem:zero
 genrule {
-  name: "perfetto_protos_perfetto_trace_filesystem_zero_gen",
-  srcs: [
-    "protos/perfetto/trace/filesystem/inode_file_map.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "protozero_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/filesystem/inode_file_map.pbzero.cc",
-  ],
+    name: "perfetto_protos_perfetto_trace_filesystem_zero_gen",
+    srcs: [
+        "protos/perfetto/trace/filesystem/inode_file_map.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "protozero_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/filesystem/inode_file_map.pbzero.cc",
+    ],
 }
 
 // GN: //protos/perfetto/trace/filesystem:zero
 genrule {
-  name: "perfetto_protos_perfetto_trace_filesystem_zero_gen_headers",
-  srcs: [
-    "protos/perfetto/trace/filesystem/inode_file_map.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "protozero_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/filesystem/inode_file_map.pbzero.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_trace_filesystem_zero_gen_headers",
+    srcs: [
+        "protos/perfetto/trace/filesystem/inode_file_map.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "protozero_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/filesystem/inode_file_map.pbzero.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/trace/ftrace:cpp
 genrule {
-  name: "perfetto_protos_perfetto_trace_ftrace_cpp_gen",
-  srcs: [
-    "protos/perfetto/trace/ftrace/binder.proto",
-    "protos/perfetto/trace/ftrace/block.proto",
-    "protos/perfetto/trace/ftrace/cgroup.proto",
-    "protos/perfetto/trace/ftrace/clk.proto",
-    "protos/perfetto/trace/ftrace/compaction.proto",
-    "protos/perfetto/trace/ftrace/cpuhp.proto",
-    "protos/perfetto/trace/ftrace/dmabuf_heap.proto",
-    "protos/perfetto/trace/ftrace/dpu.proto",
-    "protos/perfetto/trace/ftrace/ext4.proto",
-    "protos/perfetto/trace/ftrace/f2fs.proto",
-    "protos/perfetto/trace/ftrace/fastrpc.proto",
-    "protos/perfetto/trace/ftrace/fence.proto",
-    "protos/perfetto/trace/ftrace/filemap.proto",
-    "protos/perfetto/trace/ftrace/ftrace.proto",
-    "protos/perfetto/trace/ftrace/ftrace_event.proto",
-    "protos/perfetto/trace/ftrace/ftrace_event_bundle.proto",
-    "protos/perfetto/trace/ftrace/ftrace_stats.proto",
-    "protos/perfetto/trace/ftrace/g2d.proto",
-    "protos/perfetto/trace/ftrace/generic.proto",
-    "protos/perfetto/trace/ftrace/gpu_mem.proto",
-    "protos/perfetto/trace/ftrace/i2c.proto",
-    "protos/perfetto/trace/ftrace/ion.proto",
-    "protos/perfetto/trace/ftrace/ipi.proto",
-    "protos/perfetto/trace/ftrace/irq.proto",
-    "protos/perfetto/trace/ftrace/kmem.proto",
-    "protos/perfetto/trace/ftrace/lowmemorykiller.proto",
-    "protos/perfetto/trace/ftrace/mali.proto",
-    "protos/perfetto/trace/ftrace/mdss.proto",
-    "protos/perfetto/trace/ftrace/mm_event.proto",
-    "protos/perfetto/trace/ftrace/oom.proto",
-    "protos/perfetto/trace/ftrace/power.proto",
-    "protos/perfetto/trace/ftrace/raw_syscalls.proto",
-    "protos/perfetto/trace/ftrace/regulator.proto",
-    "protos/perfetto/trace/ftrace/sched.proto",
-    "protos/perfetto/trace/ftrace/scm.proto",
-    "protos/perfetto/trace/ftrace/sde.proto",
-    "protos/perfetto/trace/ftrace/signal.proto",
-    "protos/perfetto/trace/ftrace/sync.proto",
-    "protos/perfetto/trace/ftrace/systrace.proto",
-    "protos/perfetto/trace/ftrace/task.proto",
-    "protos/perfetto/trace/ftrace/test_bundle_wrapper.proto",
-    "protos/perfetto/trace/ftrace/thermal.proto",
-    "protos/perfetto/trace/ftrace/vmscan.proto",
-    "protos/perfetto/trace/ftrace/workqueue.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/ftrace/binder.gen.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/block.gen.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/cgroup.gen.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/clk.gen.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/compaction.gen.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/cpuhp.gen.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/dmabuf_heap.gen.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/dpu.gen.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/ext4.gen.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/f2fs.gen.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/fastrpc.gen.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/fence.gen.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/filemap.gen.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/ftrace.gen.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/ftrace_event.gen.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/ftrace_event_bundle.gen.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/ftrace_stats.gen.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/g2d.gen.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/generic.gen.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/gpu_mem.gen.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/i2c.gen.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/ion.gen.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/ipi.gen.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/irq.gen.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/kmem.gen.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/lowmemorykiller.gen.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/mali.gen.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/mdss.gen.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/mm_event.gen.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/oom.gen.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/power.gen.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/raw_syscalls.gen.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/regulator.gen.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/sched.gen.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/scm.gen.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/sde.gen.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/signal.gen.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/sync.gen.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/systrace.gen.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/task.gen.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/test_bundle_wrapper.gen.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/thermal.gen.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/vmscan.gen.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/workqueue.gen.cc",
-  ],
+    name: "perfetto_protos_perfetto_trace_ftrace_cpp_gen",
+    srcs: [
+        "protos/perfetto/trace/ftrace/binder.proto",
+        "protos/perfetto/trace/ftrace/block.proto",
+        "protos/perfetto/trace/ftrace/cgroup.proto",
+        "protos/perfetto/trace/ftrace/clk.proto",
+        "protos/perfetto/trace/ftrace/compaction.proto",
+        "protos/perfetto/trace/ftrace/cpuhp.proto",
+        "protos/perfetto/trace/ftrace/dmabuf_heap.proto",
+        "protos/perfetto/trace/ftrace/dpu.proto",
+        "protos/perfetto/trace/ftrace/ext4.proto",
+        "protos/perfetto/trace/ftrace/f2fs.proto",
+        "protos/perfetto/trace/ftrace/fastrpc.proto",
+        "protos/perfetto/trace/ftrace/fence.proto",
+        "protos/perfetto/trace/ftrace/filemap.proto",
+        "protos/perfetto/trace/ftrace/ftrace.proto",
+        "protos/perfetto/trace/ftrace/ftrace_event.proto",
+        "protos/perfetto/trace/ftrace/ftrace_event_bundle.proto",
+        "protos/perfetto/trace/ftrace/ftrace_stats.proto",
+        "protos/perfetto/trace/ftrace/g2d.proto",
+        "protos/perfetto/trace/ftrace/generic.proto",
+        "protos/perfetto/trace/ftrace/gpu_mem.proto",
+        "protos/perfetto/trace/ftrace/i2c.proto",
+        "protos/perfetto/trace/ftrace/ion.proto",
+        "protos/perfetto/trace/ftrace/ipi.proto",
+        "protos/perfetto/trace/ftrace/irq.proto",
+        "protos/perfetto/trace/ftrace/kmem.proto",
+        "protos/perfetto/trace/ftrace/lowmemorykiller.proto",
+        "protos/perfetto/trace/ftrace/mali.proto",
+        "protos/perfetto/trace/ftrace/mdss.proto",
+        "protos/perfetto/trace/ftrace/mm_event.proto",
+        "protos/perfetto/trace/ftrace/oom.proto",
+        "protos/perfetto/trace/ftrace/power.proto",
+        "protos/perfetto/trace/ftrace/raw_syscalls.proto",
+        "protos/perfetto/trace/ftrace/regulator.proto",
+        "protos/perfetto/trace/ftrace/sched.proto",
+        "protos/perfetto/trace/ftrace/scm.proto",
+        "protos/perfetto/trace/ftrace/sde.proto",
+        "protos/perfetto/trace/ftrace/signal.proto",
+        "protos/perfetto/trace/ftrace/sync.proto",
+        "protos/perfetto/trace/ftrace/systrace.proto",
+        "protos/perfetto/trace/ftrace/task.proto",
+        "protos/perfetto/trace/ftrace/test_bundle_wrapper.proto",
+        "protos/perfetto/trace/ftrace/thermal.proto",
+        "protos/perfetto/trace/ftrace/vmscan.proto",
+        "protos/perfetto/trace/ftrace/workqueue.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/ftrace/binder.gen.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/block.gen.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/cgroup.gen.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/clk.gen.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/compaction.gen.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/cpuhp.gen.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/dmabuf_heap.gen.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/dpu.gen.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/ext4.gen.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/f2fs.gen.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/fastrpc.gen.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/fence.gen.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/filemap.gen.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/ftrace.gen.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/ftrace_event.gen.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/ftrace_event_bundle.gen.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/ftrace_stats.gen.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/g2d.gen.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/generic.gen.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/gpu_mem.gen.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/i2c.gen.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/ion.gen.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/ipi.gen.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/irq.gen.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/kmem.gen.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/lowmemorykiller.gen.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/mali.gen.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/mdss.gen.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/mm_event.gen.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/oom.gen.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/power.gen.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/raw_syscalls.gen.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/regulator.gen.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/sched.gen.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/scm.gen.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/sde.gen.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/signal.gen.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/sync.gen.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/systrace.gen.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/task.gen.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/test_bundle_wrapper.gen.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/thermal.gen.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/vmscan.gen.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/workqueue.gen.cc",
+    ],
 }
 
 // GN: //protos/perfetto/trace/ftrace:cpp
 genrule {
-  name: "perfetto_protos_perfetto_trace_ftrace_cpp_gen_headers",
-  srcs: [
-    "protos/perfetto/trace/ftrace/binder.proto",
-    "protos/perfetto/trace/ftrace/block.proto",
-    "protos/perfetto/trace/ftrace/cgroup.proto",
-    "protos/perfetto/trace/ftrace/clk.proto",
-    "protos/perfetto/trace/ftrace/compaction.proto",
-    "protos/perfetto/trace/ftrace/cpuhp.proto",
-    "protos/perfetto/trace/ftrace/dmabuf_heap.proto",
-    "protos/perfetto/trace/ftrace/dpu.proto",
-    "protos/perfetto/trace/ftrace/ext4.proto",
-    "protos/perfetto/trace/ftrace/f2fs.proto",
-    "protos/perfetto/trace/ftrace/fastrpc.proto",
-    "protos/perfetto/trace/ftrace/fence.proto",
-    "protos/perfetto/trace/ftrace/filemap.proto",
-    "protos/perfetto/trace/ftrace/ftrace.proto",
-    "protos/perfetto/trace/ftrace/ftrace_event.proto",
-    "protos/perfetto/trace/ftrace/ftrace_event_bundle.proto",
-    "protos/perfetto/trace/ftrace/ftrace_stats.proto",
-    "protos/perfetto/trace/ftrace/g2d.proto",
-    "protos/perfetto/trace/ftrace/generic.proto",
-    "protos/perfetto/trace/ftrace/gpu_mem.proto",
-    "protos/perfetto/trace/ftrace/i2c.proto",
-    "protos/perfetto/trace/ftrace/ion.proto",
-    "protos/perfetto/trace/ftrace/ipi.proto",
-    "protos/perfetto/trace/ftrace/irq.proto",
-    "protos/perfetto/trace/ftrace/kmem.proto",
-    "protos/perfetto/trace/ftrace/lowmemorykiller.proto",
-    "protos/perfetto/trace/ftrace/mali.proto",
-    "protos/perfetto/trace/ftrace/mdss.proto",
-    "protos/perfetto/trace/ftrace/mm_event.proto",
-    "protos/perfetto/trace/ftrace/oom.proto",
-    "protos/perfetto/trace/ftrace/power.proto",
-    "protos/perfetto/trace/ftrace/raw_syscalls.proto",
-    "protos/perfetto/trace/ftrace/regulator.proto",
-    "protos/perfetto/trace/ftrace/sched.proto",
-    "protos/perfetto/trace/ftrace/scm.proto",
-    "protos/perfetto/trace/ftrace/sde.proto",
-    "protos/perfetto/trace/ftrace/signal.proto",
-    "protos/perfetto/trace/ftrace/sync.proto",
-    "protos/perfetto/trace/ftrace/systrace.proto",
-    "protos/perfetto/trace/ftrace/task.proto",
-    "protos/perfetto/trace/ftrace/test_bundle_wrapper.proto",
-    "protos/perfetto/trace/ftrace/thermal.proto",
-    "protos/perfetto/trace/ftrace/vmscan.proto",
-    "protos/perfetto/trace/ftrace/workqueue.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/ftrace/binder.gen.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/block.gen.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/cgroup.gen.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/clk.gen.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/compaction.gen.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/cpuhp.gen.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/dmabuf_heap.gen.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/dpu.gen.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/ext4.gen.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/f2fs.gen.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/fastrpc.gen.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/fence.gen.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/filemap.gen.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/ftrace.gen.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/ftrace_event.gen.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/ftrace_event_bundle.gen.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/ftrace_stats.gen.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/g2d.gen.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/generic.gen.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/gpu_mem.gen.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/i2c.gen.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/ion.gen.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/ipi.gen.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/irq.gen.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/kmem.gen.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/lowmemorykiller.gen.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/mali.gen.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/mdss.gen.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/mm_event.gen.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/oom.gen.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/power.gen.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/raw_syscalls.gen.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/regulator.gen.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/sched.gen.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/scm.gen.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/sde.gen.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/signal.gen.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/sync.gen.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/systrace.gen.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/task.gen.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/test_bundle_wrapper.gen.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/thermal.gen.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/vmscan.gen.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/workqueue.gen.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_trace_ftrace_cpp_gen_headers",
+    srcs: [
+        "protos/perfetto/trace/ftrace/binder.proto",
+        "protos/perfetto/trace/ftrace/block.proto",
+        "protos/perfetto/trace/ftrace/cgroup.proto",
+        "protos/perfetto/trace/ftrace/clk.proto",
+        "protos/perfetto/trace/ftrace/compaction.proto",
+        "protos/perfetto/trace/ftrace/cpuhp.proto",
+        "protos/perfetto/trace/ftrace/dmabuf_heap.proto",
+        "protos/perfetto/trace/ftrace/dpu.proto",
+        "protos/perfetto/trace/ftrace/ext4.proto",
+        "protos/perfetto/trace/ftrace/f2fs.proto",
+        "protos/perfetto/trace/ftrace/fastrpc.proto",
+        "protos/perfetto/trace/ftrace/fence.proto",
+        "protos/perfetto/trace/ftrace/filemap.proto",
+        "protos/perfetto/trace/ftrace/ftrace.proto",
+        "protos/perfetto/trace/ftrace/ftrace_event.proto",
+        "protos/perfetto/trace/ftrace/ftrace_event_bundle.proto",
+        "protos/perfetto/trace/ftrace/ftrace_stats.proto",
+        "protos/perfetto/trace/ftrace/g2d.proto",
+        "protos/perfetto/trace/ftrace/generic.proto",
+        "protos/perfetto/trace/ftrace/gpu_mem.proto",
+        "protos/perfetto/trace/ftrace/i2c.proto",
+        "protos/perfetto/trace/ftrace/ion.proto",
+        "protos/perfetto/trace/ftrace/ipi.proto",
+        "protos/perfetto/trace/ftrace/irq.proto",
+        "protos/perfetto/trace/ftrace/kmem.proto",
+        "protos/perfetto/trace/ftrace/lowmemorykiller.proto",
+        "protos/perfetto/trace/ftrace/mali.proto",
+        "protos/perfetto/trace/ftrace/mdss.proto",
+        "protos/perfetto/trace/ftrace/mm_event.proto",
+        "protos/perfetto/trace/ftrace/oom.proto",
+        "protos/perfetto/trace/ftrace/power.proto",
+        "protos/perfetto/trace/ftrace/raw_syscalls.proto",
+        "protos/perfetto/trace/ftrace/regulator.proto",
+        "protos/perfetto/trace/ftrace/sched.proto",
+        "protos/perfetto/trace/ftrace/scm.proto",
+        "protos/perfetto/trace/ftrace/sde.proto",
+        "protos/perfetto/trace/ftrace/signal.proto",
+        "protos/perfetto/trace/ftrace/sync.proto",
+        "protos/perfetto/trace/ftrace/systrace.proto",
+        "protos/perfetto/trace/ftrace/task.proto",
+        "protos/perfetto/trace/ftrace/test_bundle_wrapper.proto",
+        "protos/perfetto/trace/ftrace/thermal.proto",
+        "protos/perfetto/trace/ftrace/vmscan.proto",
+        "protos/perfetto/trace/ftrace/workqueue.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/ftrace/binder.gen.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/block.gen.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/cgroup.gen.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/clk.gen.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/compaction.gen.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/cpuhp.gen.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/dmabuf_heap.gen.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/dpu.gen.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/ext4.gen.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/f2fs.gen.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/fastrpc.gen.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/fence.gen.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/filemap.gen.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/ftrace.gen.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/ftrace_event.gen.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/ftrace_event_bundle.gen.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/ftrace_stats.gen.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/g2d.gen.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/generic.gen.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/gpu_mem.gen.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/i2c.gen.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/ion.gen.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/ipi.gen.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/irq.gen.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/kmem.gen.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/lowmemorykiller.gen.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/mali.gen.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/mdss.gen.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/mm_event.gen.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/oom.gen.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/power.gen.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/raw_syscalls.gen.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/regulator.gen.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/sched.gen.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/scm.gen.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/sde.gen.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/signal.gen.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/sync.gen.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/systrace.gen.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/task.gen.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/test_bundle_wrapper.gen.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/thermal.gen.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/vmscan.gen.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/workqueue.gen.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/trace/ftrace:lite
 genrule {
-  name: "perfetto_protos_perfetto_trace_ftrace_lite_gen",
-  srcs: [
-    "protos/perfetto/trace/ftrace/binder.proto",
-    "protos/perfetto/trace/ftrace/block.proto",
-    "protos/perfetto/trace/ftrace/cgroup.proto",
-    "protos/perfetto/trace/ftrace/clk.proto",
-    "protos/perfetto/trace/ftrace/compaction.proto",
-    "protos/perfetto/trace/ftrace/cpuhp.proto",
-    "protos/perfetto/trace/ftrace/dmabuf_heap.proto",
-    "protos/perfetto/trace/ftrace/dpu.proto",
-    "protos/perfetto/trace/ftrace/ext4.proto",
-    "protos/perfetto/trace/ftrace/f2fs.proto",
-    "protos/perfetto/trace/ftrace/fastrpc.proto",
-    "protos/perfetto/trace/ftrace/fence.proto",
-    "protos/perfetto/trace/ftrace/filemap.proto",
-    "protos/perfetto/trace/ftrace/ftrace.proto",
-    "protos/perfetto/trace/ftrace/ftrace_event.proto",
-    "protos/perfetto/trace/ftrace/ftrace_event_bundle.proto",
-    "protos/perfetto/trace/ftrace/ftrace_stats.proto",
-    "protos/perfetto/trace/ftrace/g2d.proto",
-    "protos/perfetto/trace/ftrace/generic.proto",
-    "protos/perfetto/trace/ftrace/gpu_mem.proto",
-    "protos/perfetto/trace/ftrace/i2c.proto",
-    "protos/perfetto/trace/ftrace/ion.proto",
-    "protos/perfetto/trace/ftrace/ipi.proto",
-    "protos/perfetto/trace/ftrace/irq.proto",
-    "protos/perfetto/trace/ftrace/kmem.proto",
-    "protos/perfetto/trace/ftrace/lowmemorykiller.proto",
-    "protos/perfetto/trace/ftrace/mali.proto",
-    "protos/perfetto/trace/ftrace/mdss.proto",
-    "protos/perfetto/trace/ftrace/mm_event.proto",
-    "protos/perfetto/trace/ftrace/oom.proto",
-    "protos/perfetto/trace/ftrace/power.proto",
-    "protos/perfetto/trace/ftrace/raw_syscalls.proto",
-    "protos/perfetto/trace/ftrace/regulator.proto",
-    "protos/perfetto/trace/ftrace/sched.proto",
-    "protos/perfetto/trace/ftrace/scm.proto",
-    "protos/perfetto/trace/ftrace/sde.proto",
-    "protos/perfetto/trace/ftrace/signal.proto",
-    "protos/perfetto/trace/ftrace/sync.proto",
-    "protos/perfetto/trace/ftrace/systrace.proto",
-    "protos/perfetto/trace/ftrace/task.proto",
-    "protos/perfetto/trace/ftrace/test_bundle_wrapper.proto",
-    "protos/perfetto/trace/ftrace/thermal.proto",
-    "protos/perfetto/trace/ftrace/vmscan.proto",
-    "protos/perfetto/trace/ftrace/workqueue.proto",
-  ],
-  tools: [
-    "aprotoc",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/ftrace/binder.pb.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/block.pb.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/cgroup.pb.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/clk.pb.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/compaction.pb.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/cpuhp.pb.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/dmabuf_heap.pb.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/dpu.pb.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/ext4.pb.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/f2fs.pb.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/fastrpc.pb.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/fence.pb.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/filemap.pb.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/ftrace.pb.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/ftrace_event.pb.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/ftrace_event_bundle.pb.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/ftrace_stats.pb.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/g2d.pb.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/generic.pb.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/gpu_mem.pb.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/i2c.pb.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/ion.pb.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/ipi.pb.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/irq.pb.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/kmem.pb.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/lowmemorykiller.pb.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/mali.pb.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/mdss.pb.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/mm_event.pb.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/oom.pb.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/power.pb.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/raw_syscalls.pb.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/regulator.pb.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/sched.pb.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/scm.pb.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/sde.pb.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/signal.pb.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/sync.pb.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/systrace.pb.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/task.pb.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/test_bundle_wrapper.pb.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/thermal.pb.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/vmscan.pb.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/workqueue.pb.cc",
-  ],
+    name: "perfetto_protos_perfetto_trace_ftrace_lite_gen",
+    srcs: [
+        "protos/perfetto/trace/ftrace/binder.proto",
+        "protos/perfetto/trace/ftrace/block.proto",
+        "protos/perfetto/trace/ftrace/cgroup.proto",
+        "protos/perfetto/trace/ftrace/clk.proto",
+        "protos/perfetto/trace/ftrace/compaction.proto",
+        "protos/perfetto/trace/ftrace/cpuhp.proto",
+        "protos/perfetto/trace/ftrace/dmabuf_heap.proto",
+        "protos/perfetto/trace/ftrace/dpu.proto",
+        "protos/perfetto/trace/ftrace/ext4.proto",
+        "protos/perfetto/trace/ftrace/f2fs.proto",
+        "protos/perfetto/trace/ftrace/fastrpc.proto",
+        "protos/perfetto/trace/ftrace/fence.proto",
+        "protos/perfetto/trace/ftrace/filemap.proto",
+        "protos/perfetto/trace/ftrace/ftrace.proto",
+        "protos/perfetto/trace/ftrace/ftrace_event.proto",
+        "protos/perfetto/trace/ftrace/ftrace_event_bundle.proto",
+        "protos/perfetto/trace/ftrace/ftrace_stats.proto",
+        "protos/perfetto/trace/ftrace/g2d.proto",
+        "protos/perfetto/trace/ftrace/generic.proto",
+        "protos/perfetto/trace/ftrace/gpu_mem.proto",
+        "protos/perfetto/trace/ftrace/i2c.proto",
+        "protos/perfetto/trace/ftrace/ion.proto",
+        "protos/perfetto/trace/ftrace/ipi.proto",
+        "protos/perfetto/trace/ftrace/irq.proto",
+        "protos/perfetto/trace/ftrace/kmem.proto",
+        "protos/perfetto/trace/ftrace/lowmemorykiller.proto",
+        "protos/perfetto/trace/ftrace/mali.proto",
+        "protos/perfetto/trace/ftrace/mdss.proto",
+        "protos/perfetto/trace/ftrace/mm_event.proto",
+        "protos/perfetto/trace/ftrace/oom.proto",
+        "protos/perfetto/trace/ftrace/power.proto",
+        "protos/perfetto/trace/ftrace/raw_syscalls.proto",
+        "protos/perfetto/trace/ftrace/regulator.proto",
+        "protos/perfetto/trace/ftrace/sched.proto",
+        "protos/perfetto/trace/ftrace/scm.proto",
+        "protos/perfetto/trace/ftrace/sde.proto",
+        "protos/perfetto/trace/ftrace/signal.proto",
+        "protos/perfetto/trace/ftrace/sync.proto",
+        "protos/perfetto/trace/ftrace/systrace.proto",
+        "protos/perfetto/trace/ftrace/task.proto",
+        "protos/perfetto/trace/ftrace/test_bundle_wrapper.proto",
+        "protos/perfetto/trace/ftrace/thermal.proto",
+        "protos/perfetto/trace/ftrace/vmscan.proto",
+        "protos/perfetto/trace/ftrace/workqueue.proto",
+    ],
+    tools: [
+        "aprotoc",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/ftrace/binder.pb.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/block.pb.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/cgroup.pb.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/clk.pb.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/compaction.pb.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/cpuhp.pb.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/dmabuf_heap.pb.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/dpu.pb.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/ext4.pb.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/f2fs.pb.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/fastrpc.pb.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/fence.pb.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/filemap.pb.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/ftrace.pb.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/ftrace_event.pb.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/ftrace_event_bundle.pb.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/ftrace_stats.pb.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/g2d.pb.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/generic.pb.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/gpu_mem.pb.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/i2c.pb.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/ion.pb.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/ipi.pb.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/irq.pb.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/kmem.pb.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/lowmemorykiller.pb.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/mali.pb.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/mdss.pb.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/mm_event.pb.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/oom.pb.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/power.pb.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/raw_syscalls.pb.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/regulator.pb.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/sched.pb.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/scm.pb.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/sde.pb.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/signal.pb.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/sync.pb.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/systrace.pb.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/task.pb.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/test_bundle_wrapper.pb.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/thermal.pb.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/vmscan.pb.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/workqueue.pb.cc",
+    ],
 }
 
 // GN: //protos/perfetto/trace/ftrace:lite
 genrule {
-  name: "perfetto_protos_perfetto_trace_ftrace_lite_gen_headers",
-  srcs: [
-    "protos/perfetto/trace/ftrace/binder.proto",
-    "protos/perfetto/trace/ftrace/block.proto",
-    "protos/perfetto/trace/ftrace/cgroup.proto",
-    "protos/perfetto/trace/ftrace/clk.proto",
-    "protos/perfetto/trace/ftrace/compaction.proto",
-    "protos/perfetto/trace/ftrace/cpuhp.proto",
-    "protos/perfetto/trace/ftrace/dmabuf_heap.proto",
-    "protos/perfetto/trace/ftrace/dpu.proto",
-    "protos/perfetto/trace/ftrace/ext4.proto",
-    "protos/perfetto/trace/ftrace/f2fs.proto",
-    "protos/perfetto/trace/ftrace/fastrpc.proto",
-    "protos/perfetto/trace/ftrace/fence.proto",
-    "protos/perfetto/trace/ftrace/filemap.proto",
-    "protos/perfetto/trace/ftrace/ftrace.proto",
-    "protos/perfetto/trace/ftrace/ftrace_event.proto",
-    "protos/perfetto/trace/ftrace/ftrace_event_bundle.proto",
-    "protos/perfetto/trace/ftrace/ftrace_stats.proto",
-    "protos/perfetto/trace/ftrace/g2d.proto",
-    "protos/perfetto/trace/ftrace/generic.proto",
-    "protos/perfetto/trace/ftrace/gpu_mem.proto",
-    "protos/perfetto/trace/ftrace/i2c.proto",
-    "protos/perfetto/trace/ftrace/ion.proto",
-    "protos/perfetto/trace/ftrace/ipi.proto",
-    "protos/perfetto/trace/ftrace/irq.proto",
-    "protos/perfetto/trace/ftrace/kmem.proto",
-    "protos/perfetto/trace/ftrace/lowmemorykiller.proto",
-    "protos/perfetto/trace/ftrace/mali.proto",
-    "protos/perfetto/trace/ftrace/mdss.proto",
-    "protos/perfetto/trace/ftrace/mm_event.proto",
-    "protos/perfetto/trace/ftrace/oom.proto",
-    "protos/perfetto/trace/ftrace/power.proto",
-    "protos/perfetto/trace/ftrace/raw_syscalls.proto",
-    "protos/perfetto/trace/ftrace/regulator.proto",
-    "protos/perfetto/trace/ftrace/sched.proto",
-    "protos/perfetto/trace/ftrace/scm.proto",
-    "protos/perfetto/trace/ftrace/sde.proto",
-    "protos/perfetto/trace/ftrace/signal.proto",
-    "protos/perfetto/trace/ftrace/sync.proto",
-    "protos/perfetto/trace/ftrace/systrace.proto",
-    "protos/perfetto/trace/ftrace/task.proto",
-    "protos/perfetto/trace/ftrace/test_bundle_wrapper.proto",
-    "protos/perfetto/trace/ftrace/thermal.proto",
-    "protos/perfetto/trace/ftrace/vmscan.proto",
-    "protos/perfetto/trace/ftrace/workqueue.proto",
-  ],
-  tools: [
-    "aprotoc",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/ftrace/binder.pb.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/block.pb.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/cgroup.pb.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/clk.pb.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/compaction.pb.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/cpuhp.pb.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/dmabuf_heap.pb.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/dpu.pb.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/ext4.pb.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/f2fs.pb.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/fastrpc.pb.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/fence.pb.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/filemap.pb.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/ftrace.pb.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/ftrace_event.pb.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/ftrace_event_bundle.pb.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/ftrace_stats.pb.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/g2d.pb.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/generic.pb.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/gpu_mem.pb.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/i2c.pb.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/ion.pb.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/ipi.pb.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/irq.pb.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/kmem.pb.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/lowmemorykiller.pb.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/mali.pb.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/mdss.pb.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/mm_event.pb.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/oom.pb.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/power.pb.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/raw_syscalls.pb.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/regulator.pb.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/sched.pb.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/scm.pb.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/sde.pb.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/signal.pb.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/sync.pb.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/systrace.pb.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/task.pb.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/test_bundle_wrapper.pb.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/thermal.pb.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/vmscan.pb.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/workqueue.pb.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_trace_ftrace_lite_gen_headers",
+    srcs: [
+        "protos/perfetto/trace/ftrace/binder.proto",
+        "protos/perfetto/trace/ftrace/block.proto",
+        "protos/perfetto/trace/ftrace/cgroup.proto",
+        "protos/perfetto/trace/ftrace/clk.proto",
+        "protos/perfetto/trace/ftrace/compaction.proto",
+        "protos/perfetto/trace/ftrace/cpuhp.proto",
+        "protos/perfetto/trace/ftrace/dmabuf_heap.proto",
+        "protos/perfetto/trace/ftrace/dpu.proto",
+        "protos/perfetto/trace/ftrace/ext4.proto",
+        "protos/perfetto/trace/ftrace/f2fs.proto",
+        "protos/perfetto/trace/ftrace/fastrpc.proto",
+        "protos/perfetto/trace/ftrace/fence.proto",
+        "protos/perfetto/trace/ftrace/filemap.proto",
+        "protos/perfetto/trace/ftrace/ftrace.proto",
+        "protos/perfetto/trace/ftrace/ftrace_event.proto",
+        "protos/perfetto/trace/ftrace/ftrace_event_bundle.proto",
+        "protos/perfetto/trace/ftrace/ftrace_stats.proto",
+        "protos/perfetto/trace/ftrace/g2d.proto",
+        "protos/perfetto/trace/ftrace/generic.proto",
+        "protos/perfetto/trace/ftrace/gpu_mem.proto",
+        "protos/perfetto/trace/ftrace/i2c.proto",
+        "protos/perfetto/trace/ftrace/ion.proto",
+        "protos/perfetto/trace/ftrace/ipi.proto",
+        "protos/perfetto/trace/ftrace/irq.proto",
+        "protos/perfetto/trace/ftrace/kmem.proto",
+        "protos/perfetto/trace/ftrace/lowmemorykiller.proto",
+        "protos/perfetto/trace/ftrace/mali.proto",
+        "protos/perfetto/trace/ftrace/mdss.proto",
+        "protos/perfetto/trace/ftrace/mm_event.proto",
+        "protos/perfetto/trace/ftrace/oom.proto",
+        "protos/perfetto/trace/ftrace/power.proto",
+        "protos/perfetto/trace/ftrace/raw_syscalls.proto",
+        "protos/perfetto/trace/ftrace/regulator.proto",
+        "protos/perfetto/trace/ftrace/sched.proto",
+        "protos/perfetto/trace/ftrace/scm.proto",
+        "protos/perfetto/trace/ftrace/sde.proto",
+        "protos/perfetto/trace/ftrace/signal.proto",
+        "protos/perfetto/trace/ftrace/sync.proto",
+        "protos/perfetto/trace/ftrace/systrace.proto",
+        "protos/perfetto/trace/ftrace/task.proto",
+        "protos/perfetto/trace/ftrace/test_bundle_wrapper.proto",
+        "protos/perfetto/trace/ftrace/thermal.proto",
+        "protos/perfetto/trace/ftrace/vmscan.proto",
+        "protos/perfetto/trace/ftrace/workqueue.proto",
+    ],
+    tools: [
+        "aprotoc",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/ftrace/binder.pb.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/block.pb.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/cgroup.pb.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/clk.pb.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/compaction.pb.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/cpuhp.pb.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/dmabuf_heap.pb.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/dpu.pb.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/ext4.pb.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/f2fs.pb.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/fastrpc.pb.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/fence.pb.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/filemap.pb.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/ftrace.pb.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/ftrace_event.pb.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/ftrace_event_bundle.pb.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/ftrace_stats.pb.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/g2d.pb.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/generic.pb.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/gpu_mem.pb.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/i2c.pb.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/ion.pb.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/ipi.pb.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/irq.pb.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/kmem.pb.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/lowmemorykiller.pb.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/mali.pb.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/mdss.pb.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/mm_event.pb.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/oom.pb.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/power.pb.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/raw_syscalls.pb.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/regulator.pb.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/sched.pb.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/scm.pb.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/sde.pb.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/signal.pb.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/sync.pb.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/systrace.pb.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/task.pb.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/test_bundle_wrapper.pb.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/thermal.pb.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/vmscan.pb.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/workqueue.pb.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/trace/ftrace:zero
 genrule {
-  name: "perfetto_protos_perfetto_trace_ftrace_zero_gen",
-  srcs: [
-    "protos/perfetto/trace/ftrace/binder.proto",
-    "protos/perfetto/trace/ftrace/block.proto",
-    "protos/perfetto/trace/ftrace/cgroup.proto",
-    "protos/perfetto/trace/ftrace/clk.proto",
-    "protos/perfetto/trace/ftrace/compaction.proto",
-    "protos/perfetto/trace/ftrace/cpuhp.proto",
-    "protos/perfetto/trace/ftrace/dmabuf_heap.proto",
-    "protos/perfetto/trace/ftrace/dpu.proto",
-    "protos/perfetto/trace/ftrace/ext4.proto",
-    "protos/perfetto/trace/ftrace/f2fs.proto",
-    "protos/perfetto/trace/ftrace/fastrpc.proto",
-    "protos/perfetto/trace/ftrace/fence.proto",
-    "protos/perfetto/trace/ftrace/filemap.proto",
-    "protos/perfetto/trace/ftrace/ftrace.proto",
-    "protos/perfetto/trace/ftrace/ftrace_event.proto",
-    "protos/perfetto/trace/ftrace/ftrace_event_bundle.proto",
-    "protos/perfetto/trace/ftrace/ftrace_stats.proto",
-    "protos/perfetto/trace/ftrace/g2d.proto",
-    "protos/perfetto/trace/ftrace/generic.proto",
-    "protos/perfetto/trace/ftrace/gpu_mem.proto",
-    "protos/perfetto/trace/ftrace/i2c.proto",
-    "protos/perfetto/trace/ftrace/ion.proto",
-    "protos/perfetto/trace/ftrace/ipi.proto",
-    "protos/perfetto/trace/ftrace/irq.proto",
-    "protos/perfetto/trace/ftrace/kmem.proto",
-    "protos/perfetto/trace/ftrace/lowmemorykiller.proto",
-    "protos/perfetto/trace/ftrace/mali.proto",
-    "protos/perfetto/trace/ftrace/mdss.proto",
-    "protos/perfetto/trace/ftrace/mm_event.proto",
-    "protos/perfetto/trace/ftrace/oom.proto",
-    "protos/perfetto/trace/ftrace/power.proto",
-    "protos/perfetto/trace/ftrace/raw_syscalls.proto",
-    "protos/perfetto/trace/ftrace/regulator.proto",
-    "protos/perfetto/trace/ftrace/sched.proto",
-    "protos/perfetto/trace/ftrace/scm.proto",
-    "protos/perfetto/trace/ftrace/sde.proto",
-    "protos/perfetto/trace/ftrace/signal.proto",
-    "protos/perfetto/trace/ftrace/sync.proto",
-    "protos/perfetto/trace/ftrace/systrace.proto",
-    "protos/perfetto/trace/ftrace/task.proto",
-    "protos/perfetto/trace/ftrace/test_bundle_wrapper.proto",
-    "protos/perfetto/trace/ftrace/thermal.proto",
-    "protos/perfetto/trace/ftrace/vmscan.proto",
-    "protos/perfetto/trace/ftrace/workqueue.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "protozero_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/ftrace/binder.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/block.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/cgroup.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/clk.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/compaction.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/cpuhp.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/dmabuf_heap.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/dpu.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/ext4.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/f2fs.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/fastrpc.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/fence.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/filemap.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/ftrace.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/ftrace_event.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/ftrace_event_bundle.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/ftrace_stats.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/g2d.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/generic.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/gpu_mem.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/i2c.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/ion.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/ipi.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/irq.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/kmem.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/lowmemorykiller.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/mali.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/mdss.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/mm_event.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/oom.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/power.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/raw_syscalls.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/regulator.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/sched.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/scm.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/sde.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/signal.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/sync.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/systrace.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/task.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/test_bundle_wrapper.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/thermal.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/vmscan.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/ftrace/workqueue.pbzero.cc",
-  ],
+    name: "perfetto_protos_perfetto_trace_ftrace_zero_gen",
+    srcs: [
+        "protos/perfetto/trace/ftrace/binder.proto",
+        "protos/perfetto/trace/ftrace/block.proto",
+        "protos/perfetto/trace/ftrace/cgroup.proto",
+        "protos/perfetto/trace/ftrace/clk.proto",
+        "protos/perfetto/trace/ftrace/compaction.proto",
+        "protos/perfetto/trace/ftrace/cpuhp.proto",
+        "protos/perfetto/trace/ftrace/dmabuf_heap.proto",
+        "protos/perfetto/trace/ftrace/dpu.proto",
+        "protos/perfetto/trace/ftrace/ext4.proto",
+        "protos/perfetto/trace/ftrace/f2fs.proto",
+        "protos/perfetto/trace/ftrace/fastrpc.proto",
+        "protos/perfetto/trace/ftrace/fence.proto",
+        "protos/perfetto/trace/ftrace/filemap.proto",
+        "protos/perfetto/trace/ftrace/ftrace.proto",
+        "protos/perfetto/trace/ftrace/ftrace_event.proto",
+        "protos/perfetto/trace/ftrace/ftrace_event_bundle.proto",
+        "protos/perfetto/trace/ftrace/ftrace_stats.proto",
+        "protos/perfetto/trace/ftrace/g2d.proto",
+        "protos/perfetto/trace/ftrace/generic.proto",
+        "protos/perfetto/trace/ftrace/gpu_mem.proto",
+        "protos/perfetto/trace/ftrace/i2c.proto",
+        "protos/perfetto/trace/ftrace/ion.proto",
+        "protos/perfetto/trace/ftrace/ipi.proto",
+        "protos/perfetto/trace/ftrace/irq.proto",
+        "protos/perfetto/trace/ftrace/kmem.proto",
+        "protos/perfetto/trace/ftrace/lowmemorykiller.proto",
+        "protos/perfetto/trace/ftrace/mali.proto",
+        "protos/perfetto/trace/ftrace/mdss.proto",
+        "protos/perfetto/trace/ftrace/mm_event.proto",
+        "protos/perfetto/trace/ftrace/oom.proto",
+        "protos/perfetto/trace/ftrace/power.proto",
+        "protos/perfetto/trace/ftrace/raw_syscalls.proto",
+        "protos/perfetto/trace/ftrace/regulator.proto",
+        "protos/perfetto/trace/ftrace/sched.proto",
+        "protos/perfetto/trace/ftrace/scm.proto",
+        "protos/perfetto/trace/ftrace/sde.proto",
+        "protos/perfetto/trace/ftrace/signal.proto",
+        "protos/perfetto/trace/ftrace/sync.proto",
+        "protos/perfetto/trace/ftrace/systrace.proto",
+        "protos/perfetto/trace/ftrace/task.proto",
+        "protos/perfetto/trace/ftrace/test_bundle_wrapper.proto",
+        "protos/perfetto/trace/ftrace/thermal.proto",
+        "protos/perfetto/trace/ftrace/vmscan.proto",
+        "protos/perfetto/trace/ftrace/workqueue.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "protozero_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/ftrace/binder.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/block.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/cgroup.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/clk.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/compaction.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/cpuhp.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/dmabuf_heap.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/dpu.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/ext4.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/f2fs.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/fastrpc.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/fence.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/filemap.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/ftrace.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/ftrace_event.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/ftrace_event_bundle.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/ftrace_stats.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/g2d.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/generic.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/gpu_mem.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/i2c.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/ion.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/ipi.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/irq.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/kmem.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/lowmemorykiller.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/mali.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/mdss.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/mm_event.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/oom.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/power.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/raw_syscalls.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/regulator.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/sched.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/scm.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/sde.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/signal.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/sync.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/systrace.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/task.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/test_bundle_wrapper.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/thermal.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/vmscan.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/ftrace/workqueue.pbzero.cc",
+    ],
 }
 
 // GN: //protos/perfetto/trace/ftrace:zero
 genrule {
-  name: "perfetto_protos_perfetto_trace_ftrace_zero_gen_headers",
-  srcs: [
-    "protos/perfetto/trace/ftrace/binder.proto",
-    "protos/perfetto/trace/ftrace/block.proto",
-    "protos/perfetto/trace/ftrace/cgroup.proto",
-    "protos/perfetto/trace/ftrace/clk.proto",
-    "protos/perfetto/trace/ftrace/compaction.proto",
-    "protos/perfetto/trace/ftrace/cpuhp.proto",
-    "protos/perfetto/trace/ftrace/dmabuf_heap.proto",
-    "protos/perfetto/trace/ftrace/dpu.proto",
-    "protos/perfetto/trace/ftrace/ext4.proto",
-    "protos/perfetto/trace/ftrace/f2fs.proto",
-    "protos/perfetto/trace/ftrace/fastrpc.proto",
-    "protos/perfetto/trace/ftrace/fence.proto",
-    "protos/perfetto/trace/ftrace/filemap.proto",
-    "protos/perfetto/trace/ftrace/ftrace.proto",
-    "protos/perfetto/trace/ftrace/ftrace_event.proto",
-    "protos/perfetto/trace/ftrace/ftrace_event_bundle.proto",
-    "protos/perfetto/trace/ftrace/ftrace_stats.proto",
-    "protos/perfetto/trace/ftrace/g2d.proto",
-    "protos/perfetto/trace/ftrace/generic.proto",
-    "protos/perfetto/trace/ftrace/gpu_mem.proto",
-    "protos/perfetto/trace/ftrace/i2c.proto",
-    "protos/perfetto/trace/ftrace/ion.proto",
-    "protos/perfetto/trace/ftrace/ipi.proto",
-    "protos/perfetto/trace/ftrace/irq.proto",
-    "protos/perfetto/trace/ftrace/kmem.proto",
-    "protos/perfetto/trace/ftrace/lowmemorykiller.proto",
-    "protos/perfetto/trace/ftrace/mali.proto",
-    "protos/perfetto/trace/ftrace/mdss.proto",
-    "protos/perfetto/trace/ftrace/mm_event.proto",
-    "protos/perfetto/trace/ftrace/oom.proto",
-    "protos/perfetto/trace/ftrace/power.proto",
-    "protos/perfetto/trace/ftrace/raw_syscalls.proto",
-    "protos/perfetto/trace/ftrace/regulator.proto",
-    "protos/perfetto/trace/ftrace/sched.proto",
-    "protos/perfetto/trace/ftrace/scm.proto",
-    "protos/perfetto/trace/ftrace/sde.proto",
-    "protos/perfetto/trace/ftrace/signal.proto",
-    "protos/perfetto/trace/ftrace/sync.proto",
-    "protos/perfetto/trace/ftrace/systrace.proto",
-    "protos/perfetto/trace/ftrace/task.proto",
-    "protos/perfetto/trace/ftrace/test_bundle_wrapper.proto",
-    "protos/perfetto/trace/ftrace/thermal.proto",
-    "protos/perfetto/trace/ftrace/vmscan.proto",
-    "protos/perfetto/trace/ftrace/workqueue.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "protozero_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/ftrace/binder.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/block.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/cgroup.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/clk.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/compaction.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/cpuhp.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/dmabuf_heap.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/dpu.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/ext4.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/f2fs.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/fastrpc.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/fence.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/filemap.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/ftrace.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/ftrace_event.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/ftrace_event_bundle.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/ftrace_stats.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/g2d.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/generic.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/gpu_mem.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/i2c.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/ion.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/ipi.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/irq.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/kmem.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/lowmemorykiller.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/mali.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/mdss.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/mm_event.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/oom.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/power.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/raw_syscalls.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/regulator.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/sched.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/scm.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/sde.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/signal.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/sync.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/systrace.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/task.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/test_bundle_wrapper.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/thermal.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/vmscan.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/ftrace/workqueue.pbzero.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_trace_ftrace_zero_gen_headers",
+    srcs: [
+        "protos/perfetto/trace/ftrace/binder.proto",
+        "protos/perfetto/trace/ftrace/block.proto",
+        "protos/perfetto/trace/ftrace/cgroup.proto",
+        "protos/perfetto/trace/ftrace/clk.proto",
+        "protos/perfetto/trace/ftrace/compaction.proto",
+        "protos/perfetto/trace/ftrace/cpuhp.proto",
+        "protos/perfetto/trace/ftrace/dmabuf_heap.proto",
+        "protos/perfetto/trace/ftrace/dpu.proto",
+        "protos/perfetto/trace/ftrace/ext4.proto",
+        "protos/perfetto/trace/ftrace/f2fs.proto",
+        "protos/perfetto/trace/ftrace/fastrpc.proto",
+        "protos/perfetto/trace/ftrace/fence.proto",
+        "protos/perfetto/trace/ftrace/filemap.proto",
+        "protos/perfetto/trace/ftrace/ftrace.proto",
+        "protos/perfetto/trace/ftrace/ftrace_event.proto",
+        "protos/perfetto/trace/ftrace/ftrace_event_bundle.proto",
+        "protos/perfetto/trace/ftrace/ftrace_stats.proto",
+        "protos/perfetto/trace/ftrace/g2d.proto",
+        "protos/perfetto/trace/ftrace/generic.proto",
+        "protos/perfetto/trace/ftrace/gpu_mem.proto",
+        "protos/perfetto/trace/ftrace/i2c.proto",
+        "protos/perfetto/trace/ftrace/ion.proto",
+        "protos/perfetto/trace/ftrace/ipi.proto",
+        "protos/perfetto/trace/ftrace/irq.proto",
+        "protos/perfetto/trace/ftrace/kmem.proto",
+        "protos/perfetto/trace/ftrace/lowmemorykiller.proto",
+        "protos/perfetto/trace/ftrace/mali.proto",
+        "protos/perfetto/trace/ftrace/mdss.proto",
+        "protos/perfetto/trace/ftrace/mm_event.proto",
+        "protos/perfetto/trace/ftrace/oom.proto",
+        "protos/perfetto/trace/ftrace/power.proto",
+        "protos/perfetto/trace/ftrace/raw_syscalls.proto",
+        "protos/perfetto/trace/ftrace/regulator.proto",
+        "protos/perfetto/trace/ftrace/sched.proto",
+        "protos/perfetto/trace/ftrace/scm.proto",
+        "protos/perfetto/trace/ftrace/sde.proto",
+        "protos/perfetto/trace/ftrace/signal.proto",
+        "protos/perfetto/trace/ftrace/sync.proto",
+        "protos/perfetto/trace/ftrace/systrace.proto",
+        "protos/perfetto/trace/ftrace/task.proto",
+        "protos/perfetto/trace/ftrace/test_bundle_wrapper.proto",
+        "protos/perfetto/trace/ftrace/thermal.proto",
+        "protos/perfetto/trace/ftrace/vmscan.proto",
+        "protos/perfetto/trace/ftrace/workqueue.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "protozero_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/ftrace/binder.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/block.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/cgroup.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/clk.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/compaction.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/cpuhp.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/dmabuf_heap.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/dpu.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/ext4.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/f2fs.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/fastrpc.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/fence.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/filemap.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/ftrace.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/ftrace_event.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/ftrace_event_bundle.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/ftrace_stats.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/g2d.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/generic.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/gpu_mem.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/i2c.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/ion.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/ipi.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/irq.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/kmem.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/lowmemorykiller.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/mali.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/mdss.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/mm_event.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/oom.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/power.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/raw_syscalls.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/regulator.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/sched.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/scm.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/sde.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/signal.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/sync.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/systrace.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/task.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/test_bundle_wrapper.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/thermal.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/vmscan.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/ftrace/workqueue.pbzero.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/trace/gpu:cpp
 genrule {
-  name: "perfetto_protos_perfetto_trace_gpu_cpp_gen",
-  srcs: [
-    "protos/perfetto/trace/gpu/gpu_counter_event.proto",
-    "protos/perfetto/trace/gpu/gpu_log.proto",
-    "protos/perfetto/trace/gpu/gpu_render_stage_event.proto",
-    "protos/perfetto/trace/gpu/vulkan_api_event.proto",
-    "protos/perfetto/trace/gpu/vulkan_memory_event.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/gpu/gpu_counter_event.gen.cc",
-    "external/perfetto/protos/perfetto/trace/gpu/gpu_log.gen.cc",
-    "external/perfetto/protos/perfetto/trace/gpu/gpu_render_stage_event.gen.cc",
-    "external/perfetto/protos/perfetto/trace/gpu/vulkan_api_event.gen.cc",
-    "external/perfetto/protos/perfetto/trace/gpu/vulkan_memory_event.gen.cc",
-  ],
+    name: "perfetto_protos_perfetto_trace_gpu_cpp_gen",
+    srcs: [
+        "protos/perfetto/trace/gpu/gpu_counter_event.proto",
+        "protos/perfetto/trace/gpu/gpu_log.proto",
+        "protos/perfetto/trace/gpu/gpu_render_stage_event.proto",
+        "protos/perfetto/trace/gpu/vulkan_api_event.proto",
+        "protos/perfetto/trace/gpu/vulkan_memory_event.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/gpu/gpu_counter_event.gen.cc",
+        "external/perfetto/protos/perfetto/trace/gpu/gpu_log.gen.cc",
+        "external/perfetto/protos/perfetto/trace/gpu/gpu_render_stage_event.gen.cc",
+        "external/perfetto/protos/perfetto/trace/gpu/vulkan_api_event.gen.cc",
+        "external/perfetto/protos/perfetto/trace/gpu/vulkan_memory_event.gen.cc",
+    ],
 }
 
 // GN: //protos/perfetto/trace/gpu:cpp
 genrule {
-  name: "perfetto_protos_perfetto_trace_gpu_cpp_gen_headers",
-  srcs: [
-    "protos/perfetto/trace/gpu/gpu_counter_event.proto",
-    "protos/perfetto/trace/gpu/gpu_log.proto",
-    "protos/perfetto/trace/gpu/gpu_render_stage_event.proto",
-    "protos/perfetto/trace/gpu/vulkan_api_event.proto",
-    "protos/perfetto/trace/gpu/vulkan_memory_event.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/gpu/gpu_counter_event.gen.h",
-    "external/perfetto/protos/perfetto/trace/gpu/gpu_log.gen.h",
-    "external/perfetto/protos/perfetto/trace/gpu/gpu_render_stage_event.gen.h",
-    "external/perfetto/protos/perfetto/trace/gpu/vulkan_api_event.gen.h",
-    "external/perfetto/protos/perfetto/trace/gpu/vulkan_memory_event.gen.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_trace_gpu_cpp_gen_headers",
+    srcs: [
+        "protos/perfetto/trace/gpu/gpu_counter_event.proto",
+        "protos/perfetto/trace/gpu/gpu_log.proto",
+        "protos/perfetto/trace/gpu/gpu_render_stage_event.proto",
+        "protos/perfetto/trace/gpu/vulkan_api_event.proto",
+        "protos/perfetto/trace/gpu/vulkan_memory_event.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/gpu/gpu_counter_event.gen.h",
+        "external/perfetto/protos/perfetto/trace/gpu/gpu_log.gen.h",
+        "external/perfetto/protos/perfetto/trace/gpu/gpu_render_stage_event.gen.h",
+        "external/perfetto/protos/perfetto/trace/gpu/vulkan_api_event.gen.h",
+        "external/perfetto/protos/perfetto/trace/gpu/vulkan_memory_event.gen.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/trace/gpu:lite
 genrule {
-  name: "perfetto_protos_perfetto_trace_gpu_lite_gen",
-  srcs: [
-    "protos/perfetto/trace/gpu/gpu_counter_event.proto",
-    "protos/perfetto/trace/gpu/gpu_log.proto",
-    "protos/perfetto/trace/gpu/gpu_render_stage_event.proto",
-    "protos/perfetto/trace/gpu/vulkan_api_event.proto",
-    "protos/perfetto/trace/gpu/vulkan_memory_event.proto",
-  ],
-  tools: [
-    "aprotoc",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/gpu/gpu_counter_event.pb.cc",
-    "external/perfetto/protos/perfetto/trace/gpu/gpu_log.pb.cc",
-    "external/perfetto/protos/perfetto/trace/gpu/gpu_render_stage_event.pb.cc",
-    "external/perfetto/protos/perfetto/trace/gpu/vulkan_api_event.pb.cc",
-    "external/perfetto/protos/perfetto/trace/gpu/vulkan_memory_event.pb.cc",
-  ],
+    name: "perfetto_protos_perfetto_trace_gpu_lite_gen",
+    srcs: [
+        "protos/perfetto/trace/gpu/gpu_counter_event.proto",
+        "protos/perfetto/trace/gpu/gpu_log.proto",
+        "protos/perfetto/trace/gpu/gpu_render_stage_event.proto",
+        "protos/perfetto/trace/gpu/vulkan_api_event.proto",
+        "protos/perfetto/trace/gpu/vulkan_memory_event.proto",
+    ],
+    tools: [
+        "aprotoc",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/gpu/gpu_counter_event.pb.cc",
+        "external/perfetto/protos/perfetto/trace/gpu/gpu_log.pb.cc",
+        "external/perfetto/protos/perfetto/trace/gpu/gpu_render_stage_event.pb.cc",
+        "external/perfetto/protos/perfetto/trace/gpu/vulkan_api_event.pb.cc",
+        "external/perfetto/protos/perfetto/trace/gpu/vulkan_memory_event.pb.cc",
+    ],
 }
 
 // GN: //protos/perfetto/trace/gpu:lite
 genrule {
-  name: "perfetto_protos_perfetto_trace_gpu_lite_gen_headers",
-  srcs: [
-    "protos/perfetto/trace/gpu/gpu_counter_event.proto",
-    "protos/perfetto/trace/gpu/gpu_log.proto",
-    "protos/perfetto/trace/gpu/gpu_render_stage_event.proto",
-    "protos/perfetto/trace/gpu/vulkan_api_event.proto",
-    "protos/perfetto/trace/gpu/vulkan_memory_event.proto",
-  ],
-  tools: [
-    "aprotoc",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/gpu/gpu_counter_event.pb.h",
-    "external/perfetto/protos/perfetto/trace/gpu/gpu_log.pb.h",
-    "external/perfetto/protos/perfetto/trace/gpu/gpu_render_stage_event.pb.h",
-    "external/perfetto/protos/perfetto/trace/gpu/vulkan_api_event.pb.h",
-    "external/perfetto/protos/perfetto/trace/gpu/vulkan_memory_event.pb.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_trace_gpu_lite_gen_headers",
+    srcs: [
+        "protos/perfetto/trace/gpu/gpu_counter_event.proto",
+        "protos/perfetto/trace/gpu/gpu_log.proto",
+        "protos/perfetto/trace/gpu/gpu_render_stage_event.proto",
+        "protos/perfetto/trace/gpu/vulkan_api_event.proto",
+        "protos/perfetto/trace/gpu/vulkan_memory_event.proto",
+    ],
+    tools: [
+        "aprotoc",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/gpu/gpu_counter_event.pb.h",
+        "external/perfetto/protos/perfetto/trace/gpu/gpu_log.pb.h",
+        "external/perfetto/protos/perfetto/trace/gpu/gpu_render_stage_event.pb.h",
+        "external/perfetto/protos/perfetto/trace/gpu/vulkan_api_event.pb.h",
+        "external/perfetto/protos/perfetto/trace/gpu/vulkan_memory_event.pb.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/trace/gpu:zero
 genrule {
-  name: "perfetto_protos_perfetto_trace_gpu_zero_gen",
-  srcs: [
-    "protos/perfetto/trace/gpu/gpu_counter_event.proto",
-    "protos/perfetto/trace/gpu/gpu_log.proto",
-    "protos/perfetto/trace/gpu/gpu_render_stage_event.proto",
-    "protos/perfetto/trace/gpu/vulkan_api_event.proto",
-    "protos/perfetto/trace/gpu/vulkan_memory_event.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "protozero_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/gpu/gpu_counter_event.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/gpu/gpu_log.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/gpu/gpu_render_stage_event.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/gpu/vulkan_api_event.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/gpu/vulkan_memory_event.pbzero.cc",
-  ],
+    name: "perfetto_protos_perfetto_trace_gpu_zero_gen",
+    srcs: [
+        "protos/perfetto/trace/gpu/gpu_counter_event.proto",
+        "protos/perfetto/trace/gpu/gpu_log.proto",
+        "protos/perfetto/trace/gpu/gpu_render_stage_event.proto",
+        "protos/perfetto/trace/gpu/vulkan_api_event.proto",
+        "protos/perfetto/trace/gpu/vulkan_memory_event.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "protozero_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/gpu/gpu_counter_event.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/gpu/gpu_log.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/gpu/gpu_render_stage_event.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/gpu/vulkan_api_event.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/gpu/vulkan_memory_event.pbzero.cc",
+    ],
 }
 
 // GN: //protos/perfetto/trace/gpu:zero
 genrule {
-  name: "perfetto_protos_perfetto_trace_gpu_zero_gen_headers",
-  srcs: [
-    "protos/perfetto/trace/gpu/gpu_counter_event.proto",
-    "protos/perfetto/trace/gpu/gpu_log.proto",
-    "protos/perfetto/trace/gpu/gpu_render_stage_event.proto",
-    "protos/perfetto/trace/gpu/vulkan_api_event.proto",
-    "protos/perfetto/trace/gpu/vulkan_memory_event.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "protozero_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/gpu/gpu_counter_event.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/gpu/gpu_log.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/gpu/gpu_render_stage_event.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/gpu/vulkan_api_event.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/gpu/vulkan_memory_event.pbzero.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_trace_gpu_zero_gen_headers",
+    srcs: [
+        "protos/perfetto/trace/gpu/gpu_counter_event.proto",
+        "protos/perfetto/trace/gpu/gpu_log.proto",
+        "protos/perfetto/trace/gpu/gpu_render_stage_event.proto",
+        "protos/perfetto/trace/gpu/vulkan_api_event.proto",
+        "protos/perfetto/trace/gpu/vulkan_memory_event.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "protozero_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/gpu/gpu_counter_event.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/gpu/gpu_log.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/gpu/gpu_render_stage_event.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/gpu/vulkan_api_event.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/gpu/vulkan_memory_event.pbzero.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/trace/interned_data:cpp
 genrule {
-  name: "perfetto_protos_perfetto_trace_interned_data_cpp_gen",
-  srcs: [
-    "protos/perfetto/trace/interned_data/interned_data.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/interned_data/interned_data.gen.cc",
-  ],
+    name: "perfetto_protos_perfetto_trace_interned_data_cpp_gen",
+    srcs: [
+        "protos/perfetto/trace/interned_data/interned_data.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/interned_data/interned_data.gen.cc",
+    ],
 }
 
 // GN: //protos/perfetto/trace/interned_data:cpp
 genrule {
-  name: "perfetto_protos_perfetto_trace_interned_data_cpp_gen_headers",
-  srcs: [
-    "protos/perfetto/trace/interned_data/interned_data.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/interned_data/interned_data.gen.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_trace_interned_data_cpp_gen_headers",
+    srcs: [
+        "protos/perfetto/trace/interned_data/interned_data.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/interned_data/interned_data.gen.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/trace/interned_data:lite
 genrule {
-  name: "perfetto_protos_perfetto_trace_interned_data_lite_gen",
-  srcs: [
-    "protos/perfetto/trace/interned_data/interned_data.proto",
-  ],
-  tools: [
-    "aprotoc",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/interned_data/interned_data.pb.cc",
-  ],
+    name: "perfetto_protos_perfetto_trace_interned_data_lite_gen",
+    srcs: [
+        "protos/perfetto/trace/interned_data/interned_data.proto",
+    ],
+    tools: [
+        "aprotoc",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/interned_data/interned_data.pb.cc",
+    ],
 }
 
 // GN: //protos/perfetto/trace/interned_data:lite
 genrule {
-  name: "perfetto_protos_perfetto_trace_interned_data_lite_gen_headers",
-  srcs: [
-    "protos/perfetto/trace/interned_data/interned_data.proto",
-  ],
-  tools: [
-    "aprotoc",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/interned_data/interned_data.pb.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_trace_interned_data_lite_gen_headers",
+    srcs: [
+        "protos/perfetto/trace/interned_data/interned_data.proto",
+    ],
+    tools: [
+        "aprotoc",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/interned_data/interned_data.pb.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/trace/interned_data:zero
 genrule {
-  name: "perfetto_protos_perfetto_trace_interned_data_zero_gen",
-  srcs: [
-    "protos/perfetto/trace/interned_data/interned_data.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "protozero_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/interned_data/interned_data.pbzero.cc",
-  ],
+    name: "perfetto_protos_perfetto_trace_interned_data_zero_gen",
+    srcs: [
+        "protos/perfetto/trace/interned_data/interned_data.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "protozero_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/interned_data/interned_data.pbzero.cc",
+    ],
 }
 
 // GN: //protos/perfetto/trace/interned_data:zero
 genrule {
-  name: "perfetto_protos_perfetto_trace_interned_data_zero_gen_headers",
-  srcs: [
-    "protos/perfetto/trace/interned_data/interned_data.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "protozero_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/interned_data/interned_data.pbzero.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_trace_interned_data_zero_gen_headers",
+    srcs: [
+        "protos/perfetto/trace/interned_data/interned_data.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "protozero_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/interned_data/interned_data.pbzero.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/trace:minimal_cpp
 genrule {
-  name: "perfetto_protos_perfetto_trace_minimal_cpp_gen",
-  srcs: [
-    "protos/perfetto/trace/clock_snapshot.proto",
-    "protos/perfetto/trace/system_info.proto",
-    "protos/perfetto/trace/trigger.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/clock_snapshot.gen.cc",
-    "external/perfetto/protos/perfetto/trace/system_info.gen.cc",
-    "external/perfetto/protos/perfetto/trace/trigger.gen.cc",
-  ],
+    name: "perfetto_protos_perfetto_trace_minimal_cpp_gen",
+    srcs: [
+        "protos/perfetto/trace/clock_snapshot.proto",
+        "protos/perfetto/trace/system_info.proto",
+        "protos/perfetto/trace/trigger.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/clock_snapshot.gen.cc",
+        "external/perfetto/protos/perfetto/trace/system_info.gen.cc",
+        "external/perfetto/protos/perfetto/trace/trigger.gen.cc",
+    ],
 }
 
 // GN: //protos/perfetto/trace:minimal_cpp
 genrule {
-  name: "perfetto_protos_perfetto_trace_minimal_cpp_gen_headers",
-  srcs: [
-    "protos/perfetto/trace/clock_snapshot.proto",
-    "protos/perfetto/trace/system_info.proto",
-    "protos/perfetto/trace/trigger.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/clock_snapshot.gen.h",
-    "external/perfetto/protos/perfetto/trace/system_info.gen.h",
-    "external/perfetto/protos/perfetto/trace/trigger.gen.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_trace_minimal_cpp_gen_headers",
+    srcs: [
+        "protos/perfetto/trace/clock_snapshot.proto",
+        "protos/perfetto/trace/system_info.proto",
+        "protos/perfetto/trace/trigger.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/clock_snapshot.gen.h",
+        "external/perfetto/protos/perfetto/trace/system_info.gen.h",
+        "external/perfetto/protos/perfetto/trace/trigger.gen.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/trace:minimal_lite
 genrule {
-  name: "perfetto_protos_perfetto_trace_minimal_lite_gen",
-  srcs: [
-    "protos/perfetto/trace/clock_snapshot.proto",
-    "protos/perfetto/trace/system_info.proto",
-    "protos/perfetto/trace/trigger.proto",
-  ],
-  tools: [
-    "aprotoc",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/clock_snapshot.pb.cc",
-    "external/perfetto/protos/perfetto/trace/system_info.pb.cc",
-    "external/perfetto/protos/perfetto/trace/trigger.pb.cc",
-  ],
+    name: "perfetto_protos_perfetto_trace_minimal_lite_gen",
+    srcs: [
+        "protos/perfetto/trace/clock_snapshot.proto",
+        "protos/perfetto/trace/system_info.proto",
+        "protos/perfetto/trace/trigger.proto",
+    ],
+    tools: [
+        "aprotoc",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/clock_snapshot.pb.cc",
+        "external/perfetto/protos/perfetto/trace/system_info.pb.cc",
+        "external/perfetto/protos/perfetto/trace/trigger.pb.cc",
+    ],
 }
 
 // GN: //protos/perfetto/trace:minimal_lite
 genrule {
-  name: "perfetto_protos_perfetto_trace_minimal_lite_gen_headers",
-  srcs: [
-    "protos/perfetto/trace/clock_snapshot.proto",
-    "protos/perfetto/trace/system_info.proto",
-    "protos/perfetto/trace/trigger.proto",
-  ],
-  tools: [
-    "aprotoc",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/clock_snapshot.pb.h",
-    "external/perfetto/protos/perfetto/trace/system_info.pb.h",
-    "external/perfetto/protos/perfetto/trace/trigger.pb.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_trace_minimal_lite_gen_headers",
+    srcs: [
+        "protos/perfetto/trace/clock_snapshot.proto",
+        "protos/perfetto/trace/system_info.proto",
+        "protos/perfetto/trace/trigger.proto",
+    ],
+    tools: [
+        "aprotoc",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/clock_snapshot.pb.h",
+        "external/perfetto/protos/perfetto/trace/system_info.pb.h",
+        "external/perfetto/protos/perfetto/trace/trigger.pb.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/trace:minimal_zero
 genrule {
-  name: "perfetto_protos_perfetto_trace_minimal_zero_gen",
-  srcs: [
-    "protos/perfetto/trace/clock_snapshot.proto",
-    "protos/perfetto/trace/system_info.proto",
-    "protos/perfetto/trace/trigger.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "protozero_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/clock_snapshot.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/system_info.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/trigger.pbzero.cc",
-  ],
+    name: "perfetto_protos_perfetto_trace_minimal_zero_gen",
+    srcs: [
+        "protos/perfetto/trace/clock_snapshot.proto",
+        "protos/perfetto/trace/system_info.proto",
+        "protos/perfetto/trace/trigger.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "protozero_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/clock_snapshot.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/system_info.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/trigger.pbzero.cc",
+    ],
 }
 
 // GN: //protos/perfetto/trace:minimal_zero
 genrule {
-  name: "perfetto_protos_perfetto_trace_minimal_zero_gen_headers",
-  srcs: [
-    "protos/perfetto/trace/clock_snapshot.proto",
-    "protos/perfetto/trace/system_info.proto",
-    "protos/perfetto/trace/trigger.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "protozero_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/clock_snapshot.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/system_info.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/trigger.pbzero.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_trace_minimal_zero_gen_headers",
+    srcs: [
+        "protos/perfetto/trace/clock_snapshot.proto",
+        "protos/perfetto/trace/system_info.proto",
+        "protos/perfetto/trace/trigger.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "protozero_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/clock_snapshot.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/system_info.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/trigger.pbzero.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/trace:non_minimal_cpp
 genrule {
-  name: "perfetto_protos_perfetto_trace_non_minimal_cpp_gen",
-  srcs: [
-    "protos/perfetto/trace/extension_descriptor.proto",
-    "protos/perfetto/trace/memory_graph.proto",
-    "protos/perfetto/trace/test_event.proto",
-    "protos/perfetto/trace/test_extensions.proto",
-    "protos/perfetto/trace/trace.proto",
-    "protos/perfetto/trace/trace_packet.proto",
-    "protos/perfetto/trace/trace_packet_defaults.proto",
-    "protos/perfetto/trace/ui_state.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/extension_descriptor.gen.cc",
-    "external/perfetto/protos/perfetto/trace/memory_graph.gen.cc",
-    "external/perfetto/protos/perfetto/trace/test_event.gen.cc",
-    "external/perfetto/protos/perfetto/trace/test_extensions.gen.cc",
-    "external/perfetto/protos/perfetto/trace/trace.gen.cc",
-    "external/perfetto/protos/perfetto/trace/trace_packet.gen.cc",
-    "external/perfetto/protos/perfetto/trace/trace_packet_defaults.gen.cc",
-    "external/perfetto/protos/perfetto/trace/ui_state.gen.cc",
-  ],
+    name: "perfetto_protos_perfetto_trace_non_minimal_cpp_gen",
+    srcs: [
+        "protos/perfetto/trace/extension_descriptor.proto",
+        "protos/perfetto/trace/memory_graph.proto",
+        "protos/perfetto/trace/test_event.proto",
+        "protos/perfetto/trace/test_extensions.proto",
+        "protos/perfetto/trace/trace.proto",
+        "protos/perfetto/trace/trace_packet.proto",
+        "protos/perfetto/trace/trace_packet_defaults.proto",
+        "protos/perfetto/trace/ui_state.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/extension_descriptor.gen.cc",
+        "external/perfetto/protos/perfetto/trace/memory_graph.gen.cc",
+        "external/perfetto/protos/perfetto/trace/test_event.gen.cc",
+        "external/perfetto/protos/perfetto/trace/test_extensions.gen.cc",
+        "external/perfetto/protos/perfetto/trace/trace.gen.cc",
+        "external/perfetto/protos/perfetto/trace/trace_packet.gen.cc",
+        "external/perfetto/protos/perfetto/trace/trace_packet_defaults.gen.cc",
+        "external/perfetto/protos/perfetto/trace/ui_state.gen.cc",
+    ],
 }
 
 // GN: //protos/perfetto/trace:non_minimal_cpp
 genrule {
-  name: "perfetto_protos_perfetto_trace_non_minimal_cpp_gen_headers",
-  srcs: [
-    "protos/perfetto/trace/extension_descriptor.proto",
-    "protos/perfetto/trace/memory_graph.proto",
-    "protos/perfetto/trace/test_event.proto",
-    "protos/perfetto/trace/test_extensions.proto",
-    "protos/perfetto/trace/trace.proto",
-    "protos/perfetto/trace/trace_packet.proto",
-    "protos/perfetto/trace/trace_packet_defaults.proto",
-    "protos/perfetto/trace/ui_state.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/extension_descriptor.gen.h",
-    "external/perfetto/protos/perfetto/trace/memory_graph.gen.h",
-    "external/perfetto/protos/perfetto/trace/test_event.gen.h",
-    "external/perfetto/protos/perfetto/trace/test_extensions.gen.h",
-    "external/perfetto/protos/perfetto/trace/trace.gen.h",
-    "external/perfetto/protos/perfetto/trace/trace_packet.gen.h",
-    "external/perfetto/protos/perfetto/trace/trace_packet_defaults.gen.h",
-    "external/perfetto/protos/perfetto/trace/ui_state.gen.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_trace_non_minimal_cpp_gen_headers",
+    srcs: [
+        "protos/perfetto/trace/extension_descriptor.proto",
+        "protos/perfetto/trace/memory_graph.proto",
+        "protos/perfetto/trace/test_event.proto",
+        "protos/perfetto/trace/test_extensions.proto",
+        "protos/perfetto/trace/trace.proto",
+        "protos/perfetto/trace/trace_packet.proto",
+        "protos/perfetto/trace/trace_packet_defaults.proto",
+        "protos/perfetto/trace/ui_state.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/extension_descriptor.gen.h",
+        "external/perfetto/protos/perfetto/trace/memory_graph.gen.h",
+        "external/perfetto/protos/perfetto/trace/test_event.gen.h",
+        "external/perfetto/protos/perfetto/trace/test_extensions.gen.h",
+        "external/perfetto/protos/perfetto/trace/trace.gen.h",
+        "external/perfetto/protos/perfetto/trace/trace_packet.gen.h",
+        "external/perfetto/protos/perfetto/trace/trace_packet_defaults.gen.h",
+        "external/perfetto/protos/perfetto/trace/ui_state.gen.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/trace:non_minimal_lite
 genrule {
-  name: "perfetto_protos_perfetto_trace_non_minimal_lite_gen",
-  srcs: [
-    "protos/perfetto/trace/extension_descriptor.proto",
-    "protos/perfetto/trace/memory_graph.proto",
-    "protos/perfetto/trace/test_event.proto",
-    "protos/perfetto/trace/test_extensions.proto",
-    "protos/perfetto/trace/trace.proto",
-    "protos/perfetto/trace/trace_packet.proto",
-    "protos/perfetto/trace/trace_packet_defaults.proto",
-    "protos/perfetto/trace/ui_state.proto",
-  ],
-  tools: [
-    "aprotoc",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/extension_descriptor.pb.cc",
-    "external/perfetto/protos/perfetto/trace/memory_graph.pb.cc",
-    "external/perfetto/protos/perfetto/trace/test_event.pb.cc",
-    "external/perfetto/protos/perfetto/trace/test_extensions.pb.cc",
-    "external/perfetto/protos/perfetto/trace/trace.pb.cc",
-    "external/perfetto/protos/perfetto/trace/trace_packet.pb.cc",
-    "external/perfetto/protos/perfetto/trace/trace_packet_defaults.pb.cc",
-    "external/perfetto/protos/perfetto/trace/ui_state.pb.cc",
-  ],
+    name: "perfetto_protos_perfetto_trace_non_minimal_lite_gen",
+    srcs: [
+        "protos/perfetto/trace/extension_descriptor.proto",
+        "protos/perfetto/trace/memory_graph.proto",
+        "protos/perfetto/trace/test_event.proto",
+        "protos/perfetto/trace/test_extensions.proto",
+        "protos/perfetto/trace/trace.proto",
+        "protos/perfetto/trace/trace_packet.proto",
+        "protos/perfetto/trace/trace_packet_defaults.proto",
+        "protos/perfetto/trace/ui_state.proto",
+    ],
+    tools: [
+        "aprotoc",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/extension_descriptor.pb.cc",
+        "external/perfetto/protos/perfetto/trace/memory_graph.pb.cc",
+        "external/perfetto/protos/perfetto/trace/test_event.pb.cc",
+        "external/perfetto/protos/perfetto/trace/test_extensions.pb.cc",
+        "external/perfetto/protos/perfetto/trace/trace.pb.cc",
+        "external/perfetto/protos/perfetto/trace/trace_packet.pb.cc",
+        "external/perfetto/protos/perfetto/trace/trace_packet_defaults.pb.cc",
+        "external/perfetto/protos/perfetto/trace/ui_state.pb.cc",
+    ],
 }
 
 // GN: //protos/perfetto/trace:non_minimal_lite
 genrule {
-  name: "perfetto_protos_perfetto_trace_non_minimal_lite_gen_headers",
-  srcs: [
-    "protos/perfetto/trace/extension_descriptor.proto",
-    "protos/perfetto/trace/memory_graph.proto",
-    "protos/perfetto/trace/test_event.proto",
-    "protos/perfetto/trace/test_extensions.proto",
-    "protos/perfetto/trace/trace.proto",
-    "protos/perfetto/trace/trace_packet.proto",
-    "protos/perfetto/trace/trace_packet_defaults.proto",
-    "protos/perfetto/trace/ui_state.proto",
-  ],
-  tools: [
-    "aprotoc",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/extension_descriptor.pb.h",
-    "external/perfetto/protos/perfetto/trace/memory_graph.pb.h",
-    "external/perfetto/protos/perfetto/trace/test_event.pb.h",
-    "external/perfetto/protos/perfetto/trace/test_extensions.pb.h",
-    "external/perfetto/protos/perfetto/trace/trace.pb.h",
-    "external/perfetto/protos/perfetto/trace/trace_packet.pb.h",
-    "external/perfetto/protos/perfetto/trace/trace_packet_defaults.pb.h",
-    "external/perfetto/protos/perfetto/trace/ui_state.pb.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_trace_non_minimal_lite_gen_headers",
+    srcs: [
+        "protos/perfetto/trace/extension_descriptor.proto",
+        "protos/perfetto/trace/memory_graph.proto",
+        "protos/perfetto/trace/test_event.proto",
+        "protos/perfetto/trace/test_extensions.proto",
+        "protos/perfetto/trace/trace.proto",
+        "protos/perfetto/trace/trace_packet.proto",
+        "protos/perfetto/trace/trace_packet_defaults.proto",
+        "protos/perfetto/trace/ui_state.proto",
+    ],
+    tools: [
+        "aprotoc",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/extension_descriptor.pb.h",
+        "external/perfetto/protos/perfetto/trace/memory_graph.pb.h",
+        "external/perfetto/protos/perfetto/trace/test_event.pb.h",
+        "external/perfetto/protos/perfetto/trace/test_extensions.pb.h",
+        "external/perfetto/protos/perfetto/trace/trace.pb.h",
+        "external/perfetto/protos/perfetto/trace/trace_packet.pb.h",
+        "external/perfetto/protos/perfetto/trace/trace_packet_defaults.pb.h",
+        "external/perfetto/protos/perfetto/trace/ui_state.pb.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/trace:non_minimal_zero
 genrule {
-  name: "perfetto_protos_perfetto_trace_non_minimal_zero_gen",
-  srcs: [
-    "protos/perfetto/trace/extension_descriptor.proto",
-    "protos/perfetto/trace/memory_graph.proto",
-    "protos/perfetto/trace/test_event.proto",
-    "protos/perfetto/trace/test_extensions.proto",
-    "protos/perfetto/trace/trace.proto",
-    "protos/perfetto/trace/trace_packet.proto",
-    "protos/perfetto/trace/trace_packet_defaults.proto",
-    "protos/perfetto/trace/ui_state.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "protozero_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/extension_descriptor.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/memory_graph.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/test_event.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/test_extensions.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/trace.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/trace_packet.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/trace_packet_defaults.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/ui_state.pbzero.cc",
-  ],
+    name: "perfetto_protos_perfetto_trace_non_minimal_zero_gen",
+    srcs: [
+        "protos/perfetto/trace/extension_descriptor.proto",
+        "protos/perfetto/trace/memory_graph.proto",
+        "protos/perfetto/trace/test_event.proto",
+        "protos/perfetto/trace/test_extensions.proto",
+        "protos/perfetto/trace/trace.proto",
+        "protos/perfetto/trace/trace_packet.proto",
+        "protos/perfetto/trace/trace_packet_defaults.proto",
+        "protos/perfetto/trace/ui_state.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "protozero_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/extension_descriptor.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/memory_graph.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/test_event.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/test_extensions.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/trace.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/trace_packet.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/trace_packet_defaults.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/ui_state.pbzero.cc",
+    ],
 }
 
 // GN: //protos/perfetto/trace:non_minimal_zero
 genrule {
-  name: "perfetto_protos_perfetto_trace_non_minimal_zero_gen_headers",
-  srcs: [
-    "protos/perfetto/trace/extension_descriptor.proto",
-    "protos/perfetto/trace/memory_graph.proto",
-    "protos/perfetto/trace/test_event.proto",
-    "protos/perfetto/trace/test_extensions.proto",
-    "protos/perfetto/trace/trace.proto",
-    "protos/perfetto/trace/trace_packet.proto",
-    "protos/perfetto/trace/trace_packet_defaults.proto",
-    "protos/perfetto/trace/ui_state.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "protozero_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/extension_descriptor.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/memory_graph.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/test_event.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/test_extensions.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/trace.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/trace_packet.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/trace_packet_defaults.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/ui_state.pbzero.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_trace_non_minimal_zero_gen_headers",
+    srcs: [
+        "protos/perfetto/trace/extension_descriptor.proto",
+        "protos/perfetto/trace/memory_graph.proto",
+        "protos/perfetto/trace/test_event.proto",
+        "protos/perfetto/trace/test_extensions.proto",
+        "protos/perfetto/trace/trace.proto",
+        "protos/perfetto/trace/trace_packet.proto",
+        "protos/perfetto/trace/trace_packet_defaults.proto",
+        "protos/perfetto/trace/ui_state.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "protozero_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/extension_descriptor.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/memory_graph.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/test_event.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/test_extensions.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/trace.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/trace_packet.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/trace_packet_defaults.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/ui_state.pbzero.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/trace/perfetto:cpp
 genrule {
-  name: "perfetto_protos_perfetto_trace_perfetto_cpp_gen",
-  srcs: [
-    "protos/perfetto/trace/perfetto/perfetto_metatrace.proto",
-    "protos/perfetto/trace/perfetto/tracing_service_event.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/perfetto/perfetto_metatrace.gen.cc",
-    "external/perfetto/protos/perfetto/trace/perfetto/tracing_service_event.gen.cc",
-  ],
+    name: "perfetto_protos_perfetto_trace_perfetto_cpp_gen",
+    srcs: [
+        "protos/perfetto/trace/perfetto/perfetto_metatrace.proto",
+        "protos/perfetto/trace/perfetto/tracing_service_event.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/perfetto/perfetto_metatrace.gen.cc",
+        "external/perfetto/protos/perfetto/trace/perfetto/tracing_service_event.gen.cc",
+    ],
 }
 
 // GN: //protos/perfetto/trace/perfetto:cpp
 genrule {
-  name: "perfetto_protos_perfetto_trace_perfetto_cpp_gen_headers",
-  srcs: [
-    "protos/perfetto/trace/perfetto/perfetto_metatrace.proto",
-    "protos/perfetto/trace/perfetto/tracing_service_event.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/perfetto/perfetto_metatrace.gen.h",
-    "external/perfetto/protos/perfetto/trace/perfetto/tracing_service_event.gen.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_trace_perfetto_cpp_gen_headers",
+    srcs: [
+        "protos/perfetto/trace/perfetto/perfetto_metatrace.proto",
+        "protos/perfetto/trace/perfetto/tracing_service_event.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/perfetto/perfetto_metatrace.gen.h",
+        "external/perfetto/protos/perfetto/trace/perfetto/tracing_service_event.gen.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/trace/perfetto:lite
 genrule {
-  name: "perfetto_protos_perfetto_trace_perfetto_lite_gen",
-  srcs: [
-    "protos/perfetto/trace/perfetto/perfetto_metatrace.proto",
-    "protos/perfetto/trace/perfetto/tracing_service_event.proto",
-  ],
-  tools: [
-    "aprotoc",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/perfetto/perfetto_metatrace.pb.cc",
-    "external/perfetto/protos/perfetto/trace/perfetto/tracing_service_event.pb.cc",
-  ],
+    name: "perfetto_protos_perfetto_trace_perfetto_lite_gen",
+    srcs: [
+        "protos/perfetto/trace/perfetto/perfetto_metatrace.proto",
+        "protos/perfetto/trace/perfetto/tracing_service_event.proto",
+    ],
+    tools: [
+        "aprotoc",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/perfetto/perfetto_metatrace.pb.cc",
+        "external/perfetto/protos/perfetto/trace/perfetto/tracing_service_event.pb.cc",
+    ],
 }
 
 // GN: //protos/perfetto/trace/perfetto:lite
 genrule {
-  name: "perfetto_protos_perfetto_trace_perfetto_lite_gen_headers",
-  srcs: [
-    "protos/perfetto/trace/perfetto/perfetto_metatrace.proto",
-    "protos/perfetto/trace/perfetto/tracing_service_event.proto",
-  ],
-  tools: [
-    "aprotoc",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/perfetto/perfetto_metatrace.pb.h",
-    "external/perfetto/protos/perfetto/trace/perfetto/tracing_service_event.pb.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_trace_perfetto_lite_gen_headers",
+    srcs: [
+        "protos/perfetto/trace/perfetto/perfetto_metatrace.proto",
+        "protos/perfetto/trace/perfetto/tracing_service_event.proto",
+    ],
+    tools: [
+        "aprotoc",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/perfetto/perfetto_metatrace.pb.h",
+        "external/perfetto/protos/perfetto/trace/perfetto/tracing_service_event.pb.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/trace/perfetto:zero
 genrule {
-  name: "perfetto_protos_perfetto_trace_perfetto_zero_gen",
-  srcs: [
-    "protos/perfetto/trace/perfetto/perfetto_metatrace.proto",
-    "protos/perfetto/trace/perfetto/tracing_service_event.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "protozero_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/perfetto/perfetto_metatrace.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/perfetto/tracing_service_event.pbzero.cc",
-  ],
+    name: "perfetto_protos_perfetto_trace_perfetto_zero_gen",
+    srcs: [
+        "protos/perfetto/trace/perfetto/perfetto_metatrace.proto",
+        "protos/perfetto/trace/perfetto/tracing_service_event.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "protozero_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/perfetto/perfetto_metatrace.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/perfetto/tracing_service_event.pbzero.cc",
+    ],
 }
 
 // GN: //protos/perfetto/trace/perfetto:zero
 genrule {
-  name: "perfetto_protos_perfetto_trace_perfetto_zero_gen_headers",
-  srcs: [
-    "protos/perfetto/trace/perfetto/perfetto_metatrace.proto",
-    "protos/perfetto/trace/perfetto/tracing_service_event.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "protozero_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/perfetto/perfetto_metatrace.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/perfetto/tracing_service_event.pbzero.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_trace_perfetto_zero_gen_headers",
+    srcs: [
+        "protos/perfetto/trace/perfetto/perfetto_metatrace.proto",
+        "protos/perfetto/trace/perfetto/tracing_service_event.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "protozero_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/perfetto/perfetto_metatrace.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/perfetto/tracing_service_event.pbzero.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/trace/power:cpp
 genrule {
-  name: "perfetto_protos_perfetto_trace_power_cpp_gen",
-  srcs: [
-    "protos/perfetto/trace/power/android_energy_estimation_breakdown.proto",
-    "protos/perfetto/trace/power/battery_counters.proto",
-    "protos/perfetto/trace/power/power_rails.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/power/android_energy_estimation_breakdown.gen.cc",
-    "external/perfetto/protos/perfetto/trace/power/battery_counters.gen.cc",
-    "external/perfetto/protos/perfetto/trace/power/power_rails.gen.cc",
-  ],
+    name: "perfetto_protos_perfetto_trace_power_cpp_gen",
+    srcs: [
+        "protos/perfetto/trace/power/android_energy_estimation_breakdown.proto",
+        "protos/perfetto/trace/power/battery_counters.proto",
+        "protos/perfetto/trace/power/power_rails.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/power/android_energy_estimation_breakdown.gen.cc",
+        "external/perfetto/protos/perfetto/trace/power/battery_counters.gen.cc",
+        "external/perfetto/protos/perfetto/trace/power/power_rails.gen.cc",
+    ],
 }
 
 // GN: //protos/perfetto/trace/power:cpp
 genrule {
-  name: "perfetto_protos_perfetto_trace_power_cpp_gen_headers",
-  srcs: [
-    "protos/perfetto/trace/power/android_energy_estimation_breakdown.proto",
-    "protos/perfetto/trace/power/battery_counters.proto",
-    "protos/perfetto/trace/power/power_rails.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/power/android_energy_estimation_breakdown.gen.h",
-    "external/perfetto/protos/perfetto/trace/power/battery_counters.gen.h",
-    "external/perfetto/protos/perfetto/trace/power/power_rails.gen.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_trace_power_cpp_gen_headers",
+    srcs: [
+        "protos/perfetto/trace/power/android_energy_estimation_breakdown.proto",
+        "protos/perfetto/trace/power/battery_counters.proto",
+        "protos/perfetto/trace/power/power_rails.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/power/android_energy_estimation_breakdown.gen.h",
+        "external/perfetto/protos/perfetto/trace/power/battery_counters.gen.h",
+        "external/perfetto/protos/perfetto/trace/power/power_rails.gen.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/trace/power:lite
 genrule {
-  name: "perfetto_protos_perfetto_trace_power_lite_gen",
-  srcs: [
-    "protos/perfetto/trace/power/android_energy_estimation_breakdown.proto",
-    "protos/perfetto/trace/power/battery_counters.proto",
-    "protos/perfetto/trace/power/power_rails.proto",
-  ],
-  tools: [
-    "aprotoc",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/power/android_energy_estimation_breakdown.pb.cc",
-    "external/perfetto/protos/perfetto/trace/power/battery_counters.pb.cc",
-    "external/perfetto/protos/perfetto/trace/power/power_rails.pb.cc",
-  ],
+    name: "perfetto_protos_perfetto_trace_power_lite_gen",
+    srcs: [
+        "protos/perfetto/trace/power/android_energy_estimation_breakdown.proto",
+        "protos/perfetto/trace/power/battery_counters.proto",
+        "protos/perfetto/trace/power/power_rails.proto",
+    ],
+    tools: [
+        "aprotoc",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/power/android_energy_estimation_breakdown.pb.cc",
+        "external/perfetto/protos/perfetto/trace/power/battery_counters.pb.cc",
+        "external/perfetto/protos/perfetto/trace/power/power_rails.pb.cc",
+    ],
 }
 
 // GN: //protos/perfetto/trace/power:lite
 genrule {
-  name: "perfetto_protos_perfetto_trace_power_lite_gen_headers",
-  srcs: [
-    "protos/perfetto/trace/power/android_energy_estimation_breakdown.proto",
-    "protos/perfetto/trace/power/battery_counters.proto",
-    "protos/perfetto/trace/power/power_rails.proto",
-  ],
-  tools: [
-    "aprotoc",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/power/android_energy_estimation_breakdown.pb.h",
-    "external/perfetto/protos/perfetto/trace/power/battery_counters.pb.h",
-    "external/perfetto/protos/perfetto/trace/power/power_rails.pb.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_trace_power_lite_gen_headers",
+    srcs: [
+        "protos/perfetto/trace/power/android_energy_estimation_breakdown.proto",
+        "protos/perfetto/trace/power/battery_counters.proto",
+        "protos/perfetto/trace/power/power_rails.proto",
+    ],
+    tools: [
+        "aprotoc",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/power/android_energy_estimation_breakdown.pb.h",
+        "external/perfetto/protos/perfetto/trace/power/battery_counters.pb.h",
+        "external/perfetto/protos/perfetto/trace/power/power_rails.pb.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/trace/power:zero
 genrule {
-  name: "perfetto_protos_perfetto_trace_power_zero_gen",
-  srcs: [
-    "protos/perfetto/trace/power/android_energy_estimation_breakdown.proto",
-    "protos/perfetto/trace/power/battery_counters.proto",
-    "protos/perfetto/trace/power/power_rails.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "protozero_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/power/android_energy_estimation_breakdown.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/power/battery_counters.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/power/power_rails.pbzero.cc",
-  ],
+    name: "perfetto_protos_perfetto_trace_power_zero_gen",
+    srcs: [
+        "protos/perfetto/trace/power/android_energy_estimation_breakdown.proto",
+        "protos/perfetto/trace/power/battery_counters.proto",
+        "protos/perfetto/trace/power/power_rails.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "protozero_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/power/android_energy_estimation_breakdown.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/power/battery_counters.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/power/power_rails.pbzero.cc",
+    ],
 }
 
 // GN: //protos/perfetto/trace/power:zero
 genrule {
-  name: "perfetto_protos_perfetto_trace_power_zero_gen_headers",
-  srcs: [
-    "protos/perfetto/trace/power/android_energy_estimation_breakdown.proto",
-    "protos/perfetto/trace/power/battery_counters.proto",
-    "protos/perfetto/trace/power/power_rails.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "protozero_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/power/android_energy_estimation_breakdown.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/power/battery_counters.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/power/power_rails.pbzero.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_trace_power_zero_gen_headers",
+    srcs: [
+        "protos/perfetto/trace/power/android_energy_estimation_breakdown.proto",
+        "protos/perfetto/trace/power/battery_counters.proto",
+        "protos/perfetto/trace/power/power_rails.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "protozero_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/power/android_energy_estimation_breakdown.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/power/battery_counters.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/power/power_rails.pbzero.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/trace_processor:metrics_impl_zero
 genrule {
-  name: "perfetto_protos_perfetto_trace_processor_metrics_impl_zero_gen",
-  srcs: [
-    "protos/perfetto/trace_processor/metrics_impl.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "protozero_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace_processor/metrics_impl.pbzero.cc",
-  ],
+    name: "perfetto_protos_perfetto_trace_processor_metrics_impl_zero_gen",
+    srcs: [
+        "protos/perfetto/trace_processor/metrics_impl.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "protozero_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace_processor/metrics_impl.pbzero.cc",
+    ],
 }
 
 // GN: //protos/perfetto/trace_processor:metrics_impl_zero
 genrule {
-  name: "perfetto_protos_perfetto_trace_processor_metrics_impl_zero_gen_headers",
-  srcs: [
-    "protos/perfetto/trace_processor/metrics_impl.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "protozero_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace_processor/metrics_impl.pbzero.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_trace_processor_metrics_impl_zero_gen_headers",
+    srcs: [
+        "protos/perfetto/trace_processor/metrics_impl.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "protozero_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace_processor/metrics_impl.pbzero.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/trace_processor:zero
 genrule {
-  name: "perfetto_protos_perfetto_trace_processor_zero_gen",
-  srcs: [
-    "protos/perfetto/trace_processor/trace_processor.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "protozero_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace_processor/trace_processor.pbzero.cc",
-  ],
+    name: "perfetto_protos_perfetto_trace_processor_zero_gen",
+    srcs: [
+        "protos/perfetto/trace_processor/trace_processor.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "protozero_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace_processor/trace_processor.pbzero.cc",
+    ],
 }
 
 // GN: //protos/perfetto/trace_processor:zero
 genrule {
-  name: "perfetto_protos_perfetto_trace_processor_zero_gen_headers",
-  srcs: [
-    "protos/perfetto/trace_processor/trace_processor.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "protozero_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace_processor/trace_processor.pbzero.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_trace_processor_zero_gen_headers",
+    srcs: [
+        "protos/perfetto/trace_processor/trace_processor.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "protozero_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace_processor/trace_processor.pbzero.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/trace/profiling:cpp
 genrule {
-  name: "perfetto_protos_perfetto_trace_profiling_cpp_gen",
-  srcs: [
-    "protos/perfetto/trace/profiling/deobfuscation.proto",
-    "protos/perfetto/trace/profiling/heap_graph.proto",
-    "protos/perfetto/trace/profiling/profile_common.proto",
-    "protos/perfetto/trace/profiling/profile_packet.proto",
-    "protos/perfetto/trace/profiling/smaps.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/profiling/deobfuscation.gen.cc",
-    "external/perfetto/protos/perfetto/trace/profiling/heap_graph.gen.cc",
-    "external/perfetto/protos/perfetto/trace/profiling/profile_common.gen.cc",
-    "external/perfetto/protos/perfetto/trace/profiling/profile_packet.gen.cc",
-    "external/perfetto/protos/perfetto/trace/profiling/smaps.gen.cc",
-  ],
+    name: "perfetto_protos_perfetto_trace_profiling_cpp_gen",
+    srcs: [
+        "protos/perfetto/trace/profiling/deobfuscation.proto",
+        "protos/perfetto/trace/profiling/heap_graph.proto",
+        "protos/perfetto/trace/profiling/profile_common.proto",
+        "protos/perfetto/trace/profiling/profile_packet.proto",
+        "protos/perfetto/trace/profiling/smaps.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/profiling/deobfuscation.gen.cc",
+        "external/perfetto/protos/perfetto/trace/profiling/heap_graph.gen.cc",
+        "external/perfetto/protos/perfetto/trace/profiling/profile_common.gen.cc",
+        "external/perfetto/protos/perfetto/trace/profiling/profile_packet.gen.cc",
+        "external/perfetto/protos/perfetto/trace/profiling/smaps.gen.cc",
+    ],
 }
 
 // GN: //protos/perfetto/trace/profiling:cpp
 genrule {
-  name: "perfetto_protos_perfetto_trace_profiling_cpp_gen_headers",
-  srcs: [
-    "protos/perfetto/trace/profiling/deobfuscation.proto",
-    "protos/perfetto/trace/profiling/heap_graph.proto",
-    "protos/perfetto/trace/profiling/profile_common.proto",
-    "protos/perfetto/trace/profiling/profile_packet.proto",
-    "protos/perfetto/trace/profiling/smaps.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/profiling/deobfuscation.gen.h",
-    "external/perfetto/protos/perfetto/trace/profiling/heap_graph.gen.h",
-    "external/perfetto/protos/perfetto/trace/profiling/profile_common.gen.h",
-    "external/perfetto/protos/perfetto/trace/profiling/profile_packet.gen.h",
-    "external/perfetto/protos/perfetto/trace/profiling/smaps.gen.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_trace_profiling_cpp_gen_headers",
+    srcs: [
+        "protos/perfetto/trace/profiling/deobfuscation.proto",
+        "protos/perfetto/trace/profiling/heap_graph.proto",
+        "protos/perfetto/trace/profiling/profile_common.proto",
+        "protos/perfetto/trace/profiling/profile_packet.proto",
+        "protos/perfetto/trace/profiling/smaps.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/profiling/deobfuscation.gen.h",
+        "external/perfetto/protos/perfetto/trace/profiling/heap_graph.gen.h",
+        "external/perfetto/protos/perfetto/trace/profiling/profile_common.gen.h",
+        "external/perfetto/protos/perfetto/trace/profiling/profile_packet.gen.h",
+        "external/perfetto/protos/perfetto/trace/profiling/smaps.gen.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/trace/profiling:lite
 genrule {
-  name: "perfetto_protos_perfetto_trace_profiling_lite_gen",
-  srcs: [
-    "protos/perfetto/trace/profiling/deobfuscation.proto",
-    "protos/perfetto/trace/profiling/heap_graph.proto",
-    "protos/perfetto/trace/profiling/profile_common.proto",
-    "protos/perfetto/trace/profiling/profile_packet.proto",
-    "protos/perfetto/trace/profiling/smaps.proto",
-  ],
-  tools: [
-    "aprotoc",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/profiling/deobfuscation.pb.cc",
-    "external/perfetto/protos/perfetto/trace/profiling/heap_graph.pb.cc",
-    "external/perfetto/protos/perfetto/trace/profiling/profile_common.pb.cc",
-    "external/perfetto/protos/perfetto/trace/profiling/profile_packet.pb.cc",
-    "external/perfetto/protos/perfetto/trace/profiling/smaps.pb.cc",
-  ],
+    name: "perfetto_protos_perfetto_trace_profiling_lite_gen",
+    srcs: [
+        "protos/perfetto/trace/profiling/deobfuscation.proto",
+        "protos/perfetto/trace/profiling/heap_graph.proto",
+        "protos/perfetto/trace/profiling/profile_common.proto",
+        "protos/perfetto/trace/profiling/profile_packet.proto",
+        "protos/perfetto/trace/profiling/smaps.proto",
+    ],
+    tools: [
+        "aprotoc",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/profiling/deobfuscation.pb.cc",
+        "external/perfetto/protos/perfetto/trace/profiling/heap_graph.pb.cc",
+        "external/perfetto/protos/perfetto/trace/profiling/profile_common.pb.cc",
+        "external/perfetto/protos/perfetto/trace/profiling/profile_packet.pb.cc",
+        "external/perfetto/protos/perfetto/trace/profiling/smaps.pb.cc",
+    ],
 }
 
 // GN: //protos/perfetto/trace/profiling:lite
 genrule {
-  name: "perfetto_protos_perfetto_trace_profiling_lite_gen_headers",
-  srcs: [
-    "protos/perfetto/trace/profiling/deobfuscation.proto",
-    "protos/perfetto/trace/profiling/heap_graph.proto",
-    "protos/perfetto/trace/profiling/profile_common.proto",
-    "protos/perfetto/trace/profiling/profile_packet.proto",
-    "protos/perfetto/trace/profiling/smaps.proto",
-  ],
-  tools: [
-    "aprotoc",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/profiling/deobfuscation.pb.h",
-    "external/perfetto/protos/perfetto/trace/profiling/heap_graph.pb.h",
-    "external/perfetto/protos/perfetto/trace/profiling/profile_common.pb.h",
-    "external/perfetto/protos/perfetto/trace/profiling/profile_packet.pb.h",
-    "external/perfetto/protos/perfetto/trace/profiling/smaps.pb.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_trace_profiling_lite_gen_headers",
+    srcs: [
+        "protos/perfetto/trace/profiling/deobfuscation.proto",
+        "protos/perfetto/trace/profiling/heap_graph.proto",
+        "protos/perfetto/trace/profiling/profile_common.proto",
+        "protos/perfetto/trace/profiling/profile_packet.proto",
+        "protos/perfetto/trace/profiling/smaps.proto",
+    ],
+    tools: [
+        "aprotoc",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/profiling/deobfuscation.pb.h",
+        "external/perfetto/protos/perfetto/trace/profiling/heap_graph.pb.h",
+        "external/perfetto/protos/perfetto/trace/profiling/profile_common.pb.h",
+        "external/perfetto/protos/perfetto/trace/profiling/profile_packet.pb.h",
+        "external/perfetto/protos/perfetto/trace/profiling/smaps.pb.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/trace/profiling:zero
 genrule {
-  name: "perfetto_protos_perfetto_trace_profiling_zero_gen",
-  srcs: [
-    "protos/perfetto/trace/profiling/deobfuscation.proto",
-    "protos/perfetto/trace/profiling/heap_graph.proto",
-    "protos/perfetto/trace/profiling/profile_common.proto",
-    "protos/perfetto/trace/profiling/profile_packet.proto",
-    "protos/perfetto/trace/profiling/smaps.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "protozero_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/profiling/deobfuscation.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/profiling/heap_graph.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/profiling/profile_common.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/profiling/profile_packet.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/profiling/smaps.pbzero.cc",
-  ],
+    name: "perfetto_protos_perfetto_trace_profiling_zero_gen",
+    srcs: [
+        "protos/perfetto/trace/profiling/deobfuscation.proto",
+        "protos/perfetto/trace/profiling/heap_graph.proto",
+        "protos/perfetto/trace/profiling/profile_common.proto",
+        "protos/perfetto/trace/profiling/profile_packet.proto",
+        "protos/perfetto/trace/profiling/smaps.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "protozero_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/profiling/deobfuscation.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/profiling/heap_graph.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/profiling/profile_common.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/profiling/profile_packet.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/profiling/smaps.pbzero.cc",
+    ],
 }
 
 // GN: //protos/perfetto/trace/profiling:zero
 genrule {
-  name: "perfetto_protos_perfetto_trace_profiling_zero_gen_headers",
-  srcs: [
-    "protos/perfetto/trace/profiling/deobfuscation.proto",
-    "protos/perfetto/trace/profiling/heap_graph.proto",
-    "protos/perfetto/trace/profiling/profile_common.proto",
-    "protos/perfetto/trace/profiling/profile_packet.proto",
-    "protos/perfetto/trace/profiling/smaps.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "protozero_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/profiling/deobfuscation.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/profiling/heap_graph.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/profiling/profile_common.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/profiling/profile_packet.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/profiling/smaps.pbzero.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_trace_profiling_zero_gen_headers",
+    srcs: [
+        "protos/perfetto/trace/profiling/deobfuscation.proto",
+        "protos/perfetto/trace/profiling/heap_graph.proto",
+        "protos/perfetto/trace/profiling/profile_common.proto",
+        "protos/perfetto/trace/profiling/profile_packet.proto",
+        "protos/perfetto/trace/profiling/smaps.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "protozero_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/profiling/deobfuscation.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/profiling/heap_graph.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/profiling/profile_common.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/profiling/profile_packet.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/profiling/smaps.pbzero.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/trace/ps:cpp
 genrule {
-  name: "perfetto_protos_perfetto_trace_ps_cpp_gen",
-  srcs: [
-    "protos/perfetto/trace/ps/process_stats.proto",
-    "protos/perfetto/trace/ps/process_tree.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/ps/process_stats.gen.cc",
-    "external/perfetto/protos/perfetto/trace/ps/process_tree.gen.cc",
-  ],
+    name: "perfetto_protos_perfetto_trace_ps_cpp_gen",
+    srcs: [
+        "protos/perfetto/trace/ps/process_stats.proto",
+        "protos/perfetto/trace/ps/process_tree.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/ps/process_stats.gen.cc",
+        "external/perfetto/protos/perfetto/trace/ps/process_tree.gen.cc",
+    ],
 }
 
 // GN: //protos/perfetto/trace/ps:cpp
 genrule {
-  name: "perfetto_protos_perfetto_trace_ps_cpp_gen_headers",
-  srcs: [
-    "protos/perfetto/trace/ps/process_stats.proto",
-    "protos/perfetto/trace/ps/process_tree.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/ps/process_stats.gen.h",
-    "external/perfetto/protos/perfetto/trace/ps/process_tree.gen.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_trace_ps_cpp_gen_headers",
+    srcs: [
+        "protos/perfetto/trace/ps/process_stats.proto",
+        "protos/perfetto/trace/ps/process_tree.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/ps/process_stats.gen.h",
+        "external/perfetto/protos/perfetto/trace/ps/process_tree.gen.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/trace/ps:lite
 genrule {
-  name: "perfetto_protos_perfetto_trace_ps_lite_gen",
-  srcs: [
-    "protos/perfetto/trace/ps/process_stats.proto",
-    "protos/perfetto/trace/ps/process_tree.proto",
-  ],
-  tools: [
-    "aprotoc",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/ps/process_stats.pb.cc",
-    "external/perfetto/protos/perfetto/trace/ps/process_tree.pb.cc",
-  ],
+    name: "perfetto_protos_perfetto_trace_ps_lite_gen",
+    srcs: [
+        "protos/perfetto/trace/ps/process_stats.proto",
+        "protos/perfetto/trace/ps/process_tree.proto",
+    ],
+    tools: [
+        "aprotoc",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/ps/process_stats.pb.cc",
+        "external/perfetto/protos/perfetto/trace/ps/process_tree.pb.cc",
+    ],
 }
 
 // GN: //protos/perfetto/trace/ps:lite
 genrule {
-  name: "perfetto_protos_perfetto_trace_ps_lite_gen_headers",
-  srcs: [
-    "protos/perfetto/trace/ps/process_stats.proto",
-    "protos/perfetto/trace/ps/process_tree.proto",
-  ],
-  tools: [
-    "aprotoc",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/ps/process_stats.pb.h",
-    "external/perfetto/protos/perfetto/trace/ps/process_tree.pb.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_trace_ps_lite_gen_headers",
+    srcs: [
+        "protos/perfetto/trace/ps/process_stats.proto",
+        "protos/perfetto/trace/ps/process_tree.proto",
+    ],
+    tools: [
+        "aprotoc",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/ps/process_stats.pb.h",
+        "external/perfetto/protos/perfetto/trace/ps/process_tree.pb.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/trace/ps:zero
 genrule {
-  name: "perfetto_protos_perfetto_trace_ps_zero_gen",
-  srcs: [
-    "protos/perfetto/trace/ps/process_stats.proto",
-    "protos/perfetto/trace/ps/process_tree.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "protozero_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/ps/process_stats.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/ps/process_tree.pbzero.cc",
-  ],
+    name: "perfetto_protos_perfetto_trace_ps_zero_gen",
+    srcs: [
+        "protos/perfetto/trace/ps/process_stats.proto",
+        "protos/perfetto/trace/ps/process_tree.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "protozero_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/ps/process_stats.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/ps/process_tree.pbzero.cc",
+    ],
 }
 
 // GN: //protos/perfetto/trace/ps:zero
 genrule {
-  name: "perfetto_protos_perfetto_trace_ps_zero_gen_headers",
-  srcs: [
-    "protos/perfetto/trace/ps/process_stats.proto",
-    "protos/perfetto/trace/ps/process_tree.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "protozero_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/ps/process_stats.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/ps/process_tree.pbzero.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_trace_ps_zero_gen_headers",
+    srcs: [
+        "protos/perfetto/trace/ps/process_stats.proto",
+        "protos/perfetto/trace/ps/process_tree.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "protozero_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/ps/process_stats.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/ps/process_tree.pbzero.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/trace/sys_stats:cpp
 genrule {
-  name: "perfetto_protos_perfetto_trace_sys_stats_cpp_gen",
-  srcs: [
-    "protos/perfetto/trace/sys_stats/sys_stats.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/sys_stats/sys_stats.gen.cc",
-  ],
+    name: "perfetto_protos_perfetto_trace_sys_stats_cpp_gen",
+    srcs: [
+        "protos/perfetto/trace/sys_stats/sys_stats.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/sys_stats/sys_stats.gen.cc",
+    ],
 }
 
 // GN: //protos/perfetto/trace/sys_stats:cpp
 genrule {
-  name: "perfetto_protos_perfetto_trace_sys_stats_cpp_gen_headers",
-  srcs: [
-    "protos/perfetto/trace/sys_stats/sys_stats.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/sys_stats/sys_stats.gen.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_trace_sys_stats_cpp_gen_headers",
+    srcs: [
+        "protos/perfetto/trace/sys_stats/sys_stats.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/sys_stats/sys_stats.gen.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/trace/sys_stats:lite
 genrule {
-  name: "perfetto_protos_perfetto_trace_sys_stats_lite_gen",
-  srcs: [
-    "protos/perfetto/trace/sys_stats/sys_stats.proto",
-  ],
-  tools: [
-    "aprotoc",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/sys_stats/sys_stats.pb.cc",
-  ],
+    name: "perfetto_protos_perfetto_trace_sys_stats_lite_gen",
+    srcs: [
+        "protos/perfetto/trace/sys_stats/sys_stats.proto",
+    ],
+    tools: [
+        "aprotoc",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/sys_stats/sys_stats.pb.cc",
+    ],
 }
 
 // GN: //protos/perfetto/trace/sys_stats:lite
 genrule {
-  name: "perfetto_protos_perfetto_trace_sys_stats_lite_gen_headers",
-  srcs: [
-    "protos/perfetto/trace/sys_stats/sys_stats.proto",
-  ],
-  tools: [
-    "aprotoc",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/sys_stats/sys_stats.pb.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_trace_sys_stats_lite_gen_headers",
+    srcs: [
+        "protos/perfetto/trace/sys_stats/sys_stats.proto",
+    ],
+    tools: [
+        "aprotoc",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/sys_stats/sys_stats.pb.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/trace/sys_stats:zero
 genrule {
-  name: "perfetto_protos_perfetto_trace_sys_stats_zero_gen",
-  srcs: [
-    "protos/perfetto/trace/sys_stats/sys_stats.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "protozero_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/sys_stats/sys_stats.pbzero.cc",
-  ],
+    name: "perfetto_protos_perfetto_trace_sys_stats_zero_gen",
+    srcs: [
+        "protos/perfetto/trace/sys_stats/sys_stats.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "protozero_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/sys_stats/sys_stats.pbzero.cc",
+    ],
 }
 
 // GN: //protos/perfetto/trace/sys_stats:zero
 genrule {
-  name: "perfetto_protos_perfetto_trace_sys_stats_zero_gen_headers",
-  srcs: [
-    "protos/perfetto/trace/sys_stats/sys_stats.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "protozero_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/sys_stats/sys_stats.pbzero.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_trace_sys_stats_zero_gen_headers",
+    srcs: [
+        "protos/perfetto/trace/sys_stats/sys_stats.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "protozero_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/sys_stats/sys_stats.pbzero.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/trace/system_info:cpp
 genrule {
-  name: "perfetto_protos_perfetto_trace_system_info_cpp_gen",
-  srcs: [
-    "protos/perfetto/trace/system_info/cpu_info.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/system_info/cpu_info.gen.cc",
-  ],
+    name: "perfetto_protos_perfetto_trace_system_info_cpp_gen",
+    srcs: [
+        "protos/perfetto/trace/system_info/cpu_info.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/system_info/cpu_info.gen.cc",
+    ],
 }
 
 // GN: //protos/perfetto/trace/system_info:cpp
 genrule {
-  name: "perfetto_protos_perfetto_trace_system_info_cpp_gen_headers",
-  srcs: [
-    "protos/perfetto/trace/system_info/cpu_info.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/system_info/cpu_info.gen.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_trace_system_info_cpp_gen_headers",
+    srcs: [
+        "protos/perfetto/trace/system_info/cpu_info.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/system_info/cpu_info.gen.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/trace/system_info:lite
 genrule {
-  name: "perfetto_protos_perfetto_trace_system_info_lite_gen",
-  srcs: [
-    "protos/perfetto/trace/system_info/cpu_info.proto",
-  ],
-  tools: [
-    "aprotoc",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/system_info/cpu_info.pb.cc",
-  ],
+    name: "perfetto_protos_perfetto_trace_system_info_lite_gen",
+    srcs: [
+        "protos/perfetto/trace/system_info/cpu_info.proto",
+    ],
+    tools: [
+        "aprotoc",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/system_info/cpu_info.pb.cc",
+    ],
 }
 
 // GN: //protos/perfetto/trace/system_info:lite
 genrule {
-  name: "perfetto_protos_perfetto_trace_system_info_lite_gen_headers",
-  srcs: [
-    "protos/perfetto/trace/system_info/cpu_info.proto",
-  ],
-  tools: [
-    "aprotoc",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/system_info/cpu_info.pb.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_trace_system_info_lite_gen_headers",
+    srcs: [
+        "protos/perfetto/trace/system_info/cpu_info.proto",
+    ],
+    tools: [
+        "aprotoc",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/system_info/cpu_info.pb.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/trace/system_info:zero
 genrule {
-  name: "perfetto_protos_perfetto_trace_system_info_zero_gen",
-  srcs: [
-    "protos/perfetto/trace/system_info/cpu_info.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "protozero_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/system_info/cpu_info.pbzero.cc",
-  ],
+    name: "perfetto_protos_perfetto_trace_system_info_zero_gen",
+    srcs: [
+        "protos/perfetto/trace/system_info/cpu_info.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "protozero_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/system_info/cpu_info.pbzero.cc",
+    ],
 }
 
 // GN: //protos/perfetto/trace/system_info:zero
 genrule {
-  name: "perfetto_protos_perfetto_trace_system_info_zero_gen_headers",
-  srcs: [
-    "protos/perfetto/trace/system_info/cpu_info.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "protozero_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/system_info/cpu_info.pbzero.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_trace_system_info_zero_gen_headers",
+    srcs: [
+        "protos/perfetto/trace/system_info/cpu_info.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "protozero_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/system_info/cpu_info.pbzero.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/trace/track_event:cpp
 genrule {
-  name: "perfetto_protos_perfetto_trace_track_event_cpp_gen",
-  srcs: [
-    "protos/perfetto/trace/track_event/chrome_application_state_info.proto",
-    "protos/perfetto/trace/track_event/chrome_compositor_scheduler_state.proto",
-    "protos/perfetto/trace/track_event/chrome_content_settings_event_info.proto",
-    "protos/perfetto/trace/track_event/chrome_frame_reporter.proto",
-    "protos/perfetto/trace/track_event/chrome_histogram_sample.proto",
-    "protos/perfetto/trace/track_event/chrome_keyed_service.proto",
-    "protos/perfetto/trace/track_event/chrome_latency_info.proto",
-    "protos/perfetto/trace/track_event/chrome_legacy_ipc.proto",
-    "protos/perfetto/trace/track_event/chrome_message_pump.proto",
-    "protos/perfetto/trace/track_event/chrome_mojo_event_info.proto",
-    "protos/perfetto/trace/track_event/chrome_process_descriptor.proto",
-    "protos/perfetto/trace/track_event/chrome_renderer_scheduler_state.proto",
-    "protos/perfetto/trace/track_event/chrome_thread_descriptor.proto",
-    "protos/perfetto/trace/track_event/chrome_user_event.proto",
-    "protos/perfetto/trace/track_event/chrome_window_handle_event_info.proto",
-    "protos/perfetto/trace/track_event/counter_descriptor.proto",
-    "protos/perfetto/trace/track_event/debug_annotation.proto",
-    "protos/perfetto/trace/track_event/log_message.proto",
-    "protos/perfetto/trace/track_event/process_descriptor.proto",
-    "protos/perfetto/trace/track_event/source_location.proto",
-    "protos/perfetto/trace/track_event/task_execution.proto",
-    "protos/perfetto/trace/track_event/thread_descriptor.proto",
-    "protos/perfetto/trace/track_event/track_descriptor.proto",
-    "protos/perfetto/trace/track_event/track_event.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_application_state_info.gen.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_compositor_scheduler_state.gen.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_content_settings_event_info.gen.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_frame_reporter.gen.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_histogram_sample.gen.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_keyed_service.gen.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_latency_info.gen.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_legacy_ipc.gen.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_message_pump.gen.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_mojo_event_info.gen.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_process_descriptor.gen.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_renderer_scheduler_state.gen.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_thread_descriptor.gen.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_user_event.gen.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_window_handle_event_info.gen.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/counter_descriptor.gen.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/debug_annotation.gen.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/log_message.gen.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/process_descriptor.gen.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/source_location.gen.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/task_execution.gen.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/thread_descriptor.gen.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/track_descriptor.gen.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/track_event.gen.cc",
-  ],
+    name: "perfetto_protos_perfetto_trace_track_event_cpp_gen",
+    srcs: [
+        "protos/perfetto/trace/track_event/chrome_application_state_info.proto",
+        "protos/perfetto/trace/track_event/chrome_compositor_scheduler_state.proto",
+        "protos/perfetto/trace/track_event/chrome_content_settings_event_info.proto",
+        "protos/perfetto/trace/track_event/chrome_frame_reporter.proto",
+        "protos/perfetto/trace/track_event/chrome_histogram_sample.proto",
+        "protos/perfetto/trace/track_event/chrome_keyed_service.proto",
+        "protos/perfetto/trace/track_event/chrome_latency_info.proto",
+        "protos/perfetto/trace/track_event/chrome_legacy_ipc.proto",
+        "protos/perfetto/trace/track_event/chrome_message_pump.proto",
+        "protos/perfetto/trace/track_event/chrome_mojo_event_info.proto",
+        "protos/perfetto/trace/track_event/chrome_process_descriptor.proto",
+        "protos/perfetto/trace/track_event/chrome_renderer_scheduler_state.proto",
+        "protos/perfetto/trace/track_event/chrome_thread_descriptor.proto",
+        "protos/perfetto/trace/track_event/chrome_user_event.proto",
+        "protos/perfetto/trace/track_event/chrome_window_handle_event_info.proto",
+        "protos/perfetto/trace/track_event/counter_descriptor.proto",
+        "protos/perfetto/trace/track_event/debug_annotation.proto",
+        "protos/perfetto/trace/track_event/log_message.proto",
+        "protos/perfetto/trace/track_event/process_descriptor.proto",
+        "protos/perfetto/trace/track_event/source_location.proto",
+        "protos/perfetto/trace/track_event/task_execution.proto",
+        "protos/perfetto/trace/track_event/thread_descriptor.proto",
+        "protos/perfetto/trace/track_event/track_descriptor.proto",
+        "protos/perfetto/trace/track_event/track_event.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_application_state_info.gen.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_compositor_scheduler_state.gen.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_content_settings_event_info.gen.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_frame_reporter.gen.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_histogram_sample.gen.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_keyed_service.gen.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_latency_info.gen.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_legacy_ipc.gen.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_message_pump.gen.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_mojo_event_info.gen.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_process_descriptor.gen.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_renderer_scheduler_state.gen.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_thread_descriptor.gen.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_user_event.gen.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_window_handle_event_info.gen.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/counter_descriptor.gen.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/debug_annotation.gen.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/log_message.gen.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/process_descriptor.gen.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/source_location.gen.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/task_execution.gen.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/thread_descriptor.gen.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/track_descriptor.gen.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/track_event.gen.cc",
+    ],
 }
 
 // GN: //protos/perfetto/trace/track_event:cpp
 genrule {
-  name: "perfetto_protos_perfetto_trace_track_event_cpp_gen_headers",
-  srcs: [
-    "protos/perfetto/trace/track_event/chrome_application_state_info.proto",
-    "protos/perfetto/trace/track_event/chrome_compositor_scheduler_state.proto",
-    "protos/perfetto/trace/track_event/chrome_content_settings_event_info.proto",
-    "protos/perfetto/trace/track_event/chrome_frame_reporter.proto",
-    "protos/perfetto/trace/track_event/chrome_histogram_sample.proto",
-    "protos/perfetto/trace/track_event/chrome_keyed_service.proto",
-    "protos/perfetto/trace/track_event/chrome_latency_info.proto",
-    "protos/perfetto/trace/track_event/chrome_legacy_ipc.proto",
-    "protos/perfetto/trace/track_event/chrome_message_pump.proto",
-    "protos/perfetto/trace/track_event/chrome_mojo_event_info.proto",
-    "protos/perfetto/trace/track_event/chrome_process_descriptor.proto",
-    "protos/perfetto/trace/track_event/chrome_renderer_scheduler_state.proto",
-    "protos/perfetto/trace/track_event/chrome_thread_descriptor.proto",
-    "protos/perfetto/trace/track_event/chrome_user_event.proto",
-    "protos/perfetto/trace/track_event/chrome_window_handle_event_info.proto",
-    "protos/perfetto/trace/track_event/counter_descriptor.proto",
-    "protos/perfetto/trace/track_event/debug_annotation.proto",
-    "protos/perfetto/trace/track_event/log_message.proto",
-    "protos/perfetto/trace/track_event/process_descriptor.proto",
-    "protos/perfetto/trace/track_event/source_location.proto",
-    "protos/perfetto/trace/track_event/task_execution.proto",
-    "protos/perfetto/trace/track_event/thread_descriptor.proto",
-    "protos/perfetto/trace/track_event/track_descriptor.proto",
-    "protos/perfetto/trace/track_event/track_event.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_application_state_info.gen.h",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_compositor_scheduler_state.gen.h",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_content_settings_event_info.gen.h",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_frame_reporter.gen.h",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_histogram_sample.gen.h",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_keyed_service.gen.h",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_latency_info.gen.h",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_legacy_ipc.gen.h",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_message_pump.gen.h",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_mojo_event_info.gen.h",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_process_descriptor.gen.h",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_renderer_scheduler_state.gen.h",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_thread_descriptor.gen.h",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_user_event.gen.h",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_window_handle_event_info.gen.h",
-    "external/perfetto/protos/perfetto/trace/track_event/counter_descriptor.gen.h",
-    "external/perfetto/protos/perfetto/trace/track_event/debug_annotation.gen.h",
-    "external/perfetto/protos/perfetto/trace/track_event/log_message.gen.h",
-    "external/perfetto/protos/perfetto/trace/track_event/process_descriptor.gen.h",
-    "external/perfetto/protos/perfetto/trace/track_event/source_location.gen.h",
-    "external/perfetto/protos/perfetto/trace/track_event/task_execution.gen.h",
-    "external/perfetto/protos/perfetto/trace/track_event/thread_descriptor.gen.h",
-    "external/perfetto/protos/perfetto/trace/track_event/track_descriptor.gen.h",
-    "external/perfetto/protos/perfetto/trace/track_event/track_event.gen.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_trace_track_event_cpp_gen_headers",
+    srcs: [
+        "protos/perfetto/trace/track_event/chrome_application_state_info.proto",
+        "protos/perfetto/trace/track_event/chrome_compositor_scheduler_state.proto",
+        "protos/perfetto/trace/track_event/chrome_content_settings_event_info.proto",
+        "protos/perfetto/trace/track_event/chrome_frame_reporter.proto",
+        "protos/perfetto/trace/track_event/chrome_histogram_sample.proto",
+        "protos/perfetto/trace/track_event/chrome_keyed_service.proto",
+        "protos/perfetto/trace/track_event/chrome_latency_info.proto",
+        "protos/perfetto/trace/track_event/chrome_legacy_ipc.proto",
+        "protos/perfetto/trace/track_event/chrome_message_pump.proto",
+        "protos/perfetto/trace/track_event/chrome_mojo_event_info.proto",
+        "protos/perfetto/trace/track_event/chrome_process_descriptor.proto",
+        "protos/perfetto/trace/track_event/chrome_renderer_scheduler_state.proto",
+        "protos/perfetto/trace/track_event/chrome_thread_descriptor.proto",
+        "protos/perfetto/trace/track_event/chrome_user_event.proto",
+        "protos/perfetto/trace/track_event/chrome_window_handle_event_info.proto",
+        "protos/perfetto/trace/track_event/counter_descriptor.proto",
+        "protos/perfetto/trace/track_event/debug_annotation.proto",
+        "protos/perfetto/trace/track_event/log_message.proto",
+        "protos/perfetto/trace/track_event/process_descriptor.proto",
+        "protos/perfetto/trace/track_event/source_location.proto",
+        "protos/perfetto/trace/track_event/task_execution.proto",
+        "protos/perfetto/trace/track_event/thread_descriptor.proto",
+        "protos/perfetto/trace/track_event/track_descriptor.proto",
+        "protos/perfetto/trace/track_event/track_event.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_application_state_info.gen.h",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_compositor_scheduler_state.gen.h",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_content_settings_event_info.gen.h",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_frame_reporter.gen.h",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_histogram_sample.gen.h",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_keyed_service.gen.h",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_latency_info.gen.h",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_legacy_ipc.gen.h",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_message_pump.gen.h",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_mojo_event_info.gen.h",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_process_descriptor.gen.h",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_renderer_scheduler_state.gen.h",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_thread_descriptor.gen.h",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_user_event.gen.h",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_window_handle_event_info.gen.h",
+        "external/perfetto/protos/perfetto/trace/track_event/counter_descriptor.gen.h",
+        "external/perfetto/protos/perfetto/trace/track_event/debug_annotation.gen.h",
+        "external/perfetto/protos/perfetto/trace/track_event/log_message.gen.h",
+        "external/perfetto/protos/perfetto/trace/track_event/process_descriptor.gen.h",
+        "external/perfetto/protos/perfetto/trace/track_event/source_location.gen.h",
+        "external/perfetto/protos/perfetto/trace/track_event/task_execution.gen.h",
+        "external/perfetto/protos/perfetto/trace/track_event/thread_descriptor.gen.h",
+        "external/perfetto/protos/perfetto/trace/track_event/track_descriptor.gen.h",
+        "external/perfetto/protos/perfetto/trace/track_event/track_event.gen.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/trace/track_event:lite
 genrule {
-  name: "perfetto_protos_perfetto_trace_track_event_lite_gen",
-  srcs: [
-    "protos/perfetto/trace/track_event/chrome_application_state_info.proto",
-    "protos/perfetto/trace/track_event/chrome_compositor_scheduler_state.proto",
-    "protos/perfetto/trace/track_event/chrome_content_settings_event_info.proto",
-    "protos/perfetto/trace/track_event/chrome_frame_reporter.proto",
-    "protos/perfetto/trace/track_event/chrome_histogram_sample.proto",
-    "protos/perfetto/trace/track_event/chrome_keyed_service.proto",
-    "protos/perfetto/trace/track_event/chrome_latency_info.proto",
-    "protos/perfetto/trace/track_event/chrome_legacy_ipc.proto",
-    "protos/perfetto/trace/track_event/chrome_message_pump.proto",
-    "protos/perfetto/trace/track_event/chrome_mojo_event_info.proto",
-    "protos/perfetto/trace/track_event/chrome_process_descriptor.proto",
-    "protos/perfetto/trace/track_event/chrome_renderer_scheduler_state.proto",
-    "protos/perfetto/trace/track_event/chrome_thread_descriptor.proto",
-    "protos/perfetto/trace/track_event/chrome_user_event.proto",
-    "protos/perfetto/trace/track_event/chrome_window_handle_event_info.proto",
-    "protos/perfetto/trace/track_event/counter_descriptor.proto",
-    "protos/perfetto/trace/track_event/debug_annotation.proto",
-    "protos/perfetto/trace/track_event/log_message.proto",
-    "protos/perfetto/trace/track_event/process_descriptor.proto",
-    "protos/perfetto/trace/track_event/source_location.proto",
-    "protos/perfetto/trace/track_event/task_execution.proto",
-    "protos/perfetto/trace/track_event/thread_descriptor.proto",
-    "protos/perfetto/trace/track_event/track_descriptor.proto",
-    "protos/perfetto/trace/track_event/track_event.proto",
-  ],
-  tools: [
-    "aprotoc",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_application_state_info.pb.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_compositor_scheduler_state.pb.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_content_settings_event_info.pb.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_frame_reporter.pb.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_histogram_sample.pb.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_keyed_service.pb.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_latency_info.pb.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_legacy_ipc.pb.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_message_pump.pb.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_mojo_event_info.pb.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_process_descriptor.pb.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_renderer_scheduler_state.pb.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_thread_descriptor.pb.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_user_event.pb.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_window_handle_event_info.pb.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/counter_descriptor.pb.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/debug_annotation.pb.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/log_message.pb.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/process_descriptor.pb.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/source_location.pb.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/task_execution.pb.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/thread_descriptor.pb.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/track_descriptor.pb.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/track_event.pb.cc",
-  ],
+    name: "perfetto_protos_perfetto_trace_track_event_lite_gen",
+    srcs: [
+        "protos/perfetto/trace/track_event/chrome_application_state_info.proto",
+        "protos/perfetto/trace/track_event/chrome_compositor_scheduler_state.proto",
+        "protos/perfetto/trace/track_event/chrome_content_settings_event_info.proto",
+        "protos/perfetto/trace/track_event/chrome_frame_reporter.proto",
+        "protos/perfetto/trace/track_event/chrome_histogram_sample.proto",
+        "protos/perfetto/trace/track_event/chrome_keyed_service.proto",
+        "protos/perfetto/trace/track_event/chrome_latency_info.proto",
+        "protos/perfetto/trace/track_event/chrome_legacy_ipc.proto",
+        "protos/perfetto/trace/track_event/chrome_message_pump.proto",
+        "protos/perfetto/trace/track_event/chrome_mojo_event_info.proto",
+        "protos/perfetto/trace/track_event/chrome_process_descriptor.proto",
+        "protos/perfetto/trace/track_event/chrome_renderer_scheduler_state.proto",
+        "protos/perfetto/trace/track_event/chrome_thread_descriptor.proto",
+        "protos/perfetto/trace/track_event/chrome_user_event.proto",
+        "protos/perfetto/trace/track_event/chrome_window_handle_event_info.proto",
+        "protos/perfetto/trace/track_event/counter_descriptor.proto",
+        "protos/perfetto/trace/track_event/debug_annotation.proto",
+        "protos/perfetto/trace/track_event/log_message.proto",
+        "protos/perfetto/trace/track_event/process_descriptor.proto",
+        "protos/perfetto/trace/track_event/source_location.proto",
+        "protos/perfetto/trace/track_event/task_execution.proto",
+        "protos/perfetto/trace/track_event/thread_descriptor.proto",
+        "protos/perfetto/trace/track_event/track_descriptor.proto",
+        "protos/perfetto/trace/track_event/track_event.proto",
+    ],
+    tools: [
+        "aprotoc",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_application_state_info.pb.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_compositor_scheduler_state.pb.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_content_settings_event_info.pb.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_frame_reporter.pb.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_histogram_sample.pb.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_keyed_service.pb.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_latency_info.pb.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_legacy_ipc.pb.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_message_pump.pb.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_mojo_event_info.pb.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_process_descriptor.pb.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_renderer_scheduler_state.pb.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_thread_descriptor.pb.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_user_event.pb.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_window_handle_event_info.pb.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/counter_descriptor.pb.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/debug_annotation.pb.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/log_message.pb.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/process_descriptor.pb.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/source_location.pb.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/task_execution.pb.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/thread_descriptor.pb.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/track_descriptor.pb.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/track_event.pb.cc",
+    ],
 }
 
 // GN: //protos/perfetto/trace/track_event:lite
 genrule {
-  name: "perfetto_protos_perfetto_trace_track_event_lite_gen_headers",
-  srcs: [
-    "protos/perfetto/trace/track_event/chrome_application_state_info.proto",
-    "protos/perfetto/trace/track_event/chrome_compositor_scheduler_state.proto",
-    "protos/perfetto/trace/track_event/chrome_content_settings_event_info.proto",
-    "protos/perfetto/trace/track_event/chrome_frame_reporter.proto",
-    "protos/perfetto/trace/track_event/chrome_histogram_sample.proto",
-    "protos/perfetto/trace/track_event/chrome_keyed_service.proto",
-    "protos/perfetto/trace/track_event/chrome_latency_info.proto",
-    "protos/perfetto/trace/track_event/chrome_legacy_ipc.proto",
-    "protos/perfetto/trace/track_event/chrome_message_pump.proto",
-    "protos/perfetto/trace/track_event/chrome_mojo_event_info.proto",
-    "protos/perfetto/trace/track_event/chrome_process_descriptor.proto",
-    "protos/perfetto/trace/track_event/chrome_renderer_scheduler_state.proto",
-    "protos/perfetto/trace/track_event/chrome_thread_descriptor.proto",
-    "protos/perfetto/trace/track_event/chrome_user_event.proto",
-    "protos/perfetto/trace/track_event/chrome_window_handle_event_info.proto",
-    "protos/perfetto/trace/track_event/counter_descriptor.proto",
-    "protos/perfetto/trace/track_event/debug_annotation.proto",
-    "protos/perfetto/trace/track_event/log_message.proto",
-    "protos/perfetto/trace/track_event/process_descriptor.proto",
-    "protos/perfetto/trace/track_event/source_location.proto",
-    "protos/perfetto/trace/track_event/task_execution.proto",
-    "protos/perfetto/trace/track_event/thread_descriptor.proto",
-    "protos/perfetto/trace/track_event/track_descriptor.proto",
-    "protos/perfetto/trace/track_event/track_event.proto",
-  ],
-  tools: [
-    "aprotoc",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_application_state_info.pb.h",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_compositor_scheduler_state.pb.h",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_content_settings_event_info.pb.h",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_frame_reporter.pb.h",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_histogram_sample.pb.h",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_keyed_service.pb.h",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_latency_info.pb.h",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_legacy_ipc.pb.h",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_message_pump.pb.h",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_mojo_event_info.pb.h",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_process_descriptor.pb.h",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_renderer_scheduler_state.pb.h",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_thread_descriptor.pb.h",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_user_event.pb.h",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_window_handle_event_info.pb.h",
-    "external/perfetto/protos/perfetto/trace/track_event/counter_descriptor.pb.h",
-    "external/perfetto/protos/perfetto/trace/track_event/debug_annotation.pb.h",
-    "external/perfetto/protos/perfetto/trace/track_event/log_message.pb.h",
-    "external/perfetto/protos/perfetto/trace/track_event/process_descriptor.pb.h",
-    "external/perfetto/protos/perfetto/trace/track_event/source_location.pb.h",
-    "external/perfetto/protos/perfetto/trace/track_event/task_execution.pb.h",
-    "external/perfetto/protos/perfetto/trace/track_event/thread_descriptor.pb.h",
-    "external/perfetto/protos/perfetto/trace/track_event/track_descriptor.pb.h",
-    "external/perfetto/protos/perfetto/trace/track_event/track_event.pb.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_trace_track_event_lite_gen_headers",
+    srcs: [
+        "protos/perfetto/trace/track_event/chrome_application_state_info.proto",
+        "protos/perfetto/trace/track_event/chrome_compositor_scheduler_state.proto",
+        "protos/perfetto/trace/track_event/chrome_content_settings_event_info.proto",
+        "protos/perfetto/trace/track_event/chrome_frame_reporter.proto",
+        "protos/perfetto/trace/track_event/chrome_histogram_sample.proto",
+        "protos/perfetto/trace/track_event/chrome_keyed_service.proto",
+        "protos/perfetto/trace/track_event/chrome_latency_info.proto",
+        "protos/perfetto/trace/track_event/chrome_legacy_ipc.proto",
+        "protos/perfetto/trace/track_event/chrome_message_pump.proto",
+        "protos/perfetto/trace/track_event/chrome_mojo_event_info.proto",
+        "protos/perfetto/trace/track_event/chrome_process_descriptor.proto",
+        "protos/perfetto/trace/track_event/chrome_renderer_scheduler_state.proto",
+        "protos/perfetto/trace/track_event/chrome_thread_descriptor.proto",
+        "protos/perfetto/trace/track_event/chrome_user_event.proto",
+        "protos/perfetto/trace/track_event/chrome_window_handle_event_info.proto",
+        "protos/perfetto/trace/track_event/counter_descriptor.proto",
+        "protos/perfetto/trace/track_event/debug_annotation.proto",
+        "protos/perfetto/trace/track_event/log_message.proto",
+        "protos/perfetto/trace/track_event/process_descriptor.proto",
+        "protos/perfetto/trace/track_event/source_location.proto",
+        "protos/perfetto/trace/track_event/task_execution.proto",
+        "protos/perfetto/trace/track_event/thread_descriptor.proto",
+        "protos/perfetto/trace/track_event/track_descriptor.proto",
+        "protos/perfetto/trace/track_event/track_event.proto",
+    ],
+    tools: [
+        "aprotoc",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_application_state_info.pb.h",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_compositor_scheduler_state.pb.h",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_content_settings_event_info.pb.h",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_frame_reporter.pb.h",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_histogram_sample.pb.h",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_keyed_service.pb.h",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_latency_info.pb.h",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_legacy_ipc.pb.h",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_message_pump.pb.h",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_mojo_event_info.pb.h",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_process_descriptor.pb.h",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_renderer_scheduler_state.pb.h",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_thread_descriptor.pb.h",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_user_event.pb.h",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_window_handle_event_info.pb.h",
+        "external/perfetto/protos/perfetto/trace/track_event/counter_descriptor.pb.h",
+        "external/perfetto/protos/perfetto/trace/track_event/debug_annotation.pb.h",
+        "external/perfetto/protos/perfetto/trace/track_event/log_message.pb.h",
+        "external/perfetto/protos/perfetto/trace/track_event/process_descriptor.pb.h",
+        "external/perfetto/protos/perfetto/trace/track_event/source_location.pb.h",
+        "external/perfetto/protos/perfetto/trace/track_event/task_execution.pb.h",
+        "external/perfetto/protos/perfetto/trace/track_event/thread_descriptor.pb.h",
+        "external/perfetto/protos/perfetto/trace/track_event/track_descriptor.pb.h",
+        "external/perfetto/protos/perfetto/trace/track_event/track_event.pb.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/perfetto/trace/track_event:track_event_descriptor
 genrule {
-  name: "perfetto_protos_perfetto_trace_track_event_track_event_descriptor",
-  srcs: [
-    "protos/perfetto/trace/track_event/chrome_application_state_info.proto",
-    "protos/perfetto/trace/track_event/chrome_compositor_scheduler_state.proto",
-    "protos/perfetto/trace/track_event/chrome_content_settings_event_info.proto",
-    "protos/perfetto/trace/track_event/chrome_frame_reporter.proto",
-    "protos/perfetto/trace/track_event/chrome_histogram_sample.proto",
-    "protos/perfetto/trace/track_event/chrome_keyed_service.proto",
-    "protos/perfetto/trace/track_event/chrome_latency_info.proto",
-    "protos/perfetto/trace/track_event/chrome_legacy_ipc.proto",
-    "protos/perfetto/trace/track_event/chrome_message_pump.proto",
-    "protos/perfetto/trace/track_event/chrome_mojo_event_info.proto",
-    "protos/perfetto/trace/track_event/chrome_process_descriptor.proto",
-    "protos/perfetto/trace/track_event/chrome_renderer_scheduler_state.proto",
-    "protos/perfetto/trace/track_event/chrome_thread_descriptor.proto",
-    "protos/perfetto/trace/track_event/chrome_user_event.proto",
-    "protos/perfetto/trace/track_event/chrome_window_handle_event_info.proto",
-    "protos/perfetto/trace/track_event/counter_descriptor.proto",
-    "protos/perfetto/trace/track_event/debug_annotation.proto",
-    "protos/perfetto/trace/track_event/log_message.proto",
-    "protos/perfetto/trace/track_event/process_descriptor.proto",
-    "protos/perfetto/trace/track_event/source_location.proto",
-    "protos/perfetto/trace/track_event/task_execution.proto",
-    "protos/perfetto/trace/track_event/thread_descriptor.proto",
-    "protos/perfetto/trace/track_event/track_descriptor.proto",
-    "protos/perfetto/trace/track_event/track_event.proto",
-  ],
-  tools: [
-    "aprotoc",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --descriptor_set_out=$(out) $(in)",
-  out: [
-    "perfetto_protos_perfetto_trace_track_event_track_event_descriptor.bin",
-  ],
+    name: "perfetto_protos_perfetto_trace_track_event_track_event_descriptor",
+    srcs: [
+        "protos/perfetto/trace/track_event/chrome_application_state_info.proto",
+        "protos/perfetto/trace/track_event/chrome_compositor_scheduler_state.proto",
+        "protos/perfetto/trace/track_event/chrome_content_settings_event_info.proto",
+        "protos/perfetto/trace/track_event/chrome_frame_reporter.proto",
+        "protos/perfetto/trace/track_event/chrome_histogram_sample.proto",
+        "protos/perfetto/trace/track_event/chrome_keyed_service.proto",
+        "protos/perfetto/trace/track_event/chrome_latency_info.proto",
+        "protos/perfetto/trace/track_event/chrome_legacy_ipc.proto",
+        "protos/perfetto/trace/track_event/chrome_message_pump.proto",
+        "protos/perfetto/trace/track_event/chrome_mojo_event_info.proto",
+        "protos/perfetto/trace/track_event/chrome_process_descriptor.proto",
+        "protos/perfetto/trace/track_event/chrome_renderer_scheduler_state.proto",
+        "protos/perfetto/trace/track_event/chrome_thread_descriptor.proto",
+        "protos/perfetto/trace/track_event/chrome_user_event.proto",
+        "protos/perfetto/trace/track_event/chrome_window_handle_event_info.proto",
+        "protos/perfetto/trace/track_event/counter_descriptor.proto",
+        "protos/perfetto/trace/track_event/debug_annotation.proto",
+        "protos/perfetto/trace/track_event/log_message.proto",
+        "protos/perfetto/trace/track_event/process_descriptor.proto",
+        "protos/perfetto/trace/track_event/source_location.proto",
+        "protos/perfetto/trace/track_event/task_execution.proto",
+        "protos/perfetto/trace/track_event/thread_descriptor.proto",
+        "protos/perfetto/trace/track_event/track_descriptor.proto",
+        "protos/perfetto/trace/track_event/track_event.proto",
+    ],
+    tools: [
+        "aprotoc",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --descriptor_set_out=$(out) $(in)",
+    out: [
+        "perfetto_protos_perfetto_trace_track_event_track_event_descriptor.bin",
+    ],
 }
 
 // GN: //protos/perfetto/trace/track_event:zero
 genrule {
-  name: "perfetto_protos_perfetto_trace_track_event_zero_gen",
-  srcs: [
-    "protos/perfetto/trace/track_event/chrome_application_state_info.proto",
-    "protos/perfetto/trace/track_event/chrome_compositor_scheduler_state.proto",
-    "protos/perfetto/trace/track_event/chrome_content_settings_event_info.proto",
-    "protos/perfetto/trace/track_event/chrome_frame_reporter.proto",
-    "protos/perfetto/trace/track_event/chrome_histogram_sample.proto",
-    "protos/perfetto/trace/track_event/chrome_keyed_service.proto",
-    "protos/perfetto/trace/track_event/chrome_latency_info.proto",
-    "protos/perfetto/trace/track_event/chrome_legacy_ipc.proto",
-    "protos/perfetto/trace/track_event/chrome_message_pump.proto",
-    "protos/perfetto/trace/track_event/chrome_mojo_event_info.proto",
-    "protos/perfetto/trace/track_event/chrome_process_descriptor.proto",
-    "protos/perfetto/trace/track_event/chrome_renderer_scheduler_state.proto",
-    "protos/perfetto/trace/track_event/chrome_thread_descriptor.proto",
-    "protos/perfetto/trace/track_event/chrome_user_event.proto",
-    "protos/perfetto/trace/track_event/chrome_window_handle_event_info.proto",
-    "protos/perfetto/trace/track_event/counter_descriptor.proto",
-    "protos/perfetto/trace/track_event/debug_annotation.proto",
-    "protos/perfetto/trace/track_event/log_message.proto",
-    "protos/perfetto/trace/track_event/process_descriptor.proto",
-    "protos/perfetto/trace/track_event/source_location.proto",
-    "protos/perfetto/trace/track_event/task_execution.proto",
-    "protos/perfetto/trace/track_event/thread_descriptor.proto",
-    "protos/perfetto/trace/track_event/track_descriptor.proto",
-    "protos/perfetto/trace/track_event/track_event.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "protozero_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_application_state_info.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_compositor_scheduler_state.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_content_settings_event_info.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_frame_reporter.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_histogram_sample.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_keyed_service.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_latency_info.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_legacy_ipc.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_message_pump.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_mojo_event_info.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_process_descriptor.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_renderer_scheduler_state.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_thread_descriptor.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_user_event.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_window_handle_event_info.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/counter_descriptor.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/debug_annotation.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/log_message.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/process_descriptor.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/source_location.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/task_execution.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/thread_descriptor.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/track_descriptor.pbzero.cc",
-    "external/perfetto/protos/perfetto/trace/track_event/track_event.pbzero.cc",
-  ],
+    name: "perfetto_protos_perfetto_trace_track_event_zero_gen",
+    srcs: [
+        "protos/perfetto/trace/track_event/chrome_application_state_info.proto",
+        "protos/perfetto/trace/track_event/chrome_compositor_scheduler_state.proto",
+        "protos/perfetto/trace/track_event/chrome_content_settings_event_info.proto",
+        "protos/perfetto/trace/track_event/chrome_frame_reporter.proto",
+        "protos/perfetto/trace/track_event/chrome_histogram_sample.proto",
+        "protos/perfetto/trace/track_event/chrome_keyed_service.proto",
+        "protos/perfetto/trace/track_event/chrome_latency_info.proto",
+        "protos/perfetto/trace/track_event/chrome_legacy_ipc.proto",
+        "protos/perfetto/trace/track_event/chrome_message_pump.proto",
+        "protos/perfetto/trace/track_event/chrome_mojo_event_info.proto",
+        "protos/perfetto/trace/track_event/chrome_process_descriptor.proto",
+        "protos/perfetto/trace/track_event/chrome_renderer_scheduler_state.proto",
+        "protos/perfetto/trace/track_event/chrome_thread_descriptor.proto",
+        "protos/perfetto/trace/track_event/chrome_user_event.proto",
+        "protos/perfetto/trace/track_event/chrome_window_handle_event_info.proto",
+        "protos/perfetto/trace/track_event/counter_descriptor.proto",
+        "protos/perfetto/trace/track_event/debug_annotation.proto",
+        "protos/perfetto/trace/track_event/log_message.proto",
+        "protos/perfetto/trace/track_event/process_descriptor.proto",
+        "protos/perfetto/trace/track_event/source_location.proto",
+        "protos/perfetto/trace/track_event/task_execution.proto",
+        "protos/perfetto/trace/track_event/thread_descriptor.proto",
+        "protos/perfetto/trace/track_event/track_descriptor.proto",
+        "protos/perfetto/trace/track_event/track_event.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "protozero_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_application_state_info.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_compositor_scheduler_state.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_content_settings_event_info.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_frame_reporter.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_histogram_sample.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_keyed_service.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_latency_info.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_legacy_ipc.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_message_pump.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_mojo_event_info.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_process_descriptor.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_renderer_scheduler_state.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_thread_descriptor.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_user_event.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_window_handle_event_info.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/counter_descriptor.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/debug_annotation.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/log_message.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/process_descriptor.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/source_location.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/task_execution.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/thread_descriptor.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/track_descriptor.pbzero.cc",
+        "external/perfetto/protos/perfetto/trace/track_event/track_event.pbzero.cc",
+    ],
 }
 
 // GN: //protos/perfetto/trace/track_event:zero
 genrule {
-  name: "perfetto_protos_perfetto_trace_track_event_zero_gen_headers",
-  srcs: [
-    "protos/perfetto/trace/track_event/chrome_application_state_info.proto",
-    "protos/perfetto/trace/track_event/chrome_compositor_scheduler_state.proto",
-    "protos/perfetto/trace/track_event/chrome_content_settings_event_info.proto",
-    "protos/perfetto/trace/track_event/chrome_frame_reporter.proto",
-    "protos/perfetto/trace/track_event/chrome_histogram_sample.proto",
-    "protos/perfetto/trace/track_event/chrome_keyed_service.proto",
-    "protos/perfetto/trace/track_event/chrome_latency_info.proto",
-    "protos/perfetto/trace/track_event/chrome_legacy_ipc.proto",
-    "protos/perfetto/trace/track_event/chrome_message_pump.proto",
-    "protos/perfetto/trace/track_event/chrome_mojo_event_info.proto",
-    "protos/perfetto/trace/track_event/chrome_process_descriptor.proto",
-    "protos/perfetto/trace/track_event/chrome_renderer_scheduler_state.proto",
-    "protos/perfetto/trace/track_event/chrome_thread_descriptor.proto",
-    "protos/perfetto/trace/track_event/chrome_user_event.proto",
-    "protos/perfetto/trace/track_event/chrome_window_handle_event_info.proto",
-    "protos/perfetto/trace/track_event/counter_descriptor.proto",
-    "protos/perfetto/trace/track_event/debug_annotation.proto",
-    "protos/perfetto/trace/track_event/log_message.proto",
-    "protos/perfetto/trace/track_event/process_descriptor.proto",
-    "protos/perfetto/trace/track_event/source_location.proto",
-    "protos/perfetto/trace/track_event/task_execution.proto",
-    "protos/perfetto/trace/track_event/thread_descriptor.proto",
-    "protos/perfetto/trace/track_event/track_descriptor.proto",
-    "protos/perfetto/trace/track_event/track_event.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "protozero_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_application_state_info.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_compositor_scheduler_state.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_content_settings_event_info.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_frame_reporter.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_histogram_sample.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_keyed_service.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_latency_info.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_legacy_ipc.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_message_pump.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_mojo_event_info.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_process_descriptor.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_renderer_scheduler_state.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_thread_descriptor.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_user_event.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/track_event/chrome_window_handle_event_info.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/track_event/counter_descriptor.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/track_event/debug_annotation.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/track_event/log_message.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/track_event/process_descriptor.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/track_event/source_location.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/track_event/task_execution.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/track_event/thread_descriptor.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/track_event/track_descriptor.pbzero.h",
-    "external/perfetto/protos/perfetto/trace/track_event/track_event.pbzero.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_perfetto_trace_track_event_zero_gen_headers",
+    srcs: [
+        "protos/perfetto/trace/track_event/chrome_application_state_info.proto",
+        "protos/perfetto/trace/track_event/chrome_compositor_scheduler_state.proto",
+        "protos/perfetto/trace/track_event/chrome_content_settings_event_info.proto",
+        "protos/perfetto/trace/track_event/chrome_frame_reporter.proto",
+        "protos/perfetto/trace/track_event/chrome_histogram_sample.proto",
+        "protos/perfetto/trace/track_event/chrome_keyed_service.proto",
+        "protos/perfetto/trace/track_event/chrome_latency_info.proto",
+        "protos/perfetto/trace/track_event/chrome_legacy_ipc.proto",
+        "protos/perfetto/trace/track_event/chrome_message_pump.proto",
+        "protos/perfetto/trace/track_event/chrome_mojo_event_info.proto",
+        "protos/perfetto/trace/track_event/chrome_process_descriptor.proto",
+        "protos/perfetto/trace/track_event/chrome_renderer_scheduler_state.proto",
+        "protos/perfetto/trace/track_event/chrome_thread_descriptor.proto",
+        "protos/perfetto/trace/track_event/chrome_user_event.proto",
+        "protos/perfetto/trace/track_event/chrome_window_handle_event_info.proto",
+        "protos/perfetto/trace/track_event/counter_descriptor.proto",
+        "protos/perfetto/trace/track_event/debug_annotation.proto",
+        "protos/perfetto/trace/track_event/log_message.proto",
+        "protos/perfetto/trace/track_event/process_descriptor.proto",
+        "protos/perfetto/trace/track_event/source_location.proto",
+        "protos/perfetto/trace/track_event/task_execution.proto",
+        "protos/perfetto/trace/track_event/thread_descriptor.proto",
+        "protos/perfetto/trace/track_event/track_descriptor.proto",
+        "protos/perfetto/trace/track_event/track_event.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "protozero_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_application_state_info.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_compositor_scheduler_state.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_content_settings_event_info.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_frame_reporter.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_histogram_sample.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_keyed_service.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_latency_info.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_legacy_ipc.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_message_pump.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_mojo_event_info.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_process_descriptor.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_renderer_scheduler_state.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_thread_descriptor.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_user_event.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/track_event/chrome_window_handle_event_info.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/track_event/counter_descriptor.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/track_event/debug_annotation.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/track_event/log_message.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/track_event/process_descriptor.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/track_event/source_location.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/track_event/task_execution.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/track_event/thread_descriptor.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/track_event/track_descriptor.pbzero.h",
+        "external/perfetto/protos/perfetto/trace/track_event/track_event.pbzero.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //protos/third_party/chromium:chrome_track_event_descriptor
 genrule {
-  name: "perfetto_protos_third_party_chromium_chrome_track_event_descriptor",
-  srcs: [
-    "protos/perfetto/trace/track_event/chrome_application_state_info.proto",
-    "protos/perfetto/trace/track_event/chrome_compositor_scheduler_state.proto",
-    "protos/perfetto/trace/track_event/chrome_content_settings_event_info.proto",
-    "protos/perfetto/trace/track_event/chrome_frame_reporter.proto",
-    "protos/perfetto/trace/track_event/chrome_histogram_sample.proto",
-    "protos/perfetto/trace/track_event/chrome_keyed_service.proto",
-    "protos/perfetto/trace/track_event/chrome_latency_info.proto",
-    "protos/perfetto/trace/track_event/chrome_legacy_ipc.proto",
-    "protos/perfetto/trace/track_event/chrome_message_pump.proto",
-    "protos/perfetto/trace/track_event/chrome_mojo_event_info.proto",
-    "protos/perfetto/trace/track_event/chrome_process_descriptor.proto",
-    "protos/perfetto/trace/track_event/chrome_renderer_scheduler_state.proto",
-    "protos/perfetto/trace/track_event/chrome_thread_descriptor.proto",
-    "protos/perfetto/trace/track_event/chrome_user_event.proto",
-    "protos/perfetto/trace/track_event/chrome_window_handle_event_info.proto",
-    "protos/perfetto/trace/track_event/counter_descriptor.proto",
-    "protos/perfetto/trace/track_event/debug_annotation.proto",
-    "protos/perfetto/trace/track_event/log_message.proto",
-    "protos/perfetto/trace/track_event/process_descriptor.proto",
-    "protos/perfetto/trace/track_event/source_location.proto",
-    "protos/perfetto/trace/track_event/task_execution.proto",
-    "protos/perfetto/trace/track_event/thread_descriptor.proto",
-    "protos/perfetto/trace/track_event/track_descriptor.proto",
-    "protos/perfetto/trace/track_event/track_event.proto",
-    "protos/third_party/chromium/chrome_track_event.proto",
-  ],
-  tools: [
-    "aprotoc",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --descriptor_set_out=$(out) $(in)",
-  out: [
-    "perfetto_protos_third_party_chromium_chrome_track_event_descriptor.bin",
-  ],
+    name: "perfetto_protos_third_party_chromium_chrome_track_event_descriptor",
+    srcs: [
+        "protos/perfetto/trace/track_event/chrome_application_state_info.proto",
+        "protos/perfetto/trace/track_event/chrome_compositor_scheduler_state.proto",
+        "protos/perfetto/trace/track_event/chrome_content_settings_event_info.proto",
+        "protos/perfetto/trace/track_event/chrome_frame_reporter.proto",
+        "protos/perfetto/trace/track_event/chrome_histogram_sample.proto",
+        "protos/perfetto/trace/track_event/chrome_keyed_service.proto",
+        "protos/perfetto/trace/track_event/chrome_latency_info.proto",
+        "protos/perfetto/trace/track_event/chrome_legacy_ipc.proto",
+        "protos/perfetto/trace/track_event/chrome_message_pump.proto",
+        "protos/perfetto/trace/track_event/chrome_mojo_event_info.proto",
+        "protos/perfetto/trace/track_event/chrome_process_descriptor.proto",
+        "protos/perfetto/trace/track_event/chrome_renderer_scheduler_state.proto",
+        "protos/perfetto/trace/track_event/chrome_thread_descriptor.proto",
+        "protos/perfetto/trace/track_event/chrome_user_event.proto",
+        "protos/perfetto/trace/track_event/chrome_window_handle_event_info.proto",
+        "protos/perfetto/trace/track_event/counter_descriptor.proto",
+        "protos/perfetto/trace/track_event/debug_annotation.proto",
+        "protos/perfetto/trace/track_event/log_message.proto",
+        "protos/perfetto/trace/track_event/process_descriptor.proto",
+        "protos/perfetto/trace/track_event/source_location.proto",
+        "protos/perfetto/trace/track_event/task_execution.proto",
+        "protos/perfetto/trace/track_event/thread_descriptor.proto",
+        "protos/perfetto/trace/track_event/track_descriptor.proto",
+        "protos/perfetto/trace/track_event/track_event.proto",
+        "protos/third_party/chromium/chrome_track_event.proto",
+    ],
+    tools: [
+        "aprotoc",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --descriptor_set_out=$(out) $(in)",
+    out: [
+        "perfetto_protos_third_party_chromium_chrome_track_event_descriptor.bin",
+    ],
 }
 
 // GN: //protos/third_party/pprof:zero
 genrule {
-  name: "perfetto_protos_third_party_pprof_zero_gen",
-  srcs: [
-    "protos/third_party/pprof/profile.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "protozero_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/third_party/pprof/profile.pbzero.cc",
-  ],
+    name: "perfetto_protos_third_party_pprof_zero_gen",
+    srcs: [
+        "protos/third_party/pprof/profile.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "protozero_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/third_party/pprof/profile.pbzero.cc",
+    ],
 }
 
 // GN: //protos/third_party/pprof:zero
 genrule {
-  name: "perfetto_protos_third_party_pprof_zero_gen_headers",
-  srcs: [
-    "protos/third_party/pprof/profile.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "protozero_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/protos/third_party/pprof/profile.pbzero.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_protos_third_party_pprof_zero_gen_headers",
+    srcs: [
+        "protos/third_party/pprof/profile.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "protozero_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/protos/third_party/pprof/profile.pbzero.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //src/android_internal:headers
 filegroup {
-  name: "perfetto_src_android_internal_headers",
+    name: "perfetto_src_android_internal_headers",
 }
 
 // GN: //src/android_internal:lazy_library_loader
 filegroup {
-  name: "perfetto_src_android_internal_lazy_library_loader",
-  srcs: [
-    "src/android_internal/lazy_library_loader.cc",
-  ],
+    name: "perfetto_src_android_internal_lazy_library_loader",
+    srcs: [
+        "src/android_internal/lazy_library_loader.cc",
+    ],
 }
 
 // GN: //src/android_stats:android_stats
 filegroup {
-  name: "perfetto_src_android_stats_android_stats",
-  srcs: [
-    "src/android_stats/statsd_logging_helper.cc",
-  ],
+    name: "perfetto_src_android_stats_android_stats",
+    srcs: [
+        "src/android_stats/statsd_logging_helper.cc",
+    ],
 }
 
 // GN: //src/android_stats:perfetto_atoms
 filegroup {
-  name: "perfetto_src_android_stats_perfetto_atoms",
+    name: "perfetto_src_android_stats_perfetto_atoms",
 }
 
 // GN: //src/base:base
 filegroup {
-  name: "perfetto_src_base_base",
-  srcs: [
-    "src/base/ctrl_c_handler.cc",
-    "src/base/event_fd.cc",
-    "src/base/file_utils.cc",
-    "src/base/getopt_compat.cc",
-    "src/base/logging.cc",
-    "src/base/metatrace.cc",
-    "src/base/paged_memory.cc",
-    "src/base/periodic_task.cc",
-    "src/base/pipe.cc",
-    "src/base/status.cc",
-    "src/base/string_splitter.cc",
-    "src/base/string_utils.cc",
-    "src/base/string_view.cc",
-    "src/base/subprocess.cc",
-    "src/base/subprocess_posix.cc",
-    "src/base/subprocess_windows.cc",
-    "src/base/temp_file.cc",
-    "src/base/thread_checker.cc",
-    "src/base/thread_task_runner.cc",
-    "src/base/time.cc",
-    "src/base/unix_task_runner.cc",
-    "src/base/utils.cc",
-    "src/base/uuid.cc",
-    "src/base/version.cc",
-    "src/base/virtual_destructors.cc",
-    "src/base/waitable_event.cc",
-    "src/base/watchdog_posix.cc",
-  ],
+    name: "perfetto_src_base_base",
+    srcs: [
+        "src/base/ctrl_c_handler.cc",
+        "src/base/event_fd.cc",
+        "src/base/file_utils.cc",
+        "src/base/getopt_compat.cc",
+        "src/base/logging.cc",
+        "src/base/metatrace.cc",
+        "src/base/paged_memory.cc",
+        "src/base/periodic_task.cc",
+        "src/base/pipe.cc",
+        "src/base/status.cc",
+        "src/base/string_splitter.cc",
+        "src/base/string_utils.cc",
+        "src/base/string_view.cc",
+        "src/base/subprocess.cc",
+        "src/base/subprocess_posix.cc",
+        "src/base/subprocess_windows.cc",
+        "src/base/temp_file.cc",
+        "src/base/thread_checker.cc",
+        "src/base/thread_task_runner.cc",
+        "src/base/time.cc",
+        "src/base/unix_task_runner.cc",
+        "src/base/utils.cc",
+        "src/base/uuid.cc",
+        "src/base/version.cc",
+        "src/base/virtual_destructors.cc",
+        "src/base/waitable_event.cc",
+        "src/base/watchdog_posix.cc",
+    ],
 }
 
 // GN: //src/base:test_support
 filegroup {
-  name: "perfetto_src_base_test_support",
-  srcs: [
-    "src/base/test/test_task_runner.cc",
-    "src/base/test/utils.cc",
-    "src/base/test/vm_test_utils.cc",
-  ],
+    name: "perfetto_src_base_test_support",
+    srcs: [
+        "src/base/test/test_task_runner.cc",
+        "src/base/test/utils.cc",
+        "src/base/test/vm_test_utils.cc",
+    ],
 }
 
 // GN: //src/base:unittests
 filegroup {
-  name: "perfetto_src_base_unittests",
-  srcs: [
-    "src/base/circular_queue_unittest.cc",
-    "src/base/flat_set_unittest.cc",
-    "src/base/getopt_compat_unittest.cc",
-    "src/base/logging_unittest.cc",
-    "src/base/metatrace_unittest.cc",
-    "src/base/no_destructor_unittest.cc",
-    "src/base/optional_unittest.cc",
-    "src/base/paged_memory_unittest.cc",
-    "src/base/periodic_task_unittest.cc",
-    "src/base/scoped_file_unittest.cc",
-    "src/base/string_splitter_unittest.cc",
-    "src/base/string_utils_unittest.cc",
-    "src/base/string_view_unittest.cc",
-    "src/base/string_writer_unittest.cc",
-    "src/base/subprocess_unittest.cc",
-    "src/base/task_runner_unittest.cc",
-    "src/base/temp_file_unittest.cc",
-    "src/base/thread_checker_unittest.cc",
-    "src/base/thread_task_runner_unittest.cc",
-    "src/base/time_unittest.cc",
-    "src/base/unix_socket_unittest.cc",
-    "src/base/utils_unittest.cc",
-    "src/base/uuid_unittest.cc",
-    "src/base/watchdog_posix_unittest.cc",
-    "src/base/watchdog_unittest.cc",
-    "src/base/weak_ptr_unittest.cc",
-  ],
+    name: "perfetto_src_base_unittests",
+    srcs: [
+        "src/base/circular_queue_unittest.cc",
+        "src/base/flat_set_unittest.cc",
+        "src/base/getopt_compat_unittest.cc",
+        "src/base/logging_unittest.cc",
+        "src/base/metatrace_unittest.cc",
+        "src/base/no_destructor_unittest.cc",
+        "src/base/optional_unittest.cc",
+        "src/base/paged_memory_unittest.cc",
+        "src/base/periodic_task_unittest.cc",
+        "src/base/scoped_file_unittest.cc",
+        "src/base/string_splitter_unittest.cc",
+        "src/base/string_utils_unittest.cc",
+        "src/base/string_view_unittest.cc",
+        "src/base/string_writer_unittest.cc",
+        "src/base/subprocess_unittest.cc",
+        "src/base/task_runner_unittest.cc",
+        "src/base/temp_file_unittest.cc",
+        "src/base/thread_checker_unittest.cc",
+        "src/base/thread_task_runner_unittest.cc",
+        "src/base/time_unittest.cc",
+        "src/base/unix_socket_unittest.cc",
+        "src/base/utils_unittest.cc",
+        "src/base/uuid_unittest.cc",
+        "src/base/watchdog_posix_unittest.cc",
+        "src/base/watchdog_unittest.cc",
+        "src/base/weak_ptr_unittest.cc",
+    ],
 }
 
 // GN: //src/base:unix_socket
 filegroup {
-  name: "perfetto_src_base_unix_socket",
-  srcs: [
-    "src/base/unix_socket.cc",
-  ],
+    name: "perfetto_src_base_unix_socket",
+    srcs: [
+        "src/base/unix_socket.cc",
+    ],
 }
 
 // GN: //src/base:version_gen_h
 genrule {
-  name: "perfetto_src_base_version_gen_h",
-  srcs: [
-    "CHANGELOG",
-  ],
-  cmd: "python3 $(location tools/write_version_header.py) --no_git --changelog=$(location CHANGELOG) --cpp_out=$(out)",
-  out: [
-    "perfetto_version.gen.h",
-  ],
-  tool_files: [
-    "tools/write_version_header.py",
-  ],
+    name: "perfetto_src_base_version_gen_h",
+    srcs: [
+        "CHANGELOG",
+    ],
+    cmd: "python3 $(location tools/write_version_header.py) --no_git --changelog=$(location CHANGELOG) --cpp_out=$(out)",
+    out: [
+        "perfetto_version.gen.h",
+    ],
+    tool_files: [
+        "tools/write_version_header.py",
+    ],
 }
 
 // GN: //src/ipc:client
 filegroup {
-  name: "perfetto_src_ipc_client",
-  srcs: [
-    "src/ipc/client_impl.cc",
-    "src/ipc/service_proxy.cc",
-  ],
+    name: "perfetto_src_ipc_client",
+    srcs: [
+        "src/ipc/client_impl.cc",
+        "src/ipc/service_proxy.cc",
+    ],
 }
 
 // GN: //src/ipc:common
 filegroup {
-  name: "perfetto_src_ipc_common",
-  srcs: [
-    "src/ipc/buffered_frame_deserializer.cc",
-    "src/ipc/deferred.cc",
-    "src/ipc/virtual_destructors.cc",
-  ],
+    name: "perfetto_src_ipc_common",
+    srcs: [
+        "src/ipc/buffered_frame_deserializer.cc",
+        "src/ipc/deferred.cc",
+        "src/ipc/virtual_destructors.cc",
+    ],
 }
 
 // GN: //src/ipc:host
 filegroup {
-  name: "perfetto_src_ipc_host",
-  srcs: [
-    "src/ipc/host_impl.cc",
-  ],
+    name: "perfetto_src_ipc_host",
+    srcs: [
+        "src/ipc/host_impl.cc",
+    ],
 }
 
 // GN: //src/ipc:perfetto_ipc
 filegroup {
-  name: "perfetto_src_ipc_perfetto_ipc",
+    name: "perfetto_src_ipc_perfetto_ipc",
 }
 
 // GN: //src/ipc:test_messages_cpp
 genrule {
-  name: "perfetto_src_ipc_test_messages_cpp_gen",
-  srcs: [
-    "src/ipc/test/client_unittest_messages.proto",
-    "src/ipc/test/deferred_unittest_messages.proto",
-    "src/ipc/test/greeter_service.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/src/ipc/test/client_unittest_messages.gen.cc",
-    "external/perfetto/src/ipc/test/deferred_unittest_messages.gen.cc",
-    "external/perfetto/src/ipc/test/greeter_service.gen.cc",
-  ],
+    name: "perfetto_src_ipc_test_messages_cpp_gen",
+    srcs: [
+        "src/ipc/test/client_unittest_messages.proto",
+        "src/ipc/test/deferred_unittest_messages.proto",
+        "src/ipc/test/greeter_service.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/src/ipc/test/client_unittest_messages.gen.cc",
+        "external/perfetto/src/ipc/test/deferred_unittest_messages.gen.cc",
+        "external/perfetto/src/ipc/test/greeter_service.gen.cc",
+    ],
 }
 
 // GN: //src/ipc:test_messages_cpp
 genrule {
-  name: "perfetto_src_ipc_test_messages_cpp_gen_headers",
-  srcs: [
-    "src/ipc/test/client_unittest_messages.proto",
-    "src/ipc/test/deferred_unittest_messages.proto",
-    "src/ipc/test/greeter_service.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/src/ipc/test/client_unittest_messages.gen.h",
-    "external/perfetto/src/ipc/test/deferred_unittest_messages.gen.h",
-    "external/perfetto/src/ipc/test/greeter_service.gen.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_src_ipc_test_messages_cpp_gen_headers",
+    srcs: [
+        "src/ipc/test/client_unittest_messages.proto",
+        "src/ipc/test/deferred_unittest_messages.proto",
+        "src/ipc/test/greeter_service.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/src/ipc/test/client_unittest_messages.gen.h",
+        "external/perfetto/src/ipc/test/deferred_unittest_messages.gen.h",
+        "external/perfetto/src/ipc/test/greeter_service.gen.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //src/ipc:test_messages_ipc
 genrule {
-  name: "perfetto_src_ipc_test_messages_ipc_gen",
-  srcs: [
-    "src/ipc/test/client_unittest_messages.proto",
-    "src/ipc/test/deferred_unittest_messages.proto",
-    "src/ipc/test/greeter_service.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "ipc_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location ipc_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/src/ipc/test/client_unittest_messages.ipc.cc",
-    "external/perfetto/src/ipc/test/deferred_unittest_messages.ipc.cc",
-    "external/perfetto/src/ipc/test/greeter_service.ipc.cc",
-  ],
+    name: "perfetto_src_ipc_test_messages_ipc_gen",
+    srcs: [
+        "src/ipc/test/client_unittest_messages.proto",
+        "src/ipc/test/deferred_unittest_messages.proto",
+        "src/ipc/test/greeter_service.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "ipc_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location ipc_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/src/ipc/test/client_unittest_messages.ipc.cc",
+        "external/perfetto/src/ipc/test/deferred_unittest_messages.ipc.cc",
+        "external/perfetto/src/ipc/test/greeter_service.ipc.cc",
+    ],
 }
 
 // GN: //src/ipc:test_messages_ipc
 genrule {
-  name: "perfetto_src_ipc_test_messages_ipc_gen_headers",
-  srcs: [
-    "src/ipc/test/client_unittest_messages.proto",
-    "src/ipc/test/deferred_unittest_messages.proto",
-    "src/ipc/test/greeter_service.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "ipc_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location ipc_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/src/ipc/test/client_unittest_messages.ipc.h",
-    "external/perfetto/src/ipc/test/deferred_unittest_messages.ipc.h",
-    "external/perfetto/src/ipc/test/greeter_service.ipc.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_src_ipc_test_messages_ipc_gen_headers",
+    srcs: [
+        "src/ipc/test/client_unittest_messages.proto",
+        "src/ipc/test/deferred_unittest_messages.proto",
+        "src/ipc/test/greeter_service.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "ipc_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location ipc_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/src/ipc/test/client_unittest_messages.ipc.h",
+        "external/perfetto/src/ipc/test/deferred_unittest_messages.ipc.h",
+        "external/perfetto/src/ipc/test/greeter_service.ipc.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //src/ipc:unittests
 filegroup {
-  name: "perfetto_src_ipc_unittests",
-  srcs: [
-    "src/ipc/buffered_frame_deserializer_unittest.cc",
-    "src/ipc/client_impl_unittest.cc",
-    "src/ipc/deferred_unittest.cc",
-    "src/ipc/host_impl_unittest.cc",
-    "src/ipc/test/ipc_integrationtest.cc",
-  ],
+    name: "perfetto_src_ipc_unittests",
+    srcs: [
+        "src/ipc/buffered_frame_deserializer_unittest.cc",
+        "src/ipc/client_impl_unittest.cc",
+        "src/ipc/deferred_unittest.cc",
+        "src/ipc/host_impl_unittest.cc",
+        "src/ipc/test/ipc_integrationtest.cc",
+    ],
 }
 
 // GN: //src/kallsyms:kallsyms
 filegroup {
-  name: "perfetto_src_kallsyms_kallsyms",
-  srcs: [
-    "src/kallsyms/kernel_symbol_map.cc",
-    "src/kallsyms/lazy_kernel_symbolizer.cc",
-  ],
+    name: "perfetto_src_kallsyms_kallsyms",
+    srcs: [
+        "src/kallsyms/kernel_symbol_map.cc",
+        "src/kallsyms/lazy_kernel_symbolizer.cc",
+    ],
 }
 
 // GN: //src/kallsyms:unittests
 filegroup {
-  name: "perfetto_src_kallsyms_unittests",
-  srcs: [
-    "src/kallsyms/kernel_symbol_map_unittest.cc",
-    "src/kallsyms/lazy_kernel_symbolizer_unittest.cc",
-  ],
+    name: "perfetto_src_kallsyms_unittests",
+    srcs: [
+        "src/kallsyms/kernel_symbol_map_unittest.cc",
+        "src/kallsyms/lazy_kernel_symbolizer_unittest.cc",
+    ],
 }
 
 // GN: //src/perfetto_cmd:gen_cc_config_descriptor
 genrule {
-  name: "perfetto_src_perfetto_cmd_gen_cc_config_descriptor",
-  srcs: [
-    ":perfetto_protos_perfetto_config_perfetto_config_descriptor",
-  ],
-  cmd: "$(location tools/gen_cc_proto_descriptor.py) --gen_dir=$(genDir) --cpp_out=$(out) $(in)",
-  out: [
-    "src/perfetto_cmd/perfetto_config.descriptor.h",
-  ],
-  tool_files: [
-    "tools/gen_cc_proto_descriptor.py",
-  ],
+    name: "perfetto_src_perfetto_cmd_gen_cc_config_descriptor",
+    srcs: [
+        ":perfetto_protos_perfetto_config_perfetto_config_descriptor",
+    ],
+    cmd: "$(location tools/gen_cc_proto_descriptor.py) --gen_dir=$(genDir) --cpp_out=$(out) $(in)",
+    out: [
+        "src/perfetto_cmd/perfetto_config.descriptor.h",
+    ],
+    tool_files: [
+        "tools/gen_cc_proto_descriptor.py",
+    ],
 }
 
 // GN: //src/perfetto_cmd:perfetto_cmd
 filegroup {
-  name: "perfetto_src_perfetto_cmd_perfetto_cmd",
-  srcs: [
-    "src/perfetto_cmd/config.cc",
-    "src/perfetto_cmd/packet_writer.cc",
-    "src/perfetto_cmd/pbtxt_to_pb.cc",
-    "src/perfetto_cmd/perfetto_cmd.cc",
-    "src/perfetto_cmd/perfetto_cmd_android.cc",
-    "src/perfetto_cmd/rate_limiter.cc",
-  ],
+    name: "perfetto_src_perfetto_cmd_perfetto_cmd",
+    srcs: [
+        "src/perfetto_cmd/config.cc",
+        "src/perfetto_cmd/packet_writer.cc",
+        "src/perfetto_cmd/pbtxt_to_pb.cc",
+        "src/perfetto_cmd/perfetto_cmd.cc",
+        "src/perfetto_cmd/perfetto_cmd_android.cc",
+        "src/perfetto_cmd/rate_limiter.cc",
+    ],
 }
 
 // GN: //src/perfetto_cmd:protos
 genrule {
-  name: "perfetto_src_perfetto_cmd_protos_gen",
-  srcs: [
-    "src/perfetto_cmd/perfetto_cmd_state.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/src/perfetto_cmd/perfetto_cmd_state.gen.cc",
-  ],
+    name: "perfetto_src_perfetto_cmd_protos_gen",
+    srcs: [
+        "src/perfetto_cmd/perfetto_cmd_state.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/src/perfetto_cmd/perfetto_cmd_state.gen.cc",
+    ],
 }
 
 // GN: //src/perfetto_cmd:protos
 genrule {
-  name: "perfetto_src_perfetto_cmd_protos_gen_headers",
-  srcs: [
-    "src/perfetto_cmd/perfetto_cmd_state.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/src/perfetto_cmd/perfetto_cmd_state.gen.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_src_perfetto_cmd_protos_gen_headers",
+    srcs: [
+        "src/perfetto_cmd/perfetto_cmd_state.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/src/perfetto_cmd/perfetto_cmd_state.gen.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //src/perfetto_cmd:trigger_perfetto_cmd
 filegroup {
-  name: "perfetto_src_perfetto_cmd_trigger_perfetto_cmd",
-  srcs: [
-    "src/perfetto_cmd/trigger_perfetto.cc",
-  ],
+    name: "perfetto_src_perfetto_cmd_trigger_perfetto_cmd",
+    srcs: [
+        "src/perfetto_cmd/trigger_perfetto.cc",
+    ],
 }
 
 // GN: //src/perfetto_cmd:trigger_producer
 filegroup {
-  name: "perfetto_src_perfetto_cmd_trigger_producer",
-  srcs: [
-    "src/perfetto_cmd/trigger_producer.cc",
-  ],
+    name: "perfetto_src_perfetto_cmd_trigger_producer",
+    srcs: [
+        "src/perfetto_cmd/trigger_producer.cc",
+    ],
 }
 
 // GN: //src/perfetto_cmd:unittests
 filegroup {
-  name: "perfetto_src_perfetto_cmd_unittests",
-  srcs: [
-    "src/perfetto_cmd/config_unittest.cc",
-    "src/perfetto_cmd/packet_writer_unittest.cc",
-    "src/perfetto_cmd/pbtxt_to_pb_unittest.cc",
-    "src/perfetto_cmd/rate_limiter_unittest.cc",
-  ],
+    name: "perfetto_src_perfetto_cmd_unittests",
+    srcs: [
+        "src/perfetto_cmd/config_unittest.cc",
+        "src/perfetto_cmd/packet_writer_unittest.cc",
+        "src/perfetto_cmd/pbtxt_to_pb_unittest.cc",
+        "src/perfetto_cmd/rate_limiter_unittest.cc",
+    ],
 }
 
 // GN: //src/profiling/common:callstack_trie
 filegroup {
-  name: "perfetto_src_profiling_common_callstack_trie",
-  srcs: [
-    "src/profiling/common/callstack_trie.cc",
-  ],
+    name: "perfetto_src_profiling_common_callstack_trie",
+    srcs: [
+        "src/profiling/common/callstack_trie.cc",
+    ],
 }
 
 // GN: //src/profiling/common:interner
 filegroup {
-  name: "perfetto_src_profiling_common_interner",
+    name: "perfetto_src_profiling_common_interner",
 }
 
 // GN: //src/profiling/common:interning_output
 filegroup {
-  name: "perfetto_src_profiling_common_interning_output",
-  srcs: [
-    "src/profiling/common/interning_output.cc",
-  ],
+    name: "perfetto_src_profiling_common_interning_output",
+    srcs: [
+        "src/profiling/common/interning_output.cc",
+    ],
 }
 
 // GN: //src/profiling/common:proc_utils
 filegroup {
-  name: "perfetto_src_profiling_common_proc_utils",
-  srcs: [
-    "src/profiling/common/proc_utils.cc",
-  ],
+    name: "perfetto_src_profiling_common_proc_utils",
+    srcs: [
+        "src/profiling/common/proc_utils.cc",
+    ],
 }
 
 // GN: //src/profiling/common:producer_support
 filegroup {
-  name: "perfetto_src_profiling_common_producer_support",
-  srcs: [
-    "src/profiling/common/producer_support.cc",
-  ],
+    name: "perfetto_src_profiling_common_producer_support",
+    srcs: [
+        "src/profiling/common/producer_support.cc",
+    ],
 }
 
 // GN: //src/profiling/common:profiler_guardrails
 filegroup {
-  name: "perfetto_src_profiling_common_profiler_guardrails",
-  srcs: [
-    "src/profiling/common/profiler_guardrails.cc",
-  ],
+    name: "perfetto_src_profiling_common_profiler_guardrails",
+    srcs: [
+        "src/profiling/common/profiler_guardrails.cc",
+    ],
 }
 
 // GN: //src/profiling/common:unittests
 filegroup {
-  name: "perfetto_src_profiling_common_unittests",
-  srcs: [
-    "src/profiling/common/interner_unittest.cc",
-    "src/profiling/common/proc_utils_unittest.cc",
-    "src/profiling/common/producer_support_unittest.cc",
-    "src/profiling/common/profiler_guardrails_unittest.cc",
-  ],
+    name: "perfetto_src_profiling_common_unittests",
+    srcs: [
+        "src/profiling/common/interner_unittest.cc",
+        "src/profiling/common/proc_utils_unittest.cc",
+        "src/profiling/common/producer_support_unittest.cc",
+        "src/profiling/common/profiler_guardrails_unittest.cc",
+    ],
 }
 
 // GN: //src/profiling/common:unwind_support
 filegroup {
-  name: "perfetto_src_profiling_common_unwind_support",
-  srcs: [
-    "src/profiling/common/unwind_support.cc",
-  ],
+    name: "perfetto_src_profiling_common_unwind_support",
+    srcs: [
+        "src/profiling/common/unwind_support.cc",
+    ],
 }
 
 // GN: //src/profiling:deobfuscator
 filegroup {
-  name: "perfetto_src_profiling_deobfuscator",
-  srcs: [
-    "src/profiling/deobfuscator.cc",
-  ],
+    name: "perfetto_src_profiling_deobfuscator",
+    srcs: [
+        "src/profiling/deobfuscator.cc",
+    ],
 }
 
 // GN: //src/profiling/memory:bionic_libc_platform_headers_on_android
 filegroup {
-  name: "perfetto_src_profiling_memory_bionic_libc_platform_headers_on_android",
+    name: "perfetto_src_profiling_memory_bionic_libc_platform_headers_on_android",
 }
 
 // GN: //src/profiling/memory:client
 filegroup {
-  name: "perfetto_src_profiling_memory_client",
-  srcs: [
-    "src/profiling/memory/client.cc",
-    "src/profiling/memory/sampler.cc",
-  ],
+    name: "perfetto_src_profiling_memory_client",
+    srcs: [
+        "src/profiling/memory/client.cc",
+        "src/profiling/memory/sampler.cc",
+    ],
 }
 
 // GN: //src/profiling/memory:client_api
 filegroup {
-  name: "perfetto_src_profiling_memory_client_api",
-  srcs: [
-    "src/profiling/memory/client_api.cc",
-  ],
+    name: "perfetto_src_profiling_memory_client_api",
+    srcs: [
+        "src/profiling/memory/client_api.cc",
+    ],
 }
 
 // GN: //src/profiling/memory:client_api_standalone
 filegroup {
-  name: "perfetto_src_profiling_memory_client_api_standalone",
-  srcs: [
-    "src/profiling/memory/client_api_factory_standalone.cc",
-  ],
+    name: "perfetto_src_profiling_memory_client_api_standalone",
+    srcs: [
+        "src/profiling/memory/client_api_factory_standalone.cc",
+    ],
 }
 
 // GN: //src/profiling/memory:daemon
 filegroup {
-  name: "perfetto_src_profiling_memory_daemon",
-  srcs: [
-    "src/profiling/memory/bookkeeping.cc",
-    "src/profiling/memory/bookkeeping_dump.cc",
-    "src/profiling/memory/heapprofd_producer.cc",
-    "src/profiling/memory/java_hprof_producer.cc",
-    "src/profiling/memory/log_histogram.cc",
-    "src/profiling/memory/system_property.cc",
-    "src/profiling/memory/unwinding.cc",
-  ],
+    name: "perfetto_src_profiling_memory_daemon",
+    srcs: [
+        "src/profiling/memory/bookkeeping.cc",
+        "src/profiling/memory/bookkeeping_dump.cc",
+        "src/profiling/memory/heapprofd_producer.cc",
+        "src/profiling/memory/java_hprof_producer.cc",
+        "src/profiling/memory/log_histogram.cc",
+        "src/profiling/memory/system_property.cc",
+        "src/profiling/memory/unwinding.cc",
+    ],
 }
 
 // GN: //src/profiling/memory:end_to_end_tests
 filegroup {
-  name: "perfetto_src_profiling_memory_end_to_end_tests",
-  srcs: [
-    "src/profiling/memory/heapprofd_end_to_end_test.cc",
-  ],
+    name: "perfetto_src_profiling_memory_end_to_end_tests",
+    srcs: [
+        "src/profiling/memory/heapprofd_end_to_end_test.cc",
+    ],
 }
 
 // GN: //src/profiling/memory:heapprofd_main
 filegroup {
-  name: "perfetto_src_profiling_memory_heapprofd_main",
-  srcs: [
-    "src/profiling/memory/heapprofd.cc",
-  ],
+    name: "perfetto_src_profiling_memory_heapprofd_main",
+    srcs: [
+        "src/profiling/memory/heapprofd.cc",
+    ],
 }
 
 // GN: //src/profiling/memory:malloc_interceptor_bionic_hooks
 filegroup {
-  name: "perfetto_src_profiling_memory_malloc_interceptor_bionic_hooks",
-  srcs: [
-    "src/profiling/memory/malloc_interceptor_bionic_hooks.cc",
-  ],
+    name: "perfetto_src_profiling_memory_malloc_interceptor_bionic_hooks",
+    srcs: [
+        "src/profiling/memory/malloc_interceptor_bionic_hooks.cc",
+    ],
 }
 
 // GN: //src/profiling/memory:ring_buffer
 filegroup {
-  name: "perfetto_src_profiling_memory_ring_buffer",
-  srcs: [
-    "src/profiling/memory/shared_ring_buffer.cc",
-  ],
+    name: "perfetto_src_profiling_memory_ring_buffer",
+    srcs: [
+        "src/profiling/memory/shared_ring_buffer.cc",
+    ],
 }
 
 // GN: //src/profiling/memory:ring_buffer_unittests
 filegroup {
-  name: "perfetto_src_profiling_memory_ring_buffer_unittests",
-  srcs: [
-    "src/profiling/memory/shared_ring_buffer_unittest.cc",
-  ],
+    name: "perfetto_src_profiling_memory_ring_buffer_unittests",
+    srcs: [
+        "src/profiling/memory/shared_ring_buffer_unittest.cc",
+    ],
 }
 
 // GN: //src/profiling/memory:scoped_spinlock
 filegroup {
-  name: "perfetto_src_profiling_memory_scoped_spinlock",
-  srcs: [
-    "src/profiling/memory/scoped_spinlock.cc",
-  ],
+    name: "perfetto_src_profiling_memory_scoped_spinlock",
+    srcs: [
+        "src/profiling/memory/scoped_spinlock.cc",
+    ],
 }
 
 // GN: //src/profiling/memory:unittests
 filegroup {
-  name: "perfetto_src_profiling_memory_unittests",
-  srcs: [
-    "src/profiling/memory/bookkeeping_unittest.cc",
-    "src/profiling/memory/client_unittest.cc",
-    "src/profiling/memory/heapprofd_producer_unittest.cc",
-    "src/profiling/memory/parse_smaps_unittest.cc",
-    "src/profiling/memory/sampler_unittest.cc",
-    "src/profiling/memory/system_property_unittest.cc",
-    "src/profiling/memory/unwinding_unittest.cc",
-    "src/profiling/memory/wire_protocol_unittest.cc",
-  ],
+    name: "perfetto_src_profiling_memory_unittests",
+    srcs: [
+        "src/profiling/memory/bookkeeping_unittest.cc",
+        "src/profiling/memory/client_unittest.cc",
+        "src/profiling/memory/heapprofd_producer_unittest.cc",
+        "src/profiling/memory/parse_smaps_unittest.cc",
+        "src/profiling/memory/sampler_unittest.cc",
+        "src/profiling/memory/system_property_unittest.cc",
+        "src/profiling/memory/unwinding_unittest.cc",
+        "src/profiling/memory/wire_protocol_unittest.cc",
+    ],
 }
 
 // GN: //src/profiling/memory:wire_protocol
 filegroup {
-  name: "perfetto_src_profiling_memory_wire_protocol",
-  srcs: [
-    "src/profiling/memory/wire_protocol.cc",
-  ],
+    name: "perfetto_src_profiling_memory_wire_protocol",
+    srcs: [
+        "src/profiling/memory/wire_protocol.cc",
+    ],
 }
 
 // GN: //src/profiling/memory:wrap_allocators
 filegroup {
-  name: "perfetto_src_profiling_memory_wrap_allocators",
-  srcs: [
-    "src/profiling/memory/wrap_allocators.cc",
-  ],
+    name: "perfetto_src_profiling_memory_wrap_allocators",
+    srcs: [
+        "src/profiling/memory/wrap_allocators.cc",
+    ],
 }
 
 // GN: //src/profiling/perf:common_types
 filegroup {
-  name: "perfetto_src_profiling_perf_common_types",
+    name: "perfetto_src_profiling_perf_common_types",
 }
 
 // GN: //src/profiling/perf:proc_descriptors
 filegroup {
-  name: "perfetto_src_profiling_perf_proc_descriptors",
-  srcs: [
-    "src/profiling/perf/proc_descriptors.cc",
-  ],
+    name: "perfetto_src_profiling_perf_proc_descriptors",
+    srcs: [
+        "src/profiling/perf/proc_descriptors.cc",
+    ],
 }
 
 // GN: //src/profiling/perf:producer
 filegroup {
-  name: "perfetto_src_profiling_perf_producer",
-  srcs: [
-    "src/profiling/perf/event_config.cc",
-    "src/profiling/perf/event_reader.cc",
-    "src/profiling/perf/perf_producer.cc",
-  ],
+    name: "perfetto_src_profiling_perf_producer",
+    srcs: [
+        "src/profiling/perf/event_config.cc",
+        "src/profiling/perf/event_reader.cc",
+        "src/profiling/perf/perf_producer.cc",
+    ],
 }
 
 // GN: //src/profiling/perf:producer_unittests
 filegroup {
-  name: "perfetto_src_profiling_perf_producer_unittests",
-  srcs: [
-    "src/profiling/perf/event_config_unittest.cc",
-    "src/profiling/perf/unwind_queue_unittest.cc",
-  ],
+    name: "perfetto_src_profiling_perf_producer_unittests",
+    srcs: [
+        "src/profiling/perf/event_config_unittest.cc",
+        "src/profiling/perf/unwind_queue_unittest.cc",
+    ],
 }
 
 // GN: //src/profiling/perf:regs_parsing
 filegroup {
-  name: "perfetto_src_profiling_perf_regs_parsing",
-  srcs: [
-    "src/profiling/perf/regs_parsing.cc",
-  ],
+    name: "perfetto_src_profiling_perf_regs_parsing",
+    srcs: [
+        "src/profiling/perf/regs_parsing.cc",
+    ],
 }
 
 // GN: //src/profiling/perf:traced_perf_main
 filegroup {
-  name: "perfetto_src_profiling_perf_traced_perf_main",
-  srcs: [
-    "src/profiling/perf/traced_perf.cc",
-  ],
+    name: "perfetto_src_profiling_perf_traced_perf_main",
+    srcs: [
+        "src/profiling/perf/traced_perf.cc",
+    ],
 }
 
 // GN: //src/profiling/perf:unwinding
 filegroup {
-  name: "perfetto_src_profiling_perf_unwinding",
-  srcs: [
-    "src/profiling/perf/unwinding.cc",
-  ],
+    name: "perfetto_src_profiling_perf_unwinding",
+    srcs: [
+        "src/profiling/perf/unwinding.cc",
+    ],
 }
 
 // GN: //src/profiling/symbolizer:symbolize_database
 filegroup {
-  name: "perfetto_src_profiling_symbolizer_symbolize_database",
-  srcs: [
-    "src/profiling/symbolizer/symbolize_database.cc",
-  ],
+    name: "perfetto_src_profiling_symbolizer_symbolize_database",
+    srcs: [
+        "src/profiling/symbolizer/symbolize_database.cc",
+    ],
 }
 
 // GN: //src/profiling/symbolizer:symbolizer
 filegroup {
-  name: "perfetto_src_profiling_symbolizer_symbolizer",
-  srcs: [
-    "src/profiling/symbolizer/breakpad_parser.cc",
-    "src/profiling/symbolizer/breakpad_symbolizer.cc",
-    "src/profiling/symbolizer/filesystem_posix.cc",
-    "src/profiling/symbolizer/filesystem_windows.cc",
-    "src/profiling/symbolizer/local_symbolizer.cc",
-    "src/profiling/symbolizer/scoped_read_mmap_posix.cc",
-    "src/profiling/symbolizer/scoped_read_mmap_windows.cc",
-    "src/profiling/symbolizer/subprocess_posix.cc",
-    "src/profiling/symbolizer/subprocess_windows.cc",
-    "src/profiling/symbolizer/symbolizer.cc",
-  ],
+    name: "perfetto_src_profiling_symbolizer_symbolizer",
+    srcs: [
+        "src/profiling/symbolizer/breakpad_parser.cc",
+        "src/profiling/symbolizer/breakpad_symbolizer.cc",
+        "src/profiling/symbolizer/filesystem_posix.cc",
+        "src/profiling/symbolizer/filesystem_windows.cc",
+        "src/profiling/symbolizer/local_symbolizer.cc",
+        "src/profiling/symbolizer/scoped_read_mmap_posix.cc",
+        "src/profiling/symbolizer/scoped_read_mmap_windows.cc",
+        "src/profiling/symbolizer/subprocess_posix.cc",
+        "src/profiling/symbolizer/subprocess_windows.cc",
+        "src/profiling/symbolizer/symbolizer.cc",
+    ],
 }
 
 // GN: //src/profiling/symbolizer:unittests
 filegroup {
-  name: "perfetto_src_profiling_symbolizer_unittests",
-  srcs: [
-    "src/profiling/symbolizer/breakpad_parser_unittest.cc",
-    "src/profiling/symbolizer/breakpad_symbolizer_unittest.cc",
-    "src/profiling/symbolizer/local_symbolizer_unittest.cc",
-  ],
+    name: "perfetto_src_profiling_symbolizer_unittests",
+    srcs: [
+        "src/profiling/symbolizer/breakpad_parser_unittest.cc",
+        "src/profiling/symbolizer/breakpad_symbolizer_unittest.cc",
+        "src/profiling/symbolizer/local_symbolizer_unittest.cc",
+    ],
 }
 
 // GN: //src/profiling:unittests
 filegroup {
-  name: "perfetto_src_profiling_unittests",
-  srcs: [
-    "src/profiling/deobfuscator_unittest.cc",
-  ],
+    name: "perfetto_src_profiling_unittests",
+    srcs: [
+        "src/profiling/deobfuscator_unittest.cc",
+    ],
 }
 
 // GN: //src/protozero/filtering:bytecode_common
 filegroup {
-  name: "perfetto_src_protozero_filtering_bytecode_common",
+    name: "perfetto_src_protozero_filtering_bytecode_common",
 }
 
 // GN: //src/protozero/filtering:bytecode_generator
 filegroup {
-  name: "perfetto_src_protozero_filtering_bytecode_generator",
-  srcs: [
-    "src/protozero/filtering/filter_bytecode_generator.cc",
-  ],
+    name: "perfetto_src_protozero_filtering_bytecode_generator",
+    srcs: [
+        "src/protozero/filtering/filter_bytecode_generator.cc",
+    ],
 }
 
 // GN: //src/protozero/filtering:bytecode_parser
 filegroup {
-  name: "perfetto_src_protozero_filtering_bytecode_parser",
-  srcs: [
-    "src/protozero/filtering/filter_bytecode_parser.cc",
-  ],
+    name: "perfetto_src_protozero_filtering_bytecode_parser",
+    srcs: [
+        "src/protozero/filtering/filter_bytecode_parser.cc",
+    ],
 }
 
 // GN: //src/protozero/filtering:filter_util
 filegroup {
-  name: "perfetto_src_protozero_filtering_filter_util",
-  srcs: [
-    "src/protozero/filtering/filter_util.cc",
-  ],
+    name: "perfetto_src_protozero_filtering_filter_util",
+    srcs: [
+        "src/protozero/filtering/filter_util.cc",
+    ],
 }
 
 // GN: //src/protozero/filtering:message_filter
 filegroup {
-  name: "perfetto_src_protozero_filtering_message_filter",
-  srcs: [
-    "src/protozero/filtering/message_filter.cc",
-  ],
+    name: "perfetto_src_protozero_filtering_message_filter",
+    srcs: [
+        "src/protozero/filtering/message_filter.cc",
+    ],
 }
 
 // GN: //src/protozero/filtering:unittests
 filegroup {
-  name: "perfetto_src_protozero_filtering_unittests",
-  srcs: [
-    "src/protozero/filtering/filter_bytecode_generator_unittest.cc",
-    "src/protozero/filtering/filter_bytecode_parser_unittest.cc",
-    "src/protozero/filtering/filter_util_unittest.cc",
-    "src/protozero/filtering/message_filter_unittest.cc",
-    "src/protozero/filtering/message_tokenizer_unittest.cc",
-  ],
+    name: "perfetto_src_protozero_filtering_unittests",
+    srcs: [
+        "src/protozero/filtering/filter_bytecode_generator_unittest.cc",
+        "src/protozero/filtering/filter_bytecode_parser_unittest.cc",
+        "src/protozero/filtering/filter_util_unittest.cc",
+        "src/protozero/filtering/message_filter_unittest.cc",
+        "src/protozero/filtering/message_tokenizer_unittest.cc",
+    ],
 }
 
 // GN: //src/protozero:proto_ring_buffer
 filegroup {
-  name: "perfetto_src_protozero_proto_ring_buffer",
-  srcs: [
-    "src/protozero/proto_ring_buffer.cc",
-  ],
+    name: "perfetto_src_protozero_proto_ring_buffer",
+    srcs: [
+        "src/protozero/proto_ring_buffer.cc",
+    ],
 }
 
 // GN: //src/protozero/protoc_plugin:cppgen_plugin
 cc_binary_host {
-  name: "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
-  srcs: [
-    ":perfetto_include_perfetto_base_base",
-    ":perfetto_include_perfetto_ext_base_base",
-    ":perfetto_src_base_base",
-    "src/protozero/protoc_plugin/cppgen_plugin.cc",
-  ],
-  static_libs: [
-    "libprotoc",
-  ],
-  generated_headers: [
-    "perfetto_src_base_version_gen_h",
-  ],
-  defaults: [
-    "perfetto_defaults",
-  ],
-  cflags: [
-    "-DGOOGLE_PROTOBUF_NO_RTTI",
-    "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
-  ],
+    name: "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+    srcs: [
+        ":perfetto_include_perfetto_base_base",
+        ":perfetto_include_perfetto_ext_base_base",
+        ":perfetto_src_base_base",
+        "src/protozero/protoc_plugin/cppgen_plugin.cc",
+    ],
+    static_libs: [
+        "libprotoc",
+    ],
+    generated_headers: [
+        "perfetto_src_base_version_gen_h",
+    ],
+    defaults: [
+        "perfetto_defaults",
+    ],
+    cflags: [
+        "-DGOOGLE_PROTOBUF_NO_RTTI",
+        "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
+    ],
 }
 
 // GN: //src/protozero:protozero
 filegroup {
-  name: "perfetto_src_protozero_protozero",
-  srcs: [
-    "src/protozero/field.cc",
-    "src/protozero/message.cc",
-    "src/protozero/message_arena.cc",
-    "src/protozero/message_handle.cc",
-    "src/protozero/packed_repeated_fields.cc",
-    "src/protozero/proto_decoder.cc",
-    "src/protozero/scattered_heap_buffer.cc",
-    "src/protozero/scattered_stream_null_delegate.cc",
-    "src/protozero/scattered_stream_writer.cc",
-    "src/protozero/static_buffer.cc",
-    "src/protozero/virtual_destructors.cc",
-  ],
+    name: "perfetto_src_protozero_protozero",
+    srcs: [
+        "src/protozero/field.cc",
+        "src/protozero/message.cc",
+        "src/protozero/message_arena.cc",
+        "src/protozero/message_handle.cc",
+        "src/protozero/packed_repeated_fields.cc",
+        "src/protozero/proto_decoder.cc",
+        "src/protozero/scattered_heap_buffer.cc",
+        "src/protozero/scattered_stream_null_delegate.cc",
+        "src/protozero/scattered_stream_writer.cc",
+        "src/protozero/static_buffer.cc",
+        "src/protozero/virtual_destructors.cc",
+    ],
 }
 
 // GN: //src/protozero:test_messages_descriptor
 genrule {
-  name: "perfetto_src_protozero_test_messages_descriptor",
-  srcs: [
-    "src/protozero/test/example_proto/extensions.proto",
-    "src/protozero/test/example_proto/library.proto",
-    "src/protozero/test/example_proto/library_internals/galaxies.proto",
-    "src/protozero/test/example_proto/test_messages.proto",
-    "src/protozero/test/example_proto/upper_import.proto",
-  ],
-  tools: [
-    "aprotoc",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --descriptor_set_out=$(out) $(in)",
-  out: [
-    "perfetto_src_protozero_test_messages_descriptor.bin",
-  ],
+    name: "perfetto_src_protozero_test_messages_descriptor",
+    srcs: [
+        "src/protozero/test/example_proto/extensions.proto",
+        "src/protozero/test/example_proto/library.proto",
+        "src/protozero/test/example_proto/library_internals/galaxies.proto",
+        "src/protozero/test/example_proto/test_messages.proto",
+        "src/protozero/test/example_proto/upper_import.proto",
+    ],
+    tools: [
+        "aprotoc",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --descriptor_set_out=$(out) $(in)",
+    out: [
+        "perfetto_src_protozero_test_messages_descriptor.bin",
+    ],
 }
 
 // GN: //src/protozero:testing_messages_cpp
 genrule {
-  name: "perfetto_src_protozero_testing_messages_cpp_gen",
-  srcs: [
-    "src/protozero/test/example_proto/extensions.proto",
-    "src/protozero/test/example_proto/library.proto",
-    "src/protozero/test/example_proto/library_internals/galaxies.proto",
-    "src/protozero/test/example_proto/test_messages.proto",
-    "src/protozero/test/example_proto/upper_import.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/src/protozero/test/example_proto/extensions.gen.cc",
-    "external/perfetto/src/protozero/test/example_proto/library.gen.cc",
-    "external/perfetto/src/protozero/test/example_proto/library_internals/galaxies.gen.cc",
-    "external/perfetto/src/protozero/test/example_proto/test_messages.gen.cc",
-    "external/perfetto/src/protozero/test/example_proto/upper_import.gen.cc",
-  ],
+    name: "perfetto_src_protozero_testing_messages_cpp_gen",
+    srcs: [
+        "src/protozero/test/example_proto/extensions.proto",
+        "src/protozero/test/example_proto/library.proto",
+        "src/protozero/test/example_proto/library_internals/galaxies.proto",
+        "src/protozero/test/example_proto/test_messages.proto",
+        "src/protozero/test/example_proto/upper_import.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/src/protozero/test/example_proto/extensions.gen.cc",
+        "external/perfetto/src/protozero/test/example_proto/library.gen.cc",
+        "external/perfetto/src/protozero/test/example_proto/library_internals/galaxies.gen.cc",
+        "external/perfetto/src/protozero/test/example_proto/test_messages.gen.cc",
+        "external/perfetto/src/protozero/test/example_proto/upper_import.gen.cc",
+    ],
 }
 
 // GN: //src/protozero:testing_messages_cpp
 genrule {
-  name: "perfetto_src_protozero_testing_messages_cpp_gen_headers",
-  srcs: [
-    "src/protozero/test/example_proto/extensions.proto",
-    "src/protozero/test/example_proto/library.proto",
-    "src/protozero/test/example_proto/library_internals/galaxies.proto",
-    "src/protozero/test/example_proto/test_messages.proto",
-    "src/protozero/test/example_proto/upper_import.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/src/protozero/test/example_proto/extensions.gen.h",
-    "external/perfetto/src/protozero/test/example_proto/library.gen.h",
-    "external/perfetto/src/protozero/test/example_proto/library_internals/galaxies.gen.h",
-    "external/perfetto/src/protozero/test/example_proto/test_messages.gen.h",
-    "external/perfetto/src/protozero/test/example_proto/upper_import.gen.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_src_protozero_testing_messages_cpp_gen_headers",
+    srcs: [
+        "src/protozero/test/example_proto/extensions.proto",
+        "src/protozero/test/example_proto/library.proto",
+        "src/protozero/test/example_proto/library_internals/galaxies.proto",
+        "src/protozero/test/example_proto/test_messages.proto",
+        "src/protozero/test/example_proto/upper_import.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/src/protozero/test/example_proto/extensions.gen.h",
+        "external/perfetto/src/protozero/test/example_proto/library.gen.h",
+        "external/perfetto/src/protozero/test/example_proto/library_internals/galaxies.gen.h",
+        "external/perfetto/src/protozero/test/example_proto/test_messages.gen.h",
+        "external/perfetto/src/protozero/test/example_proto/upper_import.gen.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //src/protozero:testing_messages_lite
 genrule {
-  name: "perfetto_src_protozero_testing_messages_lite_gen",
-  srcs: [
-    "src/protozero/test/example_proto/extensions.proto",
-    "src/protozero/test/example_proto/library.proto",
-    "src/protozero/test/example_proto/library_internals/galaxies.proto",
-    "src/protozero/test/example_proto/test_messages.proto",
-    "src/protozero/test/example_proto/upper_import.proto",
-  ],
-  tools: [
-    "aprotoc",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/src/protozero/test/example_proto/extensions.pb.cc",
-    "external/perfetto/src/protozero/test/example_proto/library.pb.cc",
-    "external/perfetto/src/protozero/test/example_proto/library_internals/galaxies.pb.cc",
-    "external/perfetto/src/protozero/test/example_proto/test_messages.pb.cc",
-    "external/perfetto/src/protozero/test/example_proto/upper_import.pb.cc",
-  ],
+    name: "perfetto_src_protozero_testing_messages_lite_gen",
+    srcs: [
+        "src/protozero/test/example_proto/extensions.proto",
+        "src/protozero/test/example_proto/library.proto",
+        "src/protozero/test/example_proto/library_internals/galaxies.proto",
+        "src/protozero/test/example_proto/test_messages.proto",
+        "src/protozero/test/example_proto/upper_import.proto",
+    ],
+    tools: [
+        "aprotoc",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/src/protozero/test/example_proto/extensions.pb.cc",
+        "external/perfetto/src/protozero/test/example_proto/library.pb.cc",
+        "external/perfetto/src/protozero/test/example_proto/library_internals/galaxies.pb.cc",
+        "external/perfetto/src/protozero/test/example_proto/test_messages.pb.cc",
+        "external/perfetto/src/protozero/test/example_proto/upper_import.pb.cc",
+    ],
 }
 
 // GN: //src/protozero:testing_messages_lite
 genrule {
-  name: "perfetto_src_protozero_testing_messages_lite_gen_headers",
-  srcs: [
-    "src/protozero/test/example_proto/extensions.proto",
-    "src/protozero/test/example_proto/library.proto",
-    "src/protozero/test/example_proto/library_internals/galaxies.proto",
-    "src/protozero/test/example_proto/test_messages.proto",
-    "src/protozero/test/example_proto/upper_import.proto",
-  ],
-  tools: [
-    "aprotoc",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/src/protozero/test/example_proto/extensions.pb.h",
-    "external/perfetto/src/protozero/test/example_proto/library.pb.h",
-    "external/perfetto/src/protozero/test/example_proto/library_internals/galaxies.pb.h",
-    "external/perfetto/src/protozero/test/example_proto/test_messages.pb.h",
-    "external/perfetto/src/protozero/test/example_proto/upper_import.pb.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_src_protozero_testing_messages_lite_gen_headers",
+    srcs: [
+        "src/protozero/test/example_proto/extensions.proto",
+        "src/protozero/test/example_proto/library.proto",
+        "src/protozero/test/example_proto/library_internals/galaxies.proto",
+        "src/protozero/test/example_proto/test_messages.proto",
+        "src/protozero/test/example_proto/upper_import.proto",
+    ],
+    tools: [
+        "aprotoc",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/src/protozero/test/example_proto/extensions.pb.h",
+        "external/perfetto/src/protozero/test/example_proto/library.pb.h",
+        "external/perfetto/src/protozero/test/example_proto/library_internals/galaxies.pb.h",
+        "external/perfetto/src/protozero/test/example_proto/test_messages.pb.h",
+        "external/perfetto/src/protozero/test/example_proto/upper_import.pb.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //src/protozero:testing_messages_zero
 genrule {
-  name: "perfetto_src_protozero_testing_messages_zero_gen",
-  srcs: [
-    "src/protozero/test/example_proto/extensions.proto",
-    "src/protozero/test/example_proto/library.proto",
-    "src/protozero/test/example_proto/library_internals/galaxies.proto",
-    "src/protozero/test/example_proto/test_messages.proto",
-    "src/protozero/test/example_proto/upper_import.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "protozero_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/src/protozero/test/example_proto/extensions.pbzero.cc",
-    "external/perfetto/src/protozero/test/example_proto/library.pbzero.cc",
-    "external/perfetto/src/protozero/test/example_proto/library_internals/galaxies.pbzero.cc",
-    "external/perfetto/src/protozero/test/example_proto/test_messages.pbzero.cc",
-    "external/perfetto/src/protozero/test/example_proto/upper_import.pbzero.cc",
-  ],
+    name: "perfetto_src_protozero_testing_messages_zero_gen",
+    srcs: [
+        "src/protozero/test/example_proto/extensions.proto",
+        "src/protozero/test/example_proto/library.proto",
+        "src/protozero/test/example_proto/library_internals/galaxies.proto",
+        "src/protozero/test/example_proto/test_messages.proto",
+        "src/protozero/test/example_proto/upper_import.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "protozero_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/src/protozero/test/example_proto/extensions.pbzero.cc",
+        "external/perfetto/src/protozero/test/example_proto/library.pbzero.cc",
+        "external/perfetto/src/protozero/test/example_proto/library_internals/galaxies.pbzero.cc",
+        "external/perfetto/src/protozero/test/example_proto/test_messages.pbzero.cc",
+        "external/perfetto/src/protozero/test/example_proto/upper_import.pbzero.cc",
+    ],
 }
 
 // GN: //src/protozero:testing_messages_zero
 genrule {
-  name: "perfetto_src_protozero_testing_messages_zero_gen_headers",
-  srcs: [
-    "src/protozero/test/example_proto/extensions.proto",
-    "src/protozero/test/example_proto/library.proto",
-    "src/protozero/test/example_proto/library_internals/galaxies.proto",
-    "src/protozero/test/example_proto/test_messages.proto",
-    "src/protozero/test/example_proto/upper_import.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "protozero_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/src/protozero/test/example_proto/extensions.pbzero.h",
-    "external/perfetto/src/protozero/test/example_proto/library.pbzero.h",
-    "external/perfetto/src/protozero/test/example_proto/library_internals/galaxies.pbzero.h",
-    "external/perfetto/src/protozero/test/example_proto/test_messages.pbzero.h",
-    "external/perfetto/src/protozero/test/example_proto/upper_import.pbzero.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_src_protozero_testing_messages_zero_gen_headers",
+    srcs: [
+        "src/protozero/test/example_proto/extensions.proto",
+        "src/protozero/test/example_proto/library.proto",
+        "src/protozero/test/example_proto/library_internals/galaxies.proto",
+        "src/protozero/test/example_proto/test_messages.proto",
+        "src/protozero/test/example_proto/upper_import.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "protozero_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/src/protozero/test/example_proto/extensions.pbzero.h",
+        "external/perfetto/src/protozero/test/example_proto/library.pbzero.h",
+        "external/perfetto/src/protozero/test/example_proto/library_internals/galaxies.pbzero.h",
+        "external/perfetto/src/protozero/test/example_proto/test_messages.pbzero.h",
+        "external/perfetto/src/protozero/test/example_proto/upper_import.pbzero.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //src/protozero:unittests
 filegroup {
-  name: "perfetto_src_protozero_unittests",
-  srcs: [
-    "src/protozero/copyable_ptr_unittest.cc",
-    "src/protozero/message_handle_unittest.cc",
-    "src/protozero/message_unittest.cc",
-    "src/protozero/proto_decoder_unittest.cc",
-    "src/protozero/proto_ring_buffer_unittest.cc",
-    "src/protozero/proto_utils_unittest.cc",
-    "src/protozero/scattered_stream_writer_unittest.cc",
-    "src/protozero/test/cppgen_conformance_unittest.cc",
-    "src/protozero/test/fake_scattered_buffer.cc",
-    "src/protozero/test/protozero_conformance_unittest.cc",
-  ],
+    name: "perfetto_src_protozero_unittests",
+    srcs: [
+        "src/protozero/copyable_ptr_unittest.cc",
+        "src/protozero/message_handle_unittest.cc",
+        "src/protozero/message_unittest.cc",
+        "src/protozero/proto_decoder_unittest.cc",
+        "src/protozero/proto_ring_buffer_unittest.cc",
+        "src/protozero/proto_utils_unittest.cc",
+        "src/protozero/scattered_stream_writer_unittest.cc",
+        "src/protozero/test/cppgen_conformance_unittest.cc",
+        "src/protozero/test/fake_scattered_buffer.cc",
+        "src/protozero/test/protozero_conformance_unittest.cc",
+    ],
 }
 
 // GN: //src/trace_processor/analysis:analysis
 filegroup {
-  name: "perfetto_src_trace_processor_analysis_analysis",
-  srcs: [
-    "src/trace_processor/analysis/describe_slice.cc",
-  ],
+    name: "perfetto_src_trace_processor_analysis_analysis",
+    srcs: [
+        "src/trace_processor/analysis/describe_slice.cc",
+    ],
 }
 
 // GN: //src/trace_processor/containers:containers
 filegroup {
-  name: "perfetto_src_trace_processor_containers_containers",
-  srcs: [
-    "src/trace_processor/containers/bit_vector.cc",
-    "src/trace_processor/containers/bit_vector_iterators.cc",
-    "src/trace_processor/containers/nullable_vector.cc",
-    "src/trace_processor/containers/row_map.cc",
-    "src/trace_processor/containers/string_pool.cc",
-  ],
+    name: "perfetto_src_trace_processor_containers_containers",
+    srcs: [
+        "src/trace_processor/containers/bit_vector.cc",
+        "src/trace_processor/containers/bit_vector_iterators.cc",
+        "src/trace_processor/containers/nullable_vector.cc",
+        "src/trace_processor/containers/row_map.cc",
+        "src/trace_processor/containers/string_pool.cc",
+    ],
 }
 
 // GN: //src/trace_processor/containers:unittests
 filegroup {
-  name: "perfetto_src_trace_processor_containers_unittests",
-  srcs: [
-    "src/trace_processor/containers/bit_vector_unittest.cc",
-    "src/trace_processor/containers/null_term_string_view_unittest.cc",
-    "src/trace_processor/containers/nullable_vector_unittest.cc",
-    "src/trace_processor/containers/row_map_unittest.cc",
-    "src/trace_processor/containers/string_pool_unittest.cc",
-  ],
+    name: "perfetto_src_trace_processor_containers_unittests",
+    srcs: [
+        "src/trace_processor/containers/bit_vector_unittest.cc",
+        "src/trace_processor/containers/null_term_string_view_unittest.cc",
+        "src/trace_processor/containers/nullable_vector_unittest.cc",
+        "src/trace_processor/containers/row_map_unittest.cc",
+        "src/trace_processor/containers/string_pool_unittest.cc",
+    ],
 }
 
 // GN: //src/trace_processor/db:db
 filegroup {
-  name: "perfetto_src_trace_processor_db_db",
-  srcs: [
-    "src/trace_processor/db/column.cc",
-    "src/trace_processor/db/table.cc",
-  ],
+    name: "perfetto_src_trace_processor_db_db",
+    srcs: [
+        "src/trace_processor/db/column.cc",
+        "src/trace_processor/db/table.cc",
+    ],
 }
 
 // GN: //src/trace_processor/db:unittests
 filegroup {
-  name: "perfetto_src_trace_processor_db_unittests",
-  srcs: [
-    "src/trace_processor/db/compare_unittest.cc",
-    "src/trace_processor/db/table_unittest.cc",
-  ],
+    name: "perfetto_src_trace_processor_db_unittests",
+    srcs: [
+        "src/trace_processor/db/compare_unittest.cc",
+        "src/trace_processor/db/table_unittest.cc",
+    ],
 }
 
 // GN: //src/trace_processor:export_json
 filegroup {
-  name: "perfetto_src_trace_processor_export_json",
-  srcs: [
-    "src/trace_processor/export_json.cc",
-  ],
+    name: "perfetto_src_trace_processor_export_json",
+    srcs: [
+        "src/trace_processor/export_json.cc",
+    ],
 }
 
 // GN: //src/trace_processor:ftrace_descriptors
 filegroup {
-  name: "perfetto_src_trace_processor_ftrace_descriptors",
-  srcs: [
-    "src/trace_processor/importers/ftrace/ftrace_descriptors.cc",
-  ],
+    name: "perfetto_src_trace_processor_ftrace_descriptors",
+    srcs: [
+        "src/trace_processor/importers/ftrace/ftrace_descriptors.cc",
+    ],
 }
 
 // GN: //src/trace_processor:gen_cc_test_messages_descriptor
 genrule {
-  name: "perfetto_src_trace_processor_gen_cc_test_messages_descriptor",
-  srcs: [
-    ":perfetto_src_protozero_test_messages_descriptor",
-  ],
-  cmd: "$(location tools/gen_cc_proto_descriptor.py) --gen_dir=$(genDir) --cpp_out=$(out) $(in)",
-  out: [
-    "src/trace_processor/test_messages.descriptor.h",
-  ],
-  tool_files: [
-    "tools/gen_cc_proto_descriptor.py",
-  ],
+    name: "perfetto_src_trace_processor_gen_cc_test_messages_descriptor",
+    srcs: [
+        ":perfetto_src_protozero_test_messages_descriptor",
+    ],
+    cmd: "$(location tools/gen_cc_proto_descriptor.py) --gen_dir=$(genDir) --cpp_out=$(out) $(in)",
+    out: [
+        "src/trace_processor/test_messages.descriptor.h",
+    ],
+    tool_files: [
+        "tools/gen_cc_proto_descriptor.py",
+    ],
 }
 
 // GN: //src/trace_processor/importers/common:common
 filegroup {
-  name: "perfetto_src_trace_processor_importers_common_common",
-  srcs: [
-    "src/trace_processor/importers/common/args_tracker.cc",
-    "src/trace_processor/importers/common/clock_tracker.cc",
-    "src/trace_processor/importers/common/event_tracker.cc",
-    "src/trace_processor/importers/common/flow_tracker.cc",
-    "src/trace_processor/importers/common/global_args_tracker.cc",
-    "src/trace_processor/importers/common/process_tracker.cc",
-    "src/trace_processor/importers/common/slice_tracker.cc",
-    "src/trace_processor/importers/common/system_info_tracker.cc",
-    "src/trace_processor/importers/common/track_tracker.cc",
-  ],
+    name: "perfetto_src_trace_processor_importers_common_common",
+    srcs: [
+        "src/trace_processor/importers/common/args_tracker.cc",
+        "src/trace_processor/importers/common/clock_tracker.cc",
+        "src/trace_processor/importers/common/event_tracker.cc",
+        "src/trace_processor/importers/common/flow_tracker.cc",
+        "src/trace_processor/importers/common/global_args_tracker.cc",
+        "src/trace_processor/importers/common/process_tracker.cc",
+        "src/trace_processor/importers/common/slice_tracker.cc",
+        "src/trace_processor/importers/common/system_info_tracker.cc",
+        "src/trace_processor/importers/common/track_tracker.cc",
+    ],
 }
 
 // GN: //src/trace_processor/importers/common:unittests
 filegroup {
-  name: "perfetto_src_trace_processor_importers_common_unittests",
-  srcs: [
-    "src/trace_processor/importers/common/clock_tracker_unittest.cc",
-    "src/trace_processor/importers/common/event_tracker_unittest.cc",
-    "src/trace_processor/importers/common/flow_tracker_unittest.cc",
-    "src/trace_processor/importers/common/process_tracker_unittest.cc",
-    "src/trace_processor/importers/common/slice_tracker_unittest.cc",
-  ],
+    name: "perfetto_src_trace_processor_importers_common_unittests",
+    srcs: [
+        "src/trace_processor/importers/common/clock_tracker_unittest.cc",
+        "src/trace_processor/importers/common/event_tracker_unittest.cc",
+        "src/trace_processor/importers/common/flow_tracker_unittest.cc",
+        "src/trace_processor/importers/common/process_tracker_unittest.cc",
+        "src/trace_processor/importers/common/slice_tracker_unittest.cc",
+    ],
 }
 
 // GN: //src/trace_processor/importers:gen_cc_chrome_track_event_descriptor
 genrule {
-  name: "perfetto_src_trace_processor_importers_gen_cc_chrome_track_event_descriptor",
-  srcs: [
-    ":perfetto_protos_third_party_chromium_chrome_track_event_descriptor",
-  ],
-  cmd: "$(location tools/gen_cc_proto_descriptor.py) --gen_dir=$(genDir) --cpp_out=$(out) $(in)",
-  out: [
-    "src/trace_processor/importers/chrome_track_event.descriptor.h",
-  ],
-  tool_files: [
-    "tools/gen_cc_proto_descriptor.py",
-  ],
+    name: "perfetto_src_trace_processor_importers_gen_cc_chrome_track_event_descriptor",
+    srcs: [
+        ":perfetto_protos_third_party_chromium_chrome_track_event_descriptor",
+    ],
+    cmd: "$(location tools/gen_cc_proto_descriptor.py) --gen_dir=$(genDir) --cpp_out=$(out) $(in)",
+    out: [
+        "src/trace_processor/importers/chrome_track_event.descriptor.h",
+    ],
+    tool_files: [
+        "tools/gen_cc_proto_descriptor.py",
+    ],
 }
 
 // GN: //src/trace_processor/importers:gen_cc_config_descriptor
 genrule {
-  name: "perfetto_src_trace_processor_importers_gen_cc_config_descriptor",
-  srcs: [
-    ":perfetto_protos_perfetto_config_descriptor",
-  ],
-  cmd: "$(location tools/gen_cc_proto_descriptor.py) --gen_dir=$(genDir) --cpp_out=$(out) $(in)",
-  out: [
-    "src/trace_processor/importers/config.descriptor.h",
-  ],
-  tool_files: [
-    "tools/gen_cc_proto_descriptor.py",
-  ],
+    name: "perfetto_src_trace_processor_importers_gen_cc_config_descriptor",
+    srcs: [
+        ":perfetto_protos_perfetto_config_descriptor",
+    ],
+    cmd: "$(location tools/gen_cc_proto_descriptor.py) --gen_dir=$(genDir) --cpp_out=$(out) $(in)",
+    out: [
+        "src/trace_processor/importers/config.descriptor.h",
+    ],
+    tool_files: [
+        "tools/gen_cc_proto_descriptor.py",
+    ],
 }
 
 // GN: //src/trace_processor/importers:gen_cc_track_event_descriptor
 genrule {
-  name: "perfetto_src_trace_processor_importers_gen_cc_track_event_descriptor",
-  srcs: [
-    ":perfetto_protos_perfetto_trace_track_event_track_event_descriptor",
-  ],
-  cmd: "$(location tools/gen_cc_proto_descriptor.py) --gen_dir=$(genDir) --cpp_out=$(out) $(in)",
-  out: [
-    "src/trace_processor/importers/track_event.descriptor.h",
-  ],
-  tool_files: [
-    "tools/gen_cc_proto_descriptor.py",
-  ],
+    name: "perfetto_src_trace_processor_importers_gen_cc_track_event_descriptor",
+    srcs: [
+        ":perfetto_protos_perfetto_trace_track_event_track_event_descriptor",
+    ],
+    cmd: "$(location tools/gen_cc_proto_descriptor.py) --gen_dir=$(genDir) --cpp_out=$(out) $(in)",
+    out: [
+        "src/trace_processor/importers/track_event.descriptor.h",
+    ],
+    tool_files: [
+        "tools/gen_cc_proto_descriptor.py",
+    ],
 }
 
 // GN: //src/trace_processor/importers/memory_tracker:graph_processor
 filegroup {
-  name: "perfetto_src_trace_processor_importers_memory_tracker_graph_processor",
-  srcs: [
-    "src/trace_processor/importers/memory_tracker/graph.cc",
-    "src/trace_processor/importers/memory_tracker/graph_processor.cc",
-    "src/trace_processor/importers/memory_tracker/memory_allocator_node_id.cc",
-    "src/trace_processor/importers/memory_tracker/raw_memory_graph_node.cc",
-    "src/trace_processor/importers/memory_tracker/raw_process_memory_node.cc",
-  ],
+    name: "perfetto_src_trace_processor_importers_memory_tracker_graph_processor",
+    srcs: [
+        "src/trace_processor/importers/memory_tracker/graph.cc",
+        "src/trace_processor/importers/memory_tracker/graph_processor.cc",
+        "src/trace_processor/importers/memory_tracker/memory_allocator_node_id.cc",
+        "src/trace_processor/importers/memory_tracker/raw_memory_graph_node.cc",
+        "src/trace_processor/importers/memory_tracker/raw_process_memory_node.cc",
+    ],
 }
 
 // GN: //src/trace_processor:lib
 filegroup {
-  name: "perfetto_src_trace_processor_lib",
-  srcs: [
-    "src/trace_processor/dynamic/ancestor_generator.cc",
-    "src/trace_processor/dynamic/connected_flow_generator.cc",
-    "src/trace_processor/dynamic/descendant_generator.cc",
-    "src/trace_processor/dynamic/describe_slice_generator.cc",
-    "src/trace_processor/dynamic/experimental_annotated_stack_generator.cc",
-    "src/trace_processor/dynamic/experimental_counter_dur_generator.cc",
-    "src/trace_processor/dynamic/experimental_flamegraph_generator.cc",
-    "src/trace_processor/dynamic/experimental_flat_slice_generator.cc",
-    "src/trace_processor/dynamic/experimental_sched_upid_generator.cc",
-    "src/trace_processor/dynamic/experimental_slice_layout_generator.cc",
-    "src/trace_processor/dynamic/thread_state_generator.cc",
-    "src/trace_processor/iterator_impl.cc",
-    "src/trace_processor/read_trace.cc",
-    "src/trace_processor/trace_processor.cc",
-    "src/trace_processor/trace_processor_impl.cc",
-  ],
+    name: "perfetto_src_trace_processor_lib",
+    srcs: [
+        "src/trace_processor/dynamic/ancestor_generator.cc",
+        "src/trace_processor/dynamic/connected_flow_generator.cc",
+        "src/trace_processor/dynamic/descendant_generator.cc",
+        "src/trace_processor/dynamic/describe_slice_generator.cc",
+        "src/trace_processor/dynamic/experimental_annotated_stack_generator.cc",
+        "src/trace_processor/dynamic/experimental_counter_dur_generator.cc",
+        "src/trace_processor/dynamic/experimental_flamegraph_generator.cc",
+        "src/trace_processor/dynamic/experimental_flat_slice_generator.cc",
+        "src/trace_processor/dynamic/experimental_sched_upid_generator.cc",
+        "src/trace_processor/dynamic/experimental_slice_layout_generator.cc",
+        "src/trace_processor/dynamic/thread_state_generator.cc",
+        "src/trace_processor/iterator_impl.cc",
+        "src/trace_processor/read_trace.cc",
+        "src/trace_processor/trace_processor.cc",
+        "src/trace_processor/trace_processor_impl.cc",
+    ],
 }
 
 // GN: //src/trace_processor:metatrace
 filegroup {
-  name: "perfetto_src_trace_processor_metatrace",
-  srcs: [
-    "src/trace_processor/tp_metatrace.cc",
-  ],
+    name: "perfetto_src_trace_processor_metatrace",
+    srcs: [
+        "src/trace_processor/tp_metatrace.cc",
+    ],
 }
 
 // GN: //src/trace_processor/metrics:gen_cc_all_chrome_metrics_descriptor
 genrule {
-  name: "perfetto_src_trace_processor_metrics_gen_cc_all_chrome_metrics_descriptor",
-  srcs: [
-    ":perfetto_protos_perfetto_metrics_chrome_descriptor",
-  ],
-  cmd: "$(location tools/gen_cc_proto_descriptor.py) --gen_dir=$(genDir) --cpp_out=$(out) $(in)",
-  out: [
-    "src/trace_processor/metrics/chrome/all_chrome_metrics.descriptor.h",
-  ],
-  tool_files: [
-    "tools/gen_cc_proto_descriptor.py",
-  ],
+    name: "perfetto_src_trace_processor_metrics_gen_cc_all_chrome_metrics_descriptor",
+    srcs: [
+        ":perfetto_protos_perfetto_metrics_chrome_descriptor",
+    ],
+    cmd: "$(location tools/gen_cc_proto_descriptor.py) --gen_dir=$(genDir) --cpp_out=$(out) $(in)",
+    out: [
+        "src/trace_processor/metrics/chrome/all_chrome_metrics.descriptor.h",
+    ],
+    tool_files: [
+        "tools/gen_cc_proto_descriptor.py",
+    ],
 }
 
 // GN: //src/trace_processor/metrics:gen_cc_metrics_descriptor
 genrule {
-  name: "perfetto_src_trace_processor_metrics_gen_cc_metrics_descriptor",
-  srcs: [
-    ":perfetto_protos_perfetto_metrics_descriptor",
-  ],
-  cmd: "$(location tools/gen_cc_proto_descriptor.py) --gen_dir=$(genDir) --cpp_out=$(out) $(in)",
-  out: [
-    "src/trace_processor/metrics/metrics.descriptor.h",
-  ],
-  tool_files: [
-    "tools/gen_cc_proto_descriptor.py",
-  ],
+    name: "perfetto_src_trace_processor_metrics_gen_cc_metrics_descriptor",
+    srcs: [
+        ":perfetto_protos_perfetto_metrics_descriptor",
+    ],
+    cmd: "$(location tools/gen_cc_proto_descriptor.py) --gen_dir=$(genDir) --cpp_out=$(out) $(in)",
+    out: [
+        "src/trace_processor/metrics/metrics.descriptor.h",
+    ],
+    tool_files: [
+        "tools/gen_cc_proto_descriptor.py",
+    ],
 }
 
 // GN: //src/trace_processor/metrics:gen_merged_sql_metrics
 genrule {
-  name: "perfetto_src_trace_processor_metrics_gen_merged_sql_metrics",
-  srcs: [
-    "src/trace_processor/metrics/android/android_batt.sql",
-    "src/trace_processor/metrics/android/android_cpu.sql",
-    "src/trace_processor/metrics/android/android_cpu_agg.sql",
-    "src/trace_processor/metrics/android/android_cpu_raw_metrics_per_core.sql",
-    "src/trace_processor/metrics/android/android_dma_heap.sql",
-    "src/trace_processor/metrics/android/android_fastrpc.sql",
-    "src/trace_processor/metrics/android/android_gpu.sql",
-    "src/trace_processor/metrics/android/android_hwcomposer.sql",
-    "src/trace_processor/metrics/android/android_hwui_metric.sql",
-    "src/trace_processor/metrics/android/android_hwui_threads.sql",
-    "src/trace_processor/metrics/android/android_ion.sql",
-    "src/trace_processor/metrics/android/android_jank.sql",
-    "src/trace_processor/metrics/android/android_lmk.sql",
-    "src/trace_processor/metrics/android/android_lmk_reason.sql",
-    "src/trace_processor/metrics/android/android_mem.sql",
-    "src/trace_processor/metrics/android/android_mem_unagg.sql",
-    "src/trace_processor/metrics/android/android_package_list.sql",
-    "src/trace_processor/metrics/android/android_powrails.sql",
-    "src/trace_processor/metrics/android/android_proxy_power.sql",
-    "src/trace_processor/metrics/android/android_startup.sql",
-    "src/trace_processor/metrics/android/android_startup_launches.sql",
-    "src/trace_processor/metrics/android/android_surfaceflinger.sql",
-    "src/trace_processor/metrics/android/android_sysui_cuj.sql",
-    "src/trace_processor/metrics/android/android_sysui_cuj_jank_query.sql",
-    "src/trace_processor/metrics/android/android_task_names.sql",
-    "src/trace_processor/metrics/android/android_thread_time_in_state.sql",
-    "src/trace_processor/metrics/android/android_trace_quality.sql",
-    "src/trace_processor/metrics/android/composer_execution.sql",
-    "src/trace_processor/metrics/android/composition_layers.sql",
-    "src/trace_processor/metrics/android/cpu_info.sql",
-    "src/trace_processor/metrics/android/display_metrics.sql",
-    "src/trace_processor/metrics/android/frame_missed.sql",
-    "src/trace_processor/metrics/android/g2d.sql",
-    "src/trace_processor/metrics/android/g2d_duration.sql",
-    "src/trace_processor/metrics/android/global_counter_span_view.sql",
-    "src/trace_processor/metrics/android/gpu_counter_span_view.sql",
-    "src/trace_processor/metrics/android/hsc_startups.sql",
-    "src/trace_processor/metrics/android/java_heap_histogram.sql",
-    "src/trace_processor/metrics/android/java_heap_stats.sql",
-    "src/trace_processor/metrics/android/mem_stats_priority_breakdown.sql",
-    "src/trace_processor/metrics/android/power_drain_in_watts.sql",
-    "src/trace_processor/metrics/android/power_profile_data.sql",
-    "src/trace_processor/metrics/android/process_counter_span_view.sql",
-    "src/trace_processor/metrics/android/process_mem.sql",
-    "src/trace_processor/metrics/android/process_metadata.sql",
-    "src/trace_processor/metrics/android/process_oom_score.sql",
-    "src/trace_processor/metrics/android/process_unagg_mem_view.sql",
-    "src/trace_processor/metrics/android/profiler_smaps.sql",
-    "src/trace_processor/metrics/android/span_view_stats.sql",
-    "src/trace_processor/metrics/android/thread_counter_span_view.sql",
-    "src/trace_processor/metrics/android/unsymbolized_frames.sql",
-    "src/trace_processor/metrics/chrome/actual_power_by_category.sql",
-    "src/trace_processor/metrics/chrome/actual_power_by_rail_mode.sql",
-    "src/trace_processor/metrics/chrome/chrome_event_metadata.sql",
-    "src/trace_processor/metrics/chrome/chrome_processes.sql",
-    "src/trace_processor/metrics/chrome/chrome_thread_slice_with_cpu_time.sql",
-    "src/trace_processor/metrics/chrome/cpu_time_by_category.sql",
-    "src/trace_processor/metrics/chrome/cpu_time_by_rail_mode.sql",
-    "src/trace_processor/metrics/chrome/estimated_power_by_category.sql",
-    "src/trace_processor/metrics/chrome/estimated_power_by_rail_mode.sql",
-    "src/trace_processor/metrics/chrome/gesture_flow_event.sql",
-    "src/trace_processor/metrics/chrome/gesture_flow_event_queuing_delay.sql",
-    "src/trace_processor/metrics/chrome/gesture_jank.sql",
-    "src/trace_processor/metrics/chrome/rail_modes.sql",
-    "src/trace_processor/metrics/chrome/scroll_flow_event.sql",
-    "src/trace_processor/metrics/chrome/scroll_flow_event_queuing_delay.sql",
-    "src/trace_processor/metrics/chrome/scroll_jank.sql",
-    "src/trace_processor/metrics/chrome/scroll_jank_cause.sql",
-    "src/trace_processor/metrics/chrome/scroll_jank_cause_blocking_task.sql",
-    "src/trace_processor/metrics/chrome/scroll_jank_cause_blocking_touch_move.sql",
-    "src/trace_processor/metrics/chrome/scroll_jank_cause_get_bitmap.sql",
-    "src/trace_processor/metrics/chrome/scroll_jank_cause_queuing_delay.sql",
-    "src/trace_processor/metrics/chrome/test_chrome_metric.sql",
-    "src/trace_processor/metrics/chrome/touch_flow_event.sql",
-    "src/trace_processor/metrics/chrome/touch_flow_event_queuing_delay.sql",
-    "src/trace_processor/metrics/chrome/touch_jank.sql",
-    "src/trace_processor/metrics/experimental/blink_gc_metric.sql",
-    "src/trace_processor/metrics/experimental/frame_times.sql",
-    "src/trace_processor/metrics/experimental/media_metric.sql",
-    "src/trace_processor/metrics/experimental/reported_by_page.sql",
-    "src/trace_processor/metrics/trace_metadata.sql",
-    "src/trace_processor/metrics/trace_stats.sql",
-    "src/trace_processor/metrics/webview/webview_power_usage.sql",
-  ],
-  cmd: "$(location tools/gen_merged_sql_metrics.py) --cpp_out=$(out) $(in)",
-  out: [
-    "src/trace_processor/metrics/sql_metrics.h",
-  ],
-  tool_files: [
-    "tools/gen_merged_sql_metrics.py",
-  ],
+    name: "perfetto_src_trace_processor_metrics_gen_merged_sql_metrics",
+    srcs: [
+        "src/trace_processor/metrics/android/android_batt.sql",
+        "src/trace_processor/metrics/android/android_cpu.sql",
+        "src/trace_processor/metrics/android/android_cpu_agg.sql",
+        "src/trace_processor/metrics/android/android_cpu_raw_metrics_per_core.sql",
+        "src/trace_processor/metrics/android/android_dma_heap.sql",
+        "src/trace_processor/metrics/android/android_fastrpc.sql",
+        "src/trace_processor/metrics/android/android_gpu.sql",
+        "src/trace_processor/metrics/android/android_hwcomposer.sql",
+        "src/trace_processor/metrics/android/android_hwui_metric.sql",
+        "src/trace_processor/metrics/android/android_hwui_threads.sql",
+        "src/trace_processor/metrics/android/android_ion.sql",
+        "src/trace_processor/metrics/android/android_jank.sql",
+        "src/trace_processor/metrics/android/android_lmk.sql",
+        "src/trace_processor/metrics/android/android_lmk_reason.sql",
+        "src/trace_processor/metrics/android/android_mem.sql",
+        "src/trace_processor/metrics/android/android_mem_unagg.sql",
+        "src/trace_processor/metrics/android/android_multiuser.sql",
+        "src/trace_processor/metrics/android/android_multiuser_populator.sql",
+        "src/trace_processor/metrics/android/android_package_list.sql",
+        "src/trace_processor/metrics/android/android_powrails.sql",
+        "src/trace_processor/metrics/android/android_proxy_power.sql",
+        "src/trace_processor/metrics/android/android_startup.sql",
+        "src/trace_processor/metrics/android/android_startup_launches.sql",
+        "src/trace_processor/metrics/android/android_surfaceflinger.sql",
+        "src/trace_processor/metrics/android/android_sysui_cuj.sql",
+        "src/trace_processor/metrics/android/android_sysui_cuj_jank_query.sql",
+        "src/trace_processor/metrics/android/android_task_names.sql",
+        "src/trace_processor/metrics/android/android_thread_time_in_state.sql",
+        "src/trace_processor/metrics/android/android_trace_quality.sql",
+        "src/trace_processor/metrics/android/composer_execution.sql",
+        "src/trace_processor/metrics/android/composition_layers.sql",
+        "src/trace_processor/metrics/android/cpu_info.sql",
+        "src/trace_processor/metrics/android/display_metrics.sql",
+        "src/trace_processor/metrics/android/frame_missed.sql",
+        "src/trace_processor/metrics/android/g2d.sql",
+        "src/trace_processor/metrics/android/g2d_duration.sql",
+        "src/trace_processor/metrics/android/global_counter_span_view.sql",
+        "src/trace_processor/metrics/android/gpu_counter_span_view.sql",
+        "src/trace_processor/metrics/android/hsc_startups.sql",
+        "src/trace_processor/metrics/android/java_heap_histogram.sql",
+        "src/trace_processor/metrics/android/java_heap_stats.sql",
+        "src/trace_processor/metrics/android/mem_stats_priority_breakdown.sql",
+        "src/trace_processor/metrics/android/power_drain_in_watts.sql",
+        "src/trace_processor/metrics/android/power_profile_data.sql",
+        "src/trace_processor/metrics/android/process_counter_span_view.sql",
+        "src/trace_processor/metrics/android/process_mem.sql",
+        "src/trace_processor/metrics/android/process_metadata.sql",
+        "src/trace_processor/metrics/android/process_oom_score.sql",
+        "src/trace_processor/metrics/android/process_unagg_mem_view.sql",
+        "src/trace_processor/metrics/android/profiler_smaps.sql",
+        "src/trace_processor/metrics/android/span_view_stats.sql",
+        "src/trace_processor/metrics/android/thread_counter_span_view.sql",
+        "src/trace_processor/metrics/android/unsymbolized_frames.sql",
+        "src/trace_processor/metrics/chrome/actual_power_by_category.sql",
+        "src/trace_processor/metrics/chrome/actual_power_by_rail_mode.sql",
+        "src/trace_processor/metrics/chrome/chrome_event_metadata.sql",
+        "src/trace_processor/metrics/chrome/chrome_processes.sql",
+        "src/trace_processor/metrics/chrome/chrome_thread_slice_with_cpu_time.sql",
+        "src/trace_processor/metrics/chrome/cpu_time_by_category.sql",
+        "src/trace_processor/metrics/chrome/cpu_time_by_rail_mode.sql",
+        "src/trace_processor/metrics/chrome/estimated_power_by_category.sql",
+        "src/trace_processor/metrics/chrome/estimated_power_by_rail_mode.sql",
+        "src/trace_processor/metrics/chrome/gesture_flow_event.sql",
+        "src/trace_processor/metrics/chrome/gesture_flow_event_queuing_delay.sql",
+        "src/trace_processor/metrics/chrome/gesture_jank.sql",
+        "src/trace_processor/metrics/chrome/rail_modes.sql",
+        "src/trace_processor/metrics/chrome/scroll_flow_event.sql",
+        "src/trace_processor/metrics/chrome/scroll_flow_event_queuing_delay.sql",
+        "src/trace_processor/metrics/chrome/scroll_jank.sql",
+        "src/trace_processor/metrics/chrome/scroll_jank_cause.sql",
+        "src/trace_processor/metrics/chrome/scroll_jank_cause_blocking_task.sql",
+        "src/trace_processor/metrics/chrome/scroll_jank_cause_blocking_touch_move.sql",
+        "src/trace_processor/metrics/chrome/scroll_jank_cause_get_bitmap.sql",
+        "src/trace_processor/metrics/chrome/scroll_jank_cause_queuing_delay.sql",
+        "src/trace_processor/metrics/chrome/test_chrome_metric.sql",
+        "src/trace_processor/metrics/chrome/touch_flow_event.sql",
+        "src/trace_processor/metrics/chrome/touch_flow_event_queuing_delay.sql",
+        "src/trace_processor/metrics/chrome/touch_jank.sql",
+        "src/trace_processor/metrics/experimental/blink_gc_metric.sql",
+        "src/trace_processor/metrics/experimental/frame_times.sql",
+        "src/trace_processor/metrics/experimental/media_metric.sql",
+        "src/trace_processor/metrics/experimental/reported_by_page.sql",
+        "src/trace_processor/metrics/trace_metadata.sql",
+        "src/trace_processor/metrics/trace_stats.sql",
+        "src/trace_processor/metrics/webview/webview_power_usage.sql",
+    ],
+    cmd: "$(location tools/gen_merged_sql_metrics.py) --cpp_out=$(out) $(in)",
+    out: [
+        "src/trace_processor/metrics/sql_metrics.h",
+    ],
+    tool_files: [
+        "tools/gen_merged_sql_metrics.py",
+    ],
 }
 
 // GN: //src/trace_processor/metrics:lib
 filegroup {
-  name: "perfetto_src_trace_processor_metrics_lib",
-  srcs: [
-    "src/trace_processor/metrics/metrics.cc",
-  ],
+    name: "perfetto_src_trace_processor_metrics_lib",
+    srcs: [
+        "src/trace_processor/metrics/metrics.cc",
+    ],
 }
 
 // GN: //src/trace_processor/metrics:unittests
 filegroup {
-  name: "perfetto_src_trace_processor_metrics_unittests",
-  srcs: [
-    "src/trace_processor/metrics/metrics_unittest.cc",
-  ],
+    name: "perfetto_src_trace_processor_metrics_unittests",
+    srcs: [
+        "src/trace_processor/metrics/metrics_unittest.cc",
+    ],
 }
 
 // GN: //src/trace_processor/rpc:httpd
 filegroup {
-  name: "perfetto_src_trace_processor_rpc_httpd",
-  srcs: [
-    "src/trace_processor/rpc/httpd.cc",
-  ],
+    name: "perfetto_src_trace_processor_rpc_httpd",
+    srcs: [
+        "src/trace_processor/rpc/httpd.cc",
+    ],
 }
 
 // GN: //src/trace_processor/rpc:rpc
 filegroup {
-  name: "perfetto_src_trace_processor_rpc_rpc",
-  srcs: [
-    "src/trace_processor/rpc/query_result_serializer.cc",
-    "src/trace_processor/rpc/rpc.cc",
-  ],
+    name: "perfetto_src_trace_processor_rpc_rpc",
+    srcs: [
+        "src/trace_processor/rpc/query_result_serializer.cc",
+        "src/trace_processor/rpc/rpc.cc",
+    ],
 }
 
 // GN: //src/trace_processor/rpc:unittests
 filegroup {
-  name: "perfetto_src_trace_processor_rpc_unittests",
-  srcs: [
-    "src/trace_processor/rpc/query_result_serializer_unittest.cc",
-  ],
+    name: "perfetto_src_trace_processor_rpc_unittests",
+    srcs: [
+        "src/trace_processor/rpc/query_result_serializer_unittest.cc",
+    ],
 }
 
 // GN: //src/trace_processor/sqlite:sqlite
 filegroup {
-  name: "perfetto_src_trace_processor_sqlite_sqlite",
-  srcs: [
-    "src/trace_processor/sqlite/db_sqlite_table.cc",
-    "src/trace_processor/sqlite/query_constraints.cc",
-    "src/trace_processor/sqlite/span_join_operator_table.cc",
-    "src/trace_processor/sqlite/sql_stats_table.cc",
-    "src/trace_processor/sqlite/sqlite3_str_split.cc",
-    "src/trace_processor/sqlite/sqlite_raw_table.cc",
-    "src/trace_processor/sqlite/sqlite_table.cc",
-    "src/trace_processor/sqlite/stats_table.cc",
-    "src/trace_processor/sqlite/window_operator_table.cc",
-  ],
+    name: "perfetto_src_trace_processor_sqlite_sqlite",
+    srcs: [
+        "src/trace_processor/sqlite/db_sqlite_table.cc",
+        "src/trace_processor/sqlite/query_constraints.cc",
+        "src/trace_processor/sqlite/span_join_operator_table.cc",
+        "src/trace_processor/sqlite/sql_stats_table.cc",
+        "src/trace_processor/sqlite/sqlite3_str_split.cc",
+        "src/trace_processor/sqlite/sqlite_raw_table.cc",
+        "src/trace_processor/sqlite/sqlite_table.cc",
+        "src/trace_processor/sqlite/stats_table.cc",
+        "src/trace_processor/sqlite/window_operator_table.cc",
+    ],
 }
 
 // GN: //src/trace_processor/sqlite:unittests
 filegroup {
-  name: "perfetto_src_trace_processor_sqlite_unittests",
-  srcs: [
-    "src/trace_processor/sqlite/db_sqlite_table_unittest.cc",
-    "src/trace_processor/sqlite/query_constraints_unittest.cc",
-    "src/trace_processor/sqlite/span_join_operator_table_unittest.cc",
-    "src/trace_processor/sqlite/sqlite3_str_split_unittest.cc",
-    "src/trace_processor/sqlite/sqlite_utils_unittest.cc",
-  ],
+    name: "perfetto_src_trace_processor_sqlite_unittests",
+    srcs: [
+        "src/trace_processor/sqlite/db_sqlite_table_unittest.cc",
+        "src/trace_processor/sqlite/query_constraints_unittest.cc",
+        "src/trace_processor/sqlite/span_join_operator_table_unittest.cc",
+        "src/trace_processor/sqlite/sqlite3_str_split_unittest.cc",
+        "src/trace_processor/sqlite/sqlite_utils_unittest.cc",
+    ],
 }
 
 // GN: //src/trace_processor:storage_full
 filegroup {
-  name: "perfetto_src_trace_processor_storage_full",
-  srcs: [
-    "src/trace_processor/importers/additional_modules.cc",
-    "src/trace_processor/importers/ftrace/binder_tracker.cc",
-    "src/trace_processor/importers/ftrace/ftrace_module_impl.cc",
-    "src/trace_processor/importers/ftrace/ftrace_parser.cc",
-    "src/trace_processor/importers/ftrace/ftrace_tokenizer.cc",
-    "src/trace_processor/importers/ftrace/rss_stat_tracker.cc",
-    "src/trace_processor/importers/ftrace/sched_event_tracker.cc",
-    "src/trace_processor/importers/fuchsia/fuchsia_record.cc",
-    "src/trace_processor/importers/fuchsia/fuchsia_trace_parser.cc",
-    "src/trace_processor/importers/fuchsia/fuchsia_trace_tokenizer.cc",
-    "src/trace_processor/importers/fuchsia/fuchsia_trace_utils.cc",
-    "src/trace_processor/importers/gzip/gzip_trace_parser.cc",
-    "src/trace_processor/importers/json/json_trace_parser.cc",
-    "src/trace_processor/importers/json/json_trace_tokenizer.cc",
-    "src/trace_processor/importers/json/json_tracker.cc",
-    "src/trace_processor/importers/proto/android_probes_module.cc",
-    "src/trace_processor/importers/proto/android_probes_parser.cc",
-    "src/trace_processor/importers/proto/android_probes_tracker.cc",
-    "src/trace_processor/importers/proto/frame_timeline_event_parser.cc",
-    "src/trace_processor/importers/proto/gpu_event_parser.cc",
-    "src/trace_processor/importers/proto/graphics_event_module.cc",
-    "src/trace_processor/importers/proto/graphics_frame_event_parser.cc",
-    "src/trace_processor/importers/proto/heap_graph_module.cc",
-    "src/trace_processor/importers/proto/heap_graph_tracker.cc",
-    "src/trace_processor/importers/proto/system_probes_module.cc",
-    "src/trace_processor/importers/proto/system_probes_parser.cc",
-    "src/trace_processor/importers/proto/vulkan_memory_tracker.cc",
-    "src/trace_processor/importers/syscalls/syscall_tracker.cc",
-    "src/trace_processor/importers/systrace/systrace_line_parser.cc",
-    "src/trace_processor/importers/systrace/systrace_line_tokenizer.cc",
-    "src/trace_processor/importers/systrace/systrace_parser.cc",
-    "src/trace_processor/importers/systrace/systrace_trace_parser.cc",
-  ],
+    name: "perfetto_src_trace_processor_storage_full",
+    srcs: [
+        "src/trace_processor/importers/additional_modules.cc",
+        "src/trace_processor/importers/ftrace/binder_tracker.cc",
+        "src/trace_processor/importers/ftrace/ftrace_module_impl.cc",
+        "src/trace_processor/importers/ftrace/ftrace_parser.cc",
+        "src/trace_processor/importers/ftrace/ftrace_tokenizer.cc",
+        "src/trace_processor/importers/ftrace/rss_stat_tracker.cc",
+        "src/trace_processor/importers/ftrace/sched_event_tracker.cc",
+        "src/trace_processor/importers/fuchsia/fuchsia_record.cc",
+        "src/trace_processor/importers/fuchsia/fuchsia_trace_parser.cc",
+        "src/trace_processor/importers/fuchsia/fuchsia_trace_tokenizer.cc",
+        "src/trace_processor/importers/fuchsia/fuchsia_trace_utils.cc",
+        "src/trace_processor/importers/gzip/gzip_trace_parser.cc",
+        "src/trace_processor/importers/json/json_trace_parser.cc",
+        "src/trace_processor/importers/json/json_trace_tokenizer.cc",
+        "src/trace_processor/importers/json/json_tracker.cc",
+        "src/trace_processor/importers/proto/android_probes_module.cc",
+        "src/trace_processor/importers/proto/android_probes_parser.cc",
+        "src/trace_processor/importers/proto/android_probes_tracker.cc",
+        "src/trace_processor/importers/proto/frame_timeline_event_parser.cc",
+        "src/trace_processor/importers/proto/gpu_event_parser.cc",
+        "src/trace_processor/importers/proto/graphics_event_module.cc",
+        "src/trace_processor/importers/proto/graphics_frame_event_parser.cc",
+        "src/trace_processor/importers/proto/heap_graph_module.cc",
+        "src/trace_processor/importers/proto/heap_graph_tracker.cc",
+        "src/trace_processor/importers/proto/system_probes_module.cc",
+        "src/trace_processor/importers/proto/system_probes_parser.cc",
+        "src/trace_processor/importers/proto/vulkan_memory_tracker.cc",
+        "src/trace_processor/importers/syscalls/syscall_tracker.cc",
+        "src/trace_processor/importers/systrace/systrace_line_parser.cc",
+        "src/trace_processor/importers/systrace/systrace_line_tokenizer.cc",
+        "src/trace_processor/importers/systrace/systrace_parser.cc",
+        "src/trace_processor/importers/systrace/systrace_trace_parser.cc",
+    ],
 }
 
 // GN: //src/trace_processor:storage_minimal
 filegroup {
-  name: "perfetto_src_trace_processor_storage_minimal",
-  srcs: [
-    "src/trace_processor/forwarding_trace_parser.cc",
-    "src/trace_processor/importers/default_modules.cc",
-    "src/trace_processor/importers/ftrace/ftrace_module.cc",
-    "src/trace_processor/importers/json/json_utils.cc",
-    "src/trace_processor/importers/ninja/ninja_log_parser.cc",
-    "src/trace_processor/importers/proto/async_track_set_tracker.cc",
-    "src/trace_processor/importers/proto/chrome_string_lookup.cc",
-    "src/trace_processor/importers/proto/chrome_system_probes_module.cc",
-    "src/trace_processor/importers/proto/chrome_system_probes_parser.cc",
-    "src/trace_processor/importers/proto/flamegraph_construction_algorithms.cc",
-    "src/trace_processor/importers/proto/heap_profile_tracker.cc",
-    "src/trace_processor/importers/proto/memory_tracker_snapshot_module.cc",
-    "src/trace_processor/importers/proto/memory_tracker_snapshot_parser.cc",
-    "src/trace_processor/importers/proto/metadata_module.cc",
-    "src/trace_processor/importers/proto/metadata_tracker.cc",
-    "src/trace_processor/importers/proto/packet_sequence_state.cc",
-    "src/trace_processor/importers/proto/perf_sample_tracker.cc",
-    "src/trace_processor/importers/proto/profile_module.cc",
-    "src/trace_processor/importers/proto/profile_packet_utils.cc",
-    "src/trace_processor/importers/proto/profiler_util.cc",
-    "src/trace_processor/importers/proto/proto_importer_module.cc",
-    "src/trace_processor/importers/proto/proto_trace_parser.cc",
-    "src/trace_processor/importers/proto/proto_trace_reader.cc",
-    "src/trace_processor/importers/proto/proto_trace_tokenizer.cc",
-    "src/trace_processor/importers/proto/stack_profile_tracker.cc",
-    "src/trace_processor/importers/proto/track_event_module.cc",
-    "src/trace_processor/importers/proto/track_event_parser.cc",
-    "src/trace_processor/importers/proto/track_event_tokenizer.cc",
-    "src/trace_processor/importers/proto/track_event_tracker.cc",
-    "src/trace_processor/trace_processor_context.cc",
-    "src/trace_processor/trace_processor_storage.cc",
-    "src/trace_processor/trace_processor_storage_impl.cc",
-    "src/trace_processor/trace_sorter.cc",
-    "src/trace_processor/virtual_destructors.cc",
-  ],
+    name: "perfetto_src_trace_processor_storage_minimal",
+    srcs: [
+        "src/trace_processor/forwarding_trace_parser.cc",
+        "src/trace_processor/importers/default_modules.cc",
+        "src/trace_processor/importers/ftrace/ftrace_module.cc",
+        "src/trace_processor/importers/json/json_utils.cc",
+        "src/trace_processor/importers/ninja/ninja_log_parser.cc",
+        "src/trace_processor/importers/proto/async_track_set_tracker.cc",
+        "src/trace_processor/importers/proto/chrome_string_lookup.cc",
+        "src/trace_processor/importers/proto/chrome_system_probes_module.cc",
+        "src/trace_processor/importers/proto/chrome_system_probes_parser.cc",
+        "src/trace_processor/importers/proto/flamegraph_construction_algorithms.cc",
+        "src/trace_processor/importers/proto/heap_profile_tracker.cc",
+        "src/trace_processor/importers/proto/memory_tracker_snapshot_module.cc",
+        "src/trace_processor/importers/proto/memory_tracker_snapshot_parser.cc",
+        "src/trace_processor/importers/proto/metadata_module.cc",
+        "src/trace_processor/importers/proto/metadata_tracker.cc",
+        "src/trace_processor/importers/proto/packet_sequence_state.cc",
+        "src/trace_processor/importers/proto/perf_sample_tracker.cc",
+        "src/trace_processor/importers/proto/profile_module.cc",
+        "src/trace_processor/importers/proto/profile_packet_utils.cc",
+        "src/trace_processor/importers/proto/profiler_util.cc",
+        "src/trace_processor/importers/proto/proto_importer_module.cc",
+        "src/trace_processor/importers/proto/proto_trace_parser.cc",
+        "src/trace_processor/importers/proto/proto_trace_reader.cc",
+        "src/trace_processor/importers/proto/proto_trace_tokenizer.cc",
+        "src/trace_processor/importers/proto/stack_profile_tracker.cc",
+        "src/trace_processor/importers/proto/track_event_module.cc",
+        "src/trace_processor/importers/proto/track_event_parser.cc",
+        "src/trace_processor/importers/proto/track_event_tokenizer.cc",
+        "src/trace_processor/importers/proto/track_event_tracker.cc",
+        "src/trace_processor/trace_processor_context.cc",
+        "src/trace_processor/trace_processor_storage.cc",
+        "src/trace_processor/trace_processor_storage_impl.cc",
+        "src/trace_processor/trace_sorter.cc",
+        "src/trace_processor/virtual_destructors.cc",
+    ],
 }
 
 // GN: //src/trace_processor/storage:storage
 filegroup {
-  name: "perfetto_src_trace_processor_storage_storage",
-  srcs: [
-    "src/trace_processor/storage/trace_storage.cc",
-  ],
+    name: "perfetto_src_trace_processor_storage_storage",
+    srcs: [
+        "src/trace_processor/storage/trace_storage.cc",
+    ],
 }
 
 // GN: //src/trace_processor/tables:tables
 filegroup {
-  name: "perfetto_src_trace_processor_tables_tables",
-  srcs: [
-    "src/trace_processor/tables/table_destructors.cc",
-  ],
+    name: "perfetto_src_trace_processor_tables_tables",
+    srcs: [
+        "src/trace_processor/tables/table_destructors.cc",
+    ],
 }
 
 // GN: //src/trace_processor/tables:unittests
 filegroup {
-  name: "perfetto_src_trace_processor_tables_unittests",
-  srcs: [
-    "src/trace_processor/tables/macros_unittest.cc",
-  ],
+    name: "perfetto_src_trace_processor_tables_unittests",
+    srcs: [
+        "src/trace_processor/tables/macros_unittest.cc",
+    ],
 }
 
 // GN: //src/trace_processor/types:types
 filegroup {
-  name: "perfetto_src_trace_processor_types_types",
-  srcs: [
-    "src/trace_processor/types/destructible.cc",
-    "src/trace_processor/types/gfp_flags.cc",
-    "src/trace_processor/types/task_state.cc",
-    "src/trace_processor/types/variadic.cc",
-  ],
+    name: "perfetto_src_trace_processor_types_types",
+    srcs: [
+        "src/trace_processor/types/destructible.cc",
+        "src/trace_processor/types/gfp_flags.cc",
+        "src/trace_processor/types/task_state.cc",
+        "src/trace_processor/types/variadic.cc",
+    ],
 }
 
 // GN: //src/trace_processor/types:unittests
 filegroup {
-  name: "perfetto_src_trace_processor_types_unittests",
-  srcs: [
-    "src/trace_processor/types/task_state_unittests.cc",
-  ],
+    name: "perfetto_src_trace_processor_types_unittests",
+    srcs: [
+        "src/trace_processor/types/task_state_unittests.cc",
+    ],
 }
 
 // GN: //src/trace_processor:unittests
 filegroup {
-  name: "perfetto_src_trace_processor_unittests",
-  srcs: [
-    "src/trace_processor/dynamic/experimental_counter_dur_generator_unittest.cc",
-    "src/trace_processor/dynamic/experimental_flat_slice_generator_unittest.cc",
-    "src/trace_processor/dynamic/experimental_slice_layout_generator_unittest.cc",
-    "src/trace_processor/dynamic/thread_state_generator_unittest.cc",
-    "src/trace_processor/forwarding_trace_parser_unittest.cc",
-    "src/trace_processor/importers/ftrace/sched_event_tracker_unittest.cc",
-    "src/trace_processor/importers/fuchsia/fuchsia_trace_utils_unittest.cc",
-    "src/trace_processor/importers/memory_tracker/graph_processor_unittest.cc",
-    "src/trace_processor/importers/memory_tracker/graph_unittest.cc",
-    "src/trace_processor/importers/memory_tracker/raw_process_memory_node_unittest.cc",
-    "src/trace_processor/importers/proto/async_track_set_tracker_unittest.cc",
-    "src/trace_processor/importers/proto/heap_graph_tracker_unittest.cc",
-    "src/trace_processor/importers/proto/heap_profile_tracker_unittest.cc",
-    "src/trace_processor/importers/proto/perf_sample_tracker_unittest.cc",
-    "src/trace_processor/importers/proto/proto_trace_parser_unittest.cc",
-    "src/trace_processor/importers/syscalls/syscall_tracker_unittest.cc",
-    "src/trace_processor/importers/systrace/systrace_parser_unittest.cc",
-    "src/trace_processor/trace_sorter_unittest.cc",
-  ],
+    name: "perfetto_src_trace_processor_unittests",
+    srcs: [
+        "src/trace_processor/dynamic/experimental_counter_dur_generator_unittest.cc",
+        "src/trace_processor/dynamic/experimental_flat_slice_generator_unittest.cc",
+        "src/trace_processor/dynamic/experimental_slice_layout_generator_unittest.cc",
+        "src/trace_processor/dynamic/thread_state_generator_unittest.cc",
+        "src/trace_processor/forwarding_trace_parser_unittest.cc",
+        "src/trace_processor/importers/ftrace/sched_event_tracker_unittest.cc",
+        "src/trace_processor/importers/fuchsia/fuchsia_trace_utils_unittest.cc",
+        "src/trace_processor/importers/memory_tracker/graph_processor_unittest.cc",
+        "src/trace_processor/importers/memory_tracker/graph_unittest.cc",
+        "src/trace_processor/importers/memory_tracker/raw_process_memory_node_unittest.cc",
+        "src/trace_processor/importers/proto/async_track_set_tracker_unittest.cc",
+        "src/trace_processor/importers/proto/heap_graph_tracker_unittest.cc",
+        "src/trace_processor/importers/proto/heap_profile_tracker_unittest.cc",
+        "src/trace_processor/importers/proto/perf_sample_tracker_unittest.cc",
+        "src/trace_processor/importers/proto/proto_trace_parser_unittest.cc",
+        "src/trace_processor/importers/syscalls/syscall_tracker_unittest.cc",
+        "src/trace_processor/importers/systrace/systrace_parser_unittest.cc",
+        "src/trace_processor/trace_sorter_unittest.cc",
+    ],
 }
 
 // GN: //src/trace_processor/util:descriptors
 filegroup {
-  name: "perfetto_src_trace_processor_util_descriptors",
-  srcs: [
-    "src/trace_processor/util/descriptors.cc",
-  ],
+    name: "perfetto_src_trace_processor_util_descriptors",
+    srcs: [
+        "src/trace_processor/util/descriptors.cc",
+    ],
 }
 
 // GN: //src/trace_processor/util:gzip
 filegroup {
-  name: "perfetto_src_trace_processor_util_gzip",
-  srcs: [
-    "src/trace_processor/util/gzip_utils.cc",
-  ],
+    name: "perfetto_src_trace_processor_util_gzip",
+    srcs: [
+        "src/trace_processor/util/gzip_utils.cc",
+    ],
 }
 
 // GN: //src/trace_processor/util:interned_message_view
 filegroup {
-  name: "perfetto_src_trace_processor_util_interned_message_view",
+    name: "perfetto_src_trace_processor_util_interned_message_view",
 }
 
 // GN: //src/trace_processor/util:proto_to_args_parser
 filegroup {
-  name: "perfetto_src_trace_processor_util_proto_to_args_parser",
-  srcs: [
-    "src/trace_processor/util/debug_annotation_parser.cc",
-    "src/trace_processor/util/proto_to_args_parser.cc",
-  ],
+    name: "perfetto_src_trace_processor_util_proto_to_args_parser",
+    srcs: [
+        "src/trace_processor/util/debug_annotation_parser.cc",
+        "src/trace_processor/util/proto_to_args_parser.cc",
+    ],
 }
 
 // GN: //src/trace_processor/util:protozero_to_text
 filegroup {
-  name: "perfetto_src_trace_processor_util_protozero_to_text",
-  srcs: [
-    "src/trace_processor/util/protozero_to_text.cc",
-  ],
+    name: "perfetto_src_trace_processor_util_protozero_to_text",
+    srcs: [
+        "src/trace_processor/util/protozero_to_text.cc",
+    ],
 }
 
 // GN: //src/trace_processor/util:trace_blob_view
 filegroup {
-  name: "perfetto_src_trace_processor_util_trace_blob_view",
+    name: "perfetto_src_trace_processor_util_trace_blob_view",
 }
 
 // GN: //src/trace_processor/util:unittests
 filegroup {
-  name: "perfetto_src_trace_processor_util_unittests",
-  srcs: [
-    "src/trace_processor/util/debug_annotation_parser_unittest.cc",
-    "src/trace_processor/util/proto_to_args_parser_unittest.cc",
-    "src/trace_processor/util/protozero_to_text_unittests.cc",
-  ],
+    name: "perfetto_src_trace_processor_util_unittests",
+    srcs: [
+        "src/trace_processor/util/debug_annotation_parser_unittest.cc",
+        "src/trace_processor/util/proto_to_args_parser_unittest.cc",
+        "src/trace_processor/util/protozero_to_text_unittests.cc",
+    ],
 }
 
 // GN: //src/trace_processor/util:util
 filegroup {
-  name: "perfetto_src_trace_processor_util_util",
+    name: "perfetto_src_trace_processor_util_util",
 }
 
 // GN: //src/traced/probes/android_log:android_log
 filegroup {
-  name: "perfetto_src_traced_probes_android_log_android_log",
-  srcs: [
-    "src/traced/probes/android_log/android_log_data_source.cc",
-  ],
+    name: "perfetto_src_traced_probes_android_log_android_log",
+    srcs: [
+        "src/traced/probes/android_log/android_log_data_source.cc",
+    ],
 }
 
 // GN: //src/traced/probes/android_log:unittests
 filegroup {
-  name: "perfetto_src_traced_probes_android_log_unittests",
-  srcs: [
-    "src/traced/probes/android_log/android_log_data_source_unittest.cc",
-  ],
+    name: "perfetto_src_traced_probes_android_log_unittests",
+    srcs: [
+        "src/traced/probes/android_log/android_log_data_source_unittest.cc",
+    ],
 }
 
 // GN: //src/traced/probes/common:common
 filegroup {
-  name: "perfetto_src_traced_probes_common_common",
-  srcs: [
-    "src/traced/probes/common/cpu_freq_info.cc",
-  ],
+    name: "perfetto_src_traced_probes_common_common",
+    srcs: [
+        "src/traced/probes/common/cpu_freq_info.cc",
+    ],
 }
 
 // GN: //src/traced/probes/common:test_support
 filegroup {
-  name: "perfetto_src_traced_probes_common_test_support",
-  srcs: [
-    "src/traced/probes/common/cpu_freq_info_for_testing.cc",
-  ],
+    name: "perfetto_src_traced_probes_common_test_support",
+    srcs: [
+        "src/traced/probes/common/cpu_freq_info_for_testing.cc",
+    ],
 }
 
 // GN: //src/traced/probes/common:unittests
 filegroup {
-  name: "perfetto_src_traced_probes_common_unittests",
-  srcs: [
-    "src/traced/probes/common/cpu_freq_info_unittest.cc",
-  ],
+    name: "perfetto_src_traced_probes_common_unittests",
+    srcs: [
+        "src/traced/probes/common/cpu_freq_info_unittest.cc",
+    ],
 }
 
 // GN: //src/traced/probes:data_source
 filegroup {
-  name: "perfetto_src_traced_probes_data_source",
-  srcs: [
-    "src/traced/probes/probes_data_source.cc",
-  ],
+    name: "perfetto_src_traced_probes_data_source",
+    srcs: [
+        "src/traced/probes/probes_data_source.cc",
+    ],
 }
 
 // GN: //src/traced/probes/filesystem:filesystem
 filegroup {
-  name: "perfetto_src_traced_probes_filesystem_filesystem",
-  srcs: [
-    "src/traced/probes/filesystem/file_scanner.cc",
-    "src/traced/probes/filesystem/fs_mount.cc",
-    "src/traced/probes/filesystem/inode_file_data_source.cc",
-    "src/traced/probes/filesystem/lru_inode_cache.cc",
-    "src/traced/probes/filesystem/prefix_finder.cc",
-    "src/traced/probes/filesystem/range_tree.cc",
-  ],
+    name: "perfetto_src_traced_probes_filesystem_filesystem",
+    srcs: [
+        "src/traced/probes/filesystem/file_scanner.cc",
+        "src/traced/probes/filesystem/fs_mount.cc",
+        "src/traced/probes/filesystem/inode_file_data_source.cc",
+        "src/traced/probes/filesystem/lru_inode_cache.cc",
+        "src/traced/probes/filesystem/prefix_finder.cc",
+        "src/traced/probes/filesystem/range_tree.cc",
+    ],
 }
 
 // GN: //src/traced/probes/filesystem:unittests
 filegroup {
-  name: "perfetto_src_traced_probes_filesystem_unittests",
-  srcs: [
-    "src/traced/probes/filesystem/file_scanner_unittest.cc",
-    "src/traced/probes/filesystem/fs_mount_unittest.cc",
-    "src/traced/probes/filesystem/inode_file_data_source_unittest.cc",
-    "src/traced/probes/filesystem/lru_inode_cache_unittest.cc",
-    "src/traced/probes/filesystem/prefix_finder_unittest.cc",
-    "src/traced/probes/filesystem/range_tree_unittest.cc",
-  ],
+    name: "perfetto_src_traced_probes_filesystem_unittests",
+    srcs: [
+        "src/traced/probes/filesystem/file_scanner_unittest.cc",
+        "src/traced/probes/filesystem/fs_mount_unittest.cc",
+        "src/traced/probes/filesystem/inode_file_data_source_unittest.cc",
+        "src/traced/probes/filesystem/lru_inode_cache_unittest.cc",
+        "src/traced/probes/filesystem/prefix_finder_unittest.cc",
+        "src/traced/probes/filesystem/range_tree_unittest.cc",
+    ],
 }
 
 // GN: //src/traced/probes/ftrace/format_parser:format_parser
 filegroup {
-  name: "perfetto_src_traced_probes_ftrace_format_parser_format_parser",
-  srcs: [
-    "src/traced/probes/ftrace/format_parser/format_parser.cc",
-  ],
+    name: "perfetto_src_traced_probes_ftrace_format_parser_format_parser",
+    srcs: [
+        "src/traced/probes/ftrace/format_parser/format_parser.cc",
+    ],
 }
 
 // GN: //src/traced/probes/ftrace/format_parser:unittests
 filegroup {
-  name: "perfetto_src_traced_probes_ftrace_format_parser_unittests",
-  srcs: [
-    "src/traced/probes/ftrace/format_parser/format_parser_unittest.cc",
-  ],
+    name: "perfetto_src_traced_probes_ftrace_format_parser_unittests",
+    srcs: [
+        "src/traced/probes/ftrace/format_parser/format_parser_unittest.cc",
+    ],
 }
 
 // GN: //src/traced/probes/ftrace:ftrace
 filegroup {
-  name: "perfetto_src_traced_probes_ftrace_ftrace",
-  srcs: [
-    "src/traced/probes/ftrace/atrace_hal_wrapper.cc",
-    "src/traced/probes/ftrace/atrace_wrapper.cc",
-    "src/traced/probes/ftrace/compact_sched.cc",
-    "src/traced/probes/ftrace/cpu_reader.cc",
-    "src/traced/probes/ftrace/cpu_stats_parser.cc",
-    "src/traced/probes/ftrace/discover_vendor_tracepoints.cc",
-    "src/traced/probes/ftrace/event_info.cc",
-    "src/traced/probes/ftrace/event_info_constants.cc",
-    "src/traced/probes/ftrace/ftrace_config_muxer.cc",
-    "src/traced/probes/ftrace/ftrace_config_utils.cc",
-    "src/traced/probes/ftrace/ftrace_controller.cc",
-    "src/traced/probes/ftrace/ftrace_data_source.cc",
-    "src/traced/probes/ftrace/ftrace_stats.cc",
-    "src/traced/probes/ftrace/printk_formats_parser.cc",
-    "src/traced/probes/ftrace/proto_translation_table.cc",
-  ],
+    name: "perfetto_src_traced_probes_ftrace_ftrace",
+    srcs: [
+        "src/traced/probes/ftrace/atrace_hal_wrapper.cc",
+        "src/traced/probes/ftrace/atrace_wrapper.cc",
+        "src/traced/probes/ftrace/compact_sched.cc",
+        "src/traced/probes/ftrace/cpu_reader.cc",
+        "src/traced/probes/ftrace/cpu_stats_parser.cc",
+        "src/traced/probes/ftrace/discover_vendor_tracepoints.cc",
+        "src/traced/probes/ftrace/event_info.cc",
+        "src/traced/probes/ftrace/event_info_constants.cc",
+        "src/traced/probes/ftrace/ftrace_config_muxer.cc",
+        "src/traced/probes/ftrace/ftrace_config_utils.cc",
+        "src/traced/probes/ftrace/ftrace_controller.cc",
+        "src/traced/probes/ftrace/ftrace_data_source.cc",
+        "src/traced/probes/ftrace/ftrace_stats.cc",
+        "src/traced/probes/ftrace/printk_formats_parser.cc",
+        "src/traced/probes/ftrace/proto_translation_table.cc",
+    ],
 }
 
 // GN: //src/traced/probes/ftrace:ftrace_procfs
 filegroup {
-  name: "perfetto_src_traced_probes_ftrace_ftrace_procfs",
-  srcs: [
-    "src/traced/probes/ftrace/ftrace_procfs.cc",
-  ],
+    name: "perfetto_src_traced_probes_ftrace_ftrace_procfs",
+    srcs: [
+        "src/traced/probes/ftrace/ftrace_procfs.cc",
+    ],
 }
 
 // GN: //src/traced/probes/ftrace:integrationtests
 filegroup {
-  name: "perfetto_src_traced_probes_ftrace_integrationtests",
-  srcs: [
-    "src/traced/probes/ftrace/ftrace_procfs_integrationtest.cc",
-  ],
+    name: "perfetto_src_traced_probes_ftrace_integrationtests",
+    srcs: [
+        "src/traced/probes/ftrace/ftrace_procfs_integrationtest.cc",
+    ],
 }
 
 // GN: //src/traced/probes/ftrace:test_messages_cpp
 genrule {
-  name: "perfetto_src_traced_probes_ftrace_test_messages_cpp_gen",
-  srcs: [
-    "src/traced/probes/ftrace/test/test_messages.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/src/traced/probes/ftrace/test/test_messages.gen.cc",
-  ],
+    name: "perfetto_src_traced_probes_ftrace_test_messages_cpp_gen",
+    srcs: [
+        "src/traced/probes/ftrace/test/test_messages.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/src/traced/probes/ftrace/test/test_messages.gen.cc",
+    ],
 }
 
 // GN: //src/traced/probes/ftrace:test_messages_cpp
 genrule {
-  name: "perfetto_src_traced_probes_ftrace_test_messages_cpp_gen_headers",
-  srcs: [
-    "src/traced/probes/ftrace/test/test_messages.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/src/traced/probes/ftrace/test/test_messages.gen.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_src_traced_probes_ftrace_test_messages_cpp_gen_headers",
+    srcs: [
+        "src/traced/probes/ftrace/test/test_messages.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/src/traced/probes/ftrace/test/test_messages.gen.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //src/traced/probes/ftrace:test_messages_lite
 genrule {
-  name: "perfetto_src_traced_probes_ftrace_test_messages_lite_gen",
-  srcs: [
-    "src/traced/probes/ftrace/test/test_messages.proto",
-  ],
-  tools: [
-    "aprotoc",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/src/traced/probes/ftrace/test/test_messages.pb.cc",
-  ],
+    name: "perfetto_src_traced_probes_ftrace_test_messages_lite_gen",
+    srcs: [
+        "src/traced/probes/ftrace/test/test_messages.proto",
+    ],
+    tools: [
+        "aprotoc",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/src/traced/probes/ftrace/test/test_messages.pb.cc",
+    ],
 }
 
 // GN: //src/traced/probes/ftrace:test_messages_lite
 genrule {
-  name: "perfetto_src_traced_probes_ftrace_test_messages_lite_gen_headers",
-  srcs: [
-    "src/traced/probes/ftrace/test/test_messages.proto",
-  ],
-  tools: [
-    "aprotoc",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/src/traced/probes/ftrace/test/test_messages.pb.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_src_traced_probes_ftrace_test_messages_lite_gen_headers",
+    srcs: [
+        "src/traced/probes/ftrace/test/test_messages.proto",
+    ],
+    tools: [
+        "aprotoc",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/src/traced/probes/ftrace/test/test_messages.pb.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //src/traced/probes/ftrace:test_messages_zero
 genrule {
-  name: "perfetto_src_traced_probes_ftrace_test_messages_zero_gen",
-  srcs: [
-    "src/traced/probes/ftrace/test/test_messages.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "protozero_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/src/traced/probes/ftrace/test/test_messages.pbzero.cc",
-  ],
+    name: "perfetto_src_traced_probes_ftrace_test_messages_zero_gen",
+    srcs: [
+        "src/traced/probes/ftrace/test/test_messages.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "protozero_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/src/traced/probes/ftrace/test/test_messages.pbzero.cc",
+    ],
 }
 
 // GN: //src/traced/probes/ftrace:test_messages_zero
 genrule {
-  name: "perfetto_src_traced_probes_ftrace_test_messages_zero_gen_headers",
-  srcs: [
-    "src/traced/probes/ftrace/test/test_messages.proto",
-  ],
-  tools: [
-    "aprotoc",
-    "protozero_plugin",
-  ],
-  cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
-  out: [
-    "external/perfetto/src/traced/probes/ftrace/test/test_messages.pbzero.h",
-  ],
-  export_include_dirs: [
-    ".",
-    "protos",
-  ],
+    name: "perfetto_src_traced_probes_ftrace_test_messages_zero_gen_headers",
+    srcs: [
+        "src/traced/probes/ftrace/test/test_messages.proto",
+    ],
+    tools: [
+        "aprotoc",
+        "protozero_plugin",
+    ],
+    cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
+    out: [
+        "external/perfetto/src/traced/probes/ftrace/test/test_messages.pbzero.h",
+    ],
+    export_include_dirs: [
+        ".",
+        "protos",
+    ],
 }
 
 // GN: //src/traced/probes/ftrace:test_support
 filegroup {
-  name: "perfetto_src_traced_probes_ftrace_test_support",
-  srcs: [
-    "src/traced/probes/ftrace/test/cpu_reader_support.cc",
-  ],
+    name: "perfetto_src_traced_probes_ftrace_test_support",
+    srcs: [
+        "src/traced/probes/ftrace/test/cpu_reader_support.cc",
+    ],
 }
 
 // GN: //src/traced/probes/ftrace:unittests
 filegroup {
-  name: "perfetto_src_traced_probes_ftrace_unittests",
-  srcs: [
-    "src/traced/probes/ftrace/cpu_reader_unittest.cc",
-    "src/traced/probes/ftrace/cpu_stats_parser_unittest.cc",
-    "src/traced/probes/ftrace/discover_vendor_tracepoints_unittest.cc",
-    "src/traced/probes/ftrace/event_info_unittest.cc",
-    "src/traced/probes/ftrace/ftrace_config_muxer_unittest.cc",
-    "src/traced/probes/ftrace/ftrace_config_unittest.cc",
-    "src/traced/probes/ftrace/ftrace_controller_unittest.cc",
-    "src/traced/probes/ftrace/ftrace_procfs_unittest.cc",
-    "src/traced/probes/ftrace/printk_formats_parser_unittest.cc",
-    "src/traced/probes/ftrace/proto_translation_table_unittest.cc",
-  ],
+    name: "perfetto_src_traced_probes_ftrace_unittests",
+    srcs: [
+        "src/traced/probes/ftrace/cpu_reader_unittest.cc",
+        "src/traced/probes/ftrace/cpu_stats_parser_unittest.cc",
+        "src/traced/probes/ftrace/discover_vendor_tracepoints_unittest.cc",
+        "src/traced/probes/ftrace/event_info_unittest.cc",
+        "src/traced/probes/ftrace/ftrace_config_muxer_unittest.cc",
+        "src/traced/probes/ftrace/ftrace_config_unittest.cc",
+        "src/traced/probes/ftrace/ftrace_controller_unittest.cc",
+        "src/traced/probes/ftrace/ftrace_procfs_unittest.cc",
+        "src/traced/probes/ftrace/printk_formats_parser_unittest.cc",
+        "src/traced/probes/ftrace/proto_translation_table_unittest.cc",
+    ],
 }
 
 // GN: //src/traced/probes/initial_display_state:initial_display_state
 filegroup {
-  name: "perfetto_src_traced_probes_initial_display_state_initial_display_state",
-  srcs: [
-    "src/traced/probes/initial_display_state/initial_display_state_data_source.cc",
-  ],
+    name: "perfetto_src_traced_probes_initial_display_state_initial_display_state",
+    srcs: [
+        "src/traced/probes/initial_display_state/initial_display_state_data_source.cc",
+    ],
 }
 
 // GN: //src/traced/probes/initial_display_state:unittests
 filegroup {
-  name: "perfetto_src_traced_probes_initial_display_state_unittests",
-  srcs: [
-    "src/traced/probes/initial_display_state/initial_display_state_data_source_unittest.cc",
-  ],
+    name: "perfetto_src_traced_probes_initial_display_state_unittests",
+    srcs: [
+        "src/traced/probes/initial_display_state/initial_display_state_data_source_unittest.cc",
+    ],
 }
 
 // GN: //src/traced/probes/metatrace:metatrace
 filegroup {
-  name: "perfetto_src_traced_probes_metatrace_metatrace",
-  srcs: [
-    "src/traced/probes/metatrace/metatrace_data_source.cc",
-  ],
+    name: "perfetto_src_traced_probes_metatrace_metatrace",
+    srcs: [
+        "src/traced/probes/metatrace/metatrace_data_source.cc",
+    ],
 }
 
 // GN: //src/traced/probes/packages_list:packages_list
 filegroup {
-  name: "perfetto_src_traced_probes_packages_list_packages_list",
-  srcs: [
-    "src/traced/probes/packages_list/packages_list_data_source.cc",
-  ],
+    name: "perfetto_src_traced_probes_packages_list_packages_list",
+    srcs: [
+        "src/traced/probes/packages_list/packages_list_data_source.cc",
+    ],
 }
 
 // GN: //src/traced/probes/packages_list:packages_list_parser
 filegroup {
-  name: "perfetto_src_traced_probes_packages_list_packages_list_parser",
-  srcs: [
-    "src/traced/probes/packages_list/packages_list_parser.cc",
-  ],
+    name: "perfetto_src_traced_probes_packages_list_packages_list_parser",
+    srcs: [
+        "src/traced/probes/packages_list/packages_list_parser.cc",
+    ],
 }
 
 // GN: //src/traced/probes/packages_list:unittests
 filegroup {
-  name: "perfetto_src_traced_probes_packages_list_unittests",
-  srcs: [
-    "src/traced/probes/packages_list/packages_list_unittest.cc",
-  ],
+    name: "perfetto_src_traced_probes_packages_list_unittests",
+    srcs: [
+        "src/traced/probes/packages_list/packages_list_unittest.cc",
+    ],
 }
 
 // GN: //src/traced/probes/power:power
 filegroup {
-  name: "perfetto_src_traced_probes_power_power",
-  srcs: [
-    "src/traced/probes/power/android_power_data_source.cc",
-  ],
+    name: "perfetto_src_traced_probes_power_power",
+    srcs: [
+        "src/traced/probes/power/android_power_data_source.cc",
+    ],
 }
 
 // GN: //src/traced/probes:probes
 filegroup {
-  name: "perfetto_src_traced_probes_probes",
-  srcs: [
-    "src/traced/probes/probes.cc",
-  ],
+    name: "perfetto_src_traced_probes_probes",
+    srcs: [
+        "src/traced/probes/probes.cc",
+    ],
 }
 
 // GN: //src/traced/probes:probes_src
 filegroup {
-  name: "perfetto_src_traced_probes_probes_src",
-  srcs: [
-    "src/traced/probes/kmem_activity_trigger.cc",
-    "src/traced/probes/probes_producer.cc",
-  ],
+    name: "perfetto_src_traced_probes_probes_src",
+    srcs: [
+        "src/traced/probes/kmem_activity_trigger.cc",
+        "src/traced/probes/probes_producer.cc",
+    ],
 }
 
 // GN: //src/traced/probes/ps:ps
 filegroup {
-  name: "perfetto_src_traced_probes_ps_ps",
-  srcs: [
-    "src/traced/probes/ps/process_stats_data_source.cc",
-  ],
+    name: "perfetto_src_traced_probes_ps_ps",
+    srcs: [
+        "src/traced/probes/ps/process_stats_data_source.cc",
+    ],
 }
 
 // GN: //src/traced/probes/ps:unittests
 filegroup {
-  name: "perfetto_src_traced_probes_ps_unittests",
-  srcs: [
-    "src/traced/probes/ps/process_stats_data_source_unittest.cc",
-  ],
+    name: "perfetto_src_traced_probes_ps_unittests",
+    srcs: [
+        "src/traced/probes/ps/process_stats_data_source_unittest.cc",
+    ],
 }
 
 // GN: //src/traced/probes/sys_stats:sys_stats
 filegroup {
-  name: "perfetto_src_traced_probes_sys_stats_sys_stats",
-  srcs: [
-    "src/traced/probes/sys_stats/sys_stats_data_source.cc",
-  ],
+    name: "perfetto_src_traced_probes_sys_stats_sys_stats",
+    srcs: [
+        "src/traced/probes/sys_stats/sys_stats_data_source.cc",
+    ],
 }
 
 // GN: //src/traced/probes/sys_stats:unittests
 filegroup {
-  name: "perfetto_src_traced_probes_sys_stats_unittests",
-  srcs: [
-    "src/traced/probes/sys_stats/sys_stats_data_source_unittest.cc",
-  ],
+    name: "perfetto_src_traced_probes_sys_stats_unittests",
+    srcs: [
+        "src/traced/probes/sys_stats/sys_stats_data_source_unittest.cc",
+    ],
 }
 
 // GN: //src/traced/probes/system_info:system_info
 filegroup {
-  name: "perfetto_src_traced_probes_system_info_system_info",
-  srcs: [
-    "src/traced/probes/system_info/system_info_data_source.cc",
-  ],
+    name: "perfetto_src_traced_probes_system_info_system_info",
+    srcs: [
+        "src/traced/probes/system_info/system_info_data_source.cc",
+    ],
 }
 
 // GN: //src/traced/probes/system_info:unittests
 filegroup {
-  name: "perfetto_src_traced_probes_system_info_unittests",
-  srcs: [
-    "src/traced/probes/system_info/system_info_data_source_unittest.cc",
-  ],
+    name: "perfetto_src_traced_probes_system_info_unittests",
+    srcs: [
+        "src/traced/probes/system_info/system_info_data_source_unittest.cc",
+    ],
 }
 
 // GN: //src/traced/probes:unittests
 filegroup {
-  name: "perfetto_src_traced_probes_unittests",
+    name: "perfetto_src_traced_probes_unittests",
 }
 
 // GN: //src/traced/service:service
 filegroup {
-  name: "perfetto_src_traced_service_service",
-  srcs: [
-    "src/traced/service/builtin_producer.cc",
-    "src/traced/service/service.cc",
-  ],
+    name: "perfetto_src_traced_service_service",
+    srcs: [
+        "src/traced/service/builtin_producer.cc",
+        "src/traced/service/service.cc",
+    ],
 }
 
 // GN: //src/traced/service:unittests
 filegroup {
-  name: "perfetto_src_traced_service_unittests",
-  srcs: [
-    "src/traced/service/builtin_producer_unittest.cc",
-  ],
+    name: "perfetto_src_traced_service_unittests",
+    srcs: [
+        "src/traced/service/builtin_producer_unittest.cc",
+    ],
 }
 
 // GN: //src/tracing:client_api_without_backends
 filegroup {
-  name: "perfetto_src_tracing_client_api_without_backends",
-  srcs: [
-    "src/tracing/console_interceptor.cc",
-    "src/tracing/data_source.cc",
-    "src/tracing/debug_annotation.cc",
-    "src/tracing/event_context.cc",
-    "src/tracing/interceptor.cc",
-    "src/tracing/internal/checked_scope.cc",
-    "src/tracing/internal/interceptor_trace_writer.cc",
-    "src/tracing/internal/tracing_backend_fake.cc",
-    "src/tracing/internal/tracing_muxer_fake.cc",
-    "src/tracing/internal/tracing_muxer_impl.cc",
-    "src/tracing/internal/track_event_internal.cc",
-    "src/tracing/internal/track_event_interned_fields.cc",
-    "src/tracing/platform.cc",
-    "src/tracing/traced_value.cc",
-    "src/tracing/tracing.cc",
-    "src/tracing/tracing_policy.cc",
-    "src/tracing/track.cc",
-    "src/tracing/track_event_category_registry.cc",
-    "src/tracing/track_event_legacy.cc",
-    "src/tracing/track_event_state_tracker.cc",
-    "src/tracing/virtual_destructors.cc",
-  ],
+    name: "perfetto_src_tracing_client_api_without_backends",
+    srcs: [
+        "src/tracing/console_interceptor.cc",
+        "src/tracing/data_source.cc",
+        "src/tracing/debug_annotation.cc",
+        "src/tracing/event_context.cc",
+        "src/tracing/interceptor.cc",
+        "src/tracing/internal/checked_scope.cc",
+        "src/tracing/internal/interceptor_trace_writer.cc",
+        "src/tracing/internal/tracing_backend_fake.cc",
+        "src/tracing/internal/tracing_muxer_fake.cc",
+        "src/tracing/internal/tracing_muxer_impl.cc",
+        "src/tracing/internal/track_event_internal.cc",
+        "src/tracing/internal/track_event_interned_fields.cc",
+        "src/tracing/platform.cc",
+        "src/tracing/traced_value.cc",
+        "src/tracing/tracing.cc",
+        "src/tracing/tracing_policy.cc",
+        "src/tracing/track.cc",
+        "src/tracing/track_event_category_registry.cc",
+        "src/tracing/track_event_legacy.cc",
+        "src/tracing/track_event_state_tracker.cc",
+        "src/tracing/virtual_destructors.cc",
+    ],
 }
 
 // GN: //src/tracing:common
 filegroup {
-  name: "perfetto_src_tracing_common",
-  srcs: [
-    "src/tracing/trace_writer_base.cc",
-  ],
+    name: "perfetto_src_tracing_common",
+    srcs: [
+        "src/tracing/trace_writer_base.cc",
+    ],
 }
 
 // GN: //src/tracing/consumer_api_deprecated:consumer_api_deprecated
 filegroup {
-  name: "perfetto_src_tracing_consumer_api_deprecated_consumer_api_deprecated",
-  srcs: [
-    "src/tracing/consumer_api_deprecated/consumer_api_deprecated.cc",
-  ],
+    name: "perfetto_src_tracing_consumer_api_deprecated_consumer_api_deprecated",
+    srcs: [
+        "src/tracing/consumer_api_deprecated/consumer_api_deprecated.cc",
+    ],
 }
 
 // GN: //src/tracing/core:core
 filegroup {
-  name: "perfetto_src_tracing_core_core",
-  srcs: [
-    "src/tracing/core/id_allocator.cc",
-    "src/tracing/core/null_trace_writer.cc",
-    "src/tracing/core/shared_memory_abi.cc",
-    "src/tracing/core/shared_memory_arbiter_impl.cc",
-    "src/tracing/core/trace_packet.cc",
-    "src/tracing/core/trace_writer_impl.cc",
-    "src/tracing/core/virtual_destructors.cc",
-  ],
+    name: "perfetto_src_tracing_core_core",
+    srcs: [
+        "src/tracing/core/id_allocator.cc",
+        "src/tracing/core/null_trace_writer.cc",
+        "src/tracing/core/shared_memory_abi.cc",
+        "src/tracing/core/shared_memory_arbiter_impl.cc",
+        "src/tracing/core/trace_packet.cc",
+        "src/tracing/core/trace_writer_impl.cc",
+        "src/tracing/core/virtual_destructors.cc",
+    ],
 }
 
 // GN: //src/tracing/core:service
 filegroup {
-  name: "perfetto_src_tracing_core_service",
-  srcs: [
-    "src/tracing/core/metatrace_writer.cc",
-    "src/tracing/core/packet_stream_validator.cc",
-    "src/tracing/core/trace_buffer.cc",
-    "src/tracing/core/tracing_service_impl.cc",
-  ],
+    name: "perfetto_src_tracing_core_service",
+    srcs: [
+        "src/tracing/core/metatrace_writer.cc",
+        "src/tracing/core/packet_stream_validator.cc",
+        "src/tracing/core/trace_buffer.cc",
+        "src/tracing/core/tracing_service_impl.cc",
+    ],
 }
 
 // GN: //src/tracing/core:test_support
 filegroup {
-  name: "perfetto_src_tracing_core_test_support",
-  srcs: [
-    "src/tracing/core/trace_writer_for_testing.cc",
-  ],
+    name: "perfetto_src_tracing_core_test_support",
+    srcs: [
+        "src/tracing/core/trace_writer_for_testing.cc",
+    ],
 }
 
 // GN: //src/tracing/core:unittests
 filegroup {
-  name: "perfetto_src_tracing_core_unittests",
-  srcs: [
-    "src/tracing/core/id_allocator_unittest.cc",
-    "src/tracing/core/null_trace_writer_unittest.cc",
-    "src/tracing/core/packet_stream_validator_unittest.cc",
-    "src/tracing/core/patch_list_unittest.cc",
-    "src/tracing/core/shared_memory_abi_unittest.cc",
-    "src/tracing/core/shared_memory_arbiter_impl_unittest.cc",
-    "src/tracing/core/trace_buffer_unittest.cc",
-    "src/tracing/core/trace_packet_unittest.cc",
-    "src/tracing/core/trace_writer_impl_unittest.cc",
-    "src/tracing/core/tracing_service_impl_unittest.cc",
-  ],
+    name: "perfetto_src_tracing_core_unittests",
+    srcs: [
+        "src/tracing/core/id_allocator_unittest.cc",
+        "src/tracing/core/null_trace_writer_unittest.cc",
+        "src/tracing/core/packet_stream_validator_unittest.cc",
+        "src/tracing/core/patch_list_unittest.cc",
+        "src/tracing/core/shared_memory_abi_unittest.cc",
+        "src/tracing/core/shared_memory_arbiter_impl_unittest.cc",
+        "src/tracing/core/trace_buffer_unittest.cc",
+        "src/tracing/core/trace_packet_unittest.cc",
+        "src/tracing/core/trace_writer_impl_unittest.cc",
+        "src/tracing/core/tracing_service_impl_unittest.cc",
+    ],
 }
 
 // GN: //src/tracing:in_process_backend
 filegroup {
-  name: "perfetto_src_tracing_in_process_backend",
-  srcs: [
-    "src/tracing/internal/in_process_tracing_backend.cc",
-  ],
+    name: "perfetto_src_tracing_in_process_backend",
+    srcs: [
+        "src/tracing/internal/in_process_tracing_backend.cc",
+    ],
 }
 
 // GN: //src/tracing/ipc:common
 filegroup {
-  name: "perfetto_src_tracing_ipc_common",
-  srcs: [
-    "src/tracing/ipc/default_socket.cc",
-    "src/tracing/ipc/memfd.cc",
-    "src/tracing/ipc/posix_shared_memory.cc",
-    "src/tracing/ipc/shared_memory_windows.cc",
-  ],
+    name: "perfetto_src_tracing_ipc_common",
+    srcs: [
+        "src/tracing/ipc/default_socket.cc",
+        "src/tracing/ipc/memfd.cc",
+        "src/tracing/ipc/posix_shared_memory.cc",
+        "src/tracing/ipc/shared_memory_windows.cc",
+    ],
 }
 
 // GN: //src/tracing/ipc/consumer:consumer
 filegroup {
-  name: "perfetto_src_tracing_ipc_consumer_consumer",
-  srcs: [
-    "src/tracing/ipc/consumer/consumer_ipc_client_impl.cc",
-  ],
+    name: "perfetto_src_tracing_ipc_consumer_consumer",
+    srcs: [
+        "src/tracing/ipc/consumer/consumer_ipc_client_impl.cc",
+    ],
 }
 
 // GN: //src/tracing/ipc/producer:producer
 filegroup {
-  name: "perfetto_src_tracing_ipc_producer_producer",
-  srcs: [
-    "src/tracing/ipc/producer/producer_ipc_client_impl.cc",
-  ],
+    name: "perfetto_src_tracing_ipc_producer_producer",
+    srcs: [
+        "src/tracing/ipc/producer/producer_ipc_client_impl.cc",
+    ],
 }
 
 // GN: //src/tracing/ipc/service:service
 filegroup {
-  name: "perfetto_src_tracing_ipc_service_service",
-  srcs: [
-    "src/tracing/ipc/service/consumer_ipc_service.cc",
-    "src/tracing/ipc/service/producer_ipc_service.cc",
-    "src/tracing/ipc/service/service_ipc_host_impl.cc",
-  ],
+    name: "perfetto_src_tracing_ipc_service_service",
+    srcs: [
+        "src/tracing/ipc/service/consumer_ipc_service.cc",
+        "src/tracing/ipc/service/producer_ipc_service.cc",
+        "src/tracing/ipc/service/service_ipc_host_impl.cc",
+    ],
 }
 
 // GN: //src/tracing/ipc:unittests
 filegroup {
-  name: "perfetto_src_tracing_ipc_unittests",
-  srcs: [
-    "src/tracing/ipc/posix_shared_memory_unittest.cc",
-  ],
+    name: "perfetto_src_tracing_ipc_unittests",
+    srcs: [
+        "src/tracing/ipc/posix_shared_memory_unittest.cc",
+    ],
 }
 
 // GN: //src/tracing:platform_impl
 filegroup {
-  name: "perfetto_src_tracing_platform_impl",
-  srcs: [
-    "src/tracing/platform_posix.cc",
-    "src/tracing/platform_windows.cc",
-  ],
+    name: "perfetto_src_tracing_platform_impl",
+    srcs: [
+        "src/tracing/platform_posix.cc",
+        "src/tracing/platform_windows.cc",
+    ],
 }
 
 // GN: //src/tracing:system_backend
 filegroup {
-  name: "perfetto_src_tracing_system_backend",
-  srcs: [
-    "src/tracing/internal/system_tracing_backend.cc",
-  ],
+    name: "perfetto_src_tracing_system_backend",
+    srcs: [
+        "src/tracing/internal/system_tracing_backend.cc",
+    ],
 }
 
 // GN: //src/tracing/test:api_test_support
 filegroup {
-  name: "perfetto_src_tracing_test_api_test_support",
-  srcs: [
-    "src/tracing/test/api_test_support.cc",
-  ],
+    name: "perfetto_src_tracing_test_api_test_support",
+    srcs: [
+        "src/tracing/test/api_test_support.cc",
+    ],
 }
 
 // GN: //src/tracing/test:client_api_integrationtests
 filegroup {
-  name: "perfetto_src_tracing_test_client_api_integrationtests",
-  srcs: [
-    "src/tracing/test/api_integrationtest.cc",
-    "src/tracing/test/tracing_module.cc",
-    "src/tracing/test/tracing_module2.cc",
-  ],
+    name: "perfetto_src_tracing_test_client_api_integrationtests",
+    srcs: [
+        "src/tracing/test/api_integrationtest.cc",
+        "src/tracing/test/tracing_module.cc",
+        "src/tracing/test/tracing_module2.cc",
+    ],
 }
 
 // GN: //src/tracing/test:test_support
 filegroup {
-  name: "perfetto_src_tracing_test_test_support",
-  srcs: [
-    "src/tracing/test/aligned_buffer_test.cc",
-    "src/tracing/test/fake_packet.cc",
-    "src/tracing/test/mock_consumer.cc",
-    "src/tracing/test/mock_producer.cc",
-    "src/tracing/test/test_shared_memory.cc",
-    "src/tracing/test/traced_value_test_support.cc",
-  ],
+    name: "perfetto_src_tracing_test_test_support",
+    srcs: [
+        "src/tracing/test/aligned_buffer_test.cc",
+        "src/tracing/test/fake_packet.cc",
+        "src/tracing/test/mock_consumer.cc",
+        "src/tracing/test/mock_producer.cc",
+        "src/tracing/test/test_shared_memory.cc",
+        "src/tracing/test/traced_value_test_support.cc",
+    ],
 }
 
 // GN: //src/tracing/test:tracing_integration_test
 filegroup {
-  name: "perfetto_src_tracing_test_tracing_integration_test",
-  srcs: [
-    "src/tracing/test/platform_unittest.cc",
-    "src/tracing/test/tracing_integration_test.cc",
-  ],
+    name: "perfetto_src_tracing_test_tracing_integration_test",
+    srcs: [
+        "src/tracing/test/platform_unittest.cc",
+        "src/tracing/test/tracing_integration_test.cc",
+    ],
 }
 
 // GN: //src/tracing:unittests
 filegroup {
-  name: "perfetto_src_tracing_unittests",
-  srcs: [
-    "src/tracing/traced_proto_unittest.cc",
-    "src/tracing/traced_value_unittest.cc",
-  ],
+    name: "perfetto_src_tracing_unittests",
+    srcs: [
+        "src/tracing/traced_proto_unittest.cc",
+        "src/tracing/traced_value_unittest.cc",
+    ],
 }
 
 // GN: //test:end_to_end_integrationtests
 filegroup {
-  name: "perfetto_test_end_to_end_integrationtests",
-  srcs: [
-    "test/end_to_end_integrationtest.cc",
-  ],
+    name: "perfetto_test_end_to_end_integrationtests",
+    srcs: [
+        "test/end_to_end_integrationtest.cc",
+    ],
 }
 
 // GN: //test:test_helper
 filegroup {
-  name: "perfetto_test_test_helper",
-  srcs: [
-    "test/android_test_utils.cc",
-    "test/fake_producer.cc",
-    "test/test_helper.cc",
-  ],
+    name: "perfetto_test_test_helper",
+    srcs: [
+        "test/android_test_utils.cc",
+        "test/fake_producer.cc",
+        "test/test_helper.cc",
+    ],
 }
 
 // GN: //tools/sanitizers_unittests:sanitizers_unittests
 filegroup {
-  name: "perfetto_tools_sanitizers_unittests_sanitizers_unittests",
-  srcs: [
-    "tools/sanitizers_unittests/sanitizers_unittest.cc",
-  ],
+    name: "perfetto_tools_sanitizers_unittests_sanitizers_unittests",
+    srcs: [
+        "tools/sanitizers_unittests/sanitizers_unittest.cc",
+    ],
 }
 
 // GN: //tools/trace_to_text:common
 filegroup {
-  name: "perfetto_tools_trace_to_text_common",
-  srcs: [
-    "tools/trace_to_text/deobfuscate_profile.cc",
-    "tools/trace_to_text/main.cc",
-    "tools/trace_to_text/symbolize_profile.cc",
-    "tools/trace_to_text/trace_to_hprof.cc",
-    "tools/trace_to_text/trace_to_json.cc",
-    "tools/trace_to_text/trace_to_profile.cc",
-    "tools/trace_to_text/trace_to_systrace.cc",
-  ],
+    name: "perfetto_tools_trace_to_text_common",
+    srcs: [
+        "tools/trace_to_text/deobfuscate_profile.cc",
+        "tools/trace_to_text/main.cc",
+        "tools/trace_to_text/symbolize_profile.cc",
+        "tools/trace_to_text/trace_to_hprof.cc",
+        "tools/trace_to_text/trace_to_json.cc",
+        "tools/trace_to_text/trace_to_profile.cc",
+        "tools/trace_to_text/trace_to_systrace.cc",
+    ],
 }
 
 // GN: //tools/trace_to_text:full
 filegroup {
-  name: "perfetto_tools_trace_to_text_full",
-  srcs: [
-    "tools/trace_to_text/proto_full_utils.cc",
-    "tools/trace_to_text/trace_to_text.cc",
-  ],
+    name: "perfetto_tools_trace_to_text_full",
+    srcs: [
+        "tools/trace_to_text/proto_full_utils.cc",
+        "tools/trace_to_text/trace_to_text.cc",
+    ],
 }
 
 // GN: //tools/trace_to_text:gen_cc_trace_descriptor
 genrule {
-  name: "perfetto_tools_trace_to_text_gen_cc_trace_descriptor",
-  srcs: [
-    ":perfetto_protos_perfetto_trace_descriptor",
-  ],
-  cmd: "$(location tools/gen_cc_proto_descriptor.py) --gen_dir=$(genDir) --cpp_out=$(out) $(in)",
-  out: [
-    "tools/trace_to_text/trace.descriptor.h",
-  ],
-  tool_files: [
-    "tools/gen_cc_proto_descriptor.py",
-  ],
+    name: "perfetto_tools_trace_to_text_gen_cc_trace_descriptor",
+    srcs: [
+        ":perfetto_protos_perfetto_trace_descriptor",
+    ],
+    cmd: "$(location tools/gen_cc_proto_descriptor.py) --gen_dir=$(genDir) --cpp_out=$(out) $(in)",
+    out: [
+        "tools/trace_to_text/trace.descriptor.h",
+    ],
+    tool_files: [
+        "tools/gen_cc_proto_descriptor.py",
+    ],
 }
 
 // GN: //tools/trace_to_text:pprofbuilder
 filegroup {
-  name: "perfetto_tools_trace_to_text_pprofbuilder",
-  srcs: [
-    "tools/trace_to_text/pprof_builder.cc",
-  ],
+    name: "perfetto_tools_trace_to_text_pprofbuilder",
+    srcs: [
+        "tools/trace_to_text/pprof_builder.cc",
+    ],
 }
 
 // GN: //tools/trace_to_text:utils
 filegroup {
-  name: "perfetto_tools_trace_to_text_utils",
-  srcs: [
-    "tools/trace_to_text/utils.cc",
-  ],
+    name: "perfetto_tools_trace_to_text_utils",
+    srcs: [
+        "tools/trace_to_text/utils.cc",
+    ],
 }
 
 // GN: //protos/perfetto/trace:perfetto_trace_protos
 cc_library_static {
-  name: "perfetto_trace_protos",
-  srcs: [
-    ":perfetto_protos_perfetto_common_lite_gen",
-    ":perfetto_protos_perfetto_config_android_lite_gen",
-    ":perfetto_protos_perfetto_config_ftrace_lite_gen",
-    ":perfetto_protos_perfetto_config_gpu_lite_gen",
-    ":perfetto_protos_perfetto_config_inode_file_lite_gen",
-    ":perfetto_protos_perfetto_config_interceptors_lite_gen",
-    ":perfetto_protos_perfetto_config_lite_gen",
-    ":perfetto_protos_perfetto_config_power_lite_gen",
-    ":perfetto_protos_perfetto_config_process_stats_lite_gen",
-    ":perfetto_protos_perfetto_config_profiling_lite_gen",
-    ":perfetto_protos_perfetto_config_sys_stats_lite_gen",
-    ":perfetto_protos_perfetto_config_track_event_lite_gen",
-    ":perfetto_protos_perfetto_trace_android_lite_gen",
-    ":perfetto_protos_perfetto_trace_chrome_lite_gen",
-    ":perfetto_protos_perfetto_trace_filesystem_lite_gen",
-    ":perfetto_protos_perfetto_trace_ftrace_lite_gen",
-    ":perfetto_protos_perfetto_trace_gpu_lite_gen",
-    ":perfetto_protos_perfetto_trace_interned_data_lite_gen",
-    ":perfetto_protos_perfetto_trace_minimal_lite_gen",
-    ":perfetto_protos_perfetto_trace_non_minimal_lite_gen",
-    ":perfetto_protos_perfetto_trace_perfetto_lite_gen",
-    ":perfetto_protos_perfetto_trace_power_lite_gen",
-    ":perfetto_protos_perfetto_trace_profiling_lite_gen",
-    ":perfetto_protos_perfetto_trace_ps_lite_gen",
-    ":perfetto_protos_perfetto_trace_sys_stats_lite_gen",
-    ":perfetto_protos_perfetto_trace_system_info_lite_gen",
-    ":perfetto_protos_perfetto_trace_track_event_lite_gen",
-  ],
-  shared_libs: [
-    "libprotobuf-cpp-lite",
-  ],
-  host_supported: true,
-  generated_headers: [
-    "perfetto_protos_perfetto_common_lite_gen_headers",
-    "perfetto_protos_perfetto_config_android_lite_gen_headers",
-    "perfetto_protos_perfetto_config_ftrace_lite_gen_headers",
-    "perfetto_protos_perfetto_config_gpu_lite_gen_headers",
-    "perfetto_protos_perfetto_config_inode_file_lite_gen_headers",
-    "perfetto_protos_perfetto_config_interceptors_lite_gen_headers",
-    "perfetto_protos_perfetto_config_lite_gen_headers",
-    "perfetto_protos_perfetto_config_power_lite_gen_headers",
-    "perfetto_protos_perfetto_config_process_stats_lite_gen_headers",
-    "perfetto_protos_perfetto_config_profiling_lite_gen_headers",
-    "perfetto_protos_perfetto_config_sys_stats_lite_gen_headers",
-    "perfetto_protos_perfetto_config_track_event_lite_gen_headers",
-    "perfetto_protos_perfetto_trace_android_lite_gen_headers",
-    "perfetto_protos_perfetto_trace_chrome_lite_gen_headers",
-    "perfetto_protos_perfetto_trace_filesystem_lite_gen_headers",
-    "perfetto_protos_perfetto_trace_ftrace_lite_gen_headers",
-    "perfetto_protos_perfetto_trace_gpu_lite_gen_headers",
-    "perfetto_protos_perfetto_trace_interned_data_lite_gen_headers",
-    "perfetto_protos_perfetto_trace_minimal_lite_gen_headers",
-    "perfetto_protos_perfetto_trace_non_minimal_lite_gen_headers",
-    "perfetto_protos_perfetto_trace_perfetto_lite_gen_headers",
-    "perfetto_protos_perfetto_trace_power_lite_gen_headers",
-    "perfetto_protos_perfetto_trace_profiling_lite_gen_headers",
-    "perfetto_protos_perfetto_trace_ps_lite_gen_headers",
-    "perfetto_protos_perfetto_trace_sys_stats_lite_gen_headers",
-    "perfetto_protos_perfetto_trace_system_info_lite_gen_headers",
-    "perfetto_protos_perfetto_trace_track_event_lite_gen_headers",
-  ],
-  export_generated_headers: [
-    "perfetto_protos_perfetto_common_lite_gen_headers",
-    "perfetto_protos_perfetto_config_android_lite_gen_headers",
-    "perfetto_protos_perfetto_config_ftrace_lite_gen_headers",
-    "perfetto_protos_perfetto_config_gpu_lite_gen_headers",
-    "perfetto_protos_perfetto_config_inode_file_lite_gen_headers",
-    "perfetto_protos_perfetto_config_interceptors_lite_gen_headers",
-    "perfetto_protos_perfetto_config_lite_gen_headers",
-    "perfetto_protos_perfetto_config_power_lite_gen_headers",
-    "perfetto_protos_perfetto_config_process_stats_lite_gen_headers",
-    "perfetto_protos_perfetto_config_profiling_lite_gen_headers",
-    "perfetto_protos_perfetto_config_sys_stats_lite_gen_headers",
-    "perfetto_protos_perfetto_config_track_event_lite_gen_headers",
-    "perfetto_protos_perfetto_trace_android_lite_gen_headers",
-    "perfetto_protos_perfetto_trace_chrome_lite_gen_headers",
-    "perfetto_protos_perfetto_trace_filesystem_lite_gen_headers",
-    "perfetto_protos_perfetto_trace_ftrace_lite_gen_headers",
-    "perfetto_protos_perfetto_trace_gpu_lite_gen_headers",
-    "perfetto_protos_perfetto_trace_interned_data_lite_gen_headers",
-    "perfetto_protos_perfetto_trace_minimal_lite_gen_headers",
-    "perfetto_protos_perfetto_trace_non_minimal_lite_gen_headers",
-    "perfetto_protos_perfetto_trace_perfetto_lite_gen_headers",
-    "perfetto_protos_perfetto_trace_power_lite_gen_headers",
-    "perfetto_protos_perfetto_trace_profiling_lite_gen_headers",
-    "perfetto_protos_perfetto_trace_ps_lite_gen_headers",
-    "perfetto_protos_perfetto_trace_sys_stats_lite_gen_headers",
-    "perfetto_protos_perfetto_trace_system_info_lite_gen_headers",
-    "perfetto_protos_perfetto_trace_track_event_lite_gen_headers",
-  ],
-  defaults: [
-    "perfetto_defaults",
-  ],
-  cflags: [
-    "-DGOOGLE_PROTOBUF_NO_RTTI",
-    "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
-  ],
-  apex_available: [
-    "//apex_available:platform",
-    "com.android.art",
-    "com.android.art.debug",
-  ],
-  min_sdk_version: "S",
+    name: "perfetto_trace_protos",
+    srcs: [
+        ":perfetto_protos_perfetto_common_lite_gen",
+        ":perfetto_protos_perfetto_config_android_lite_gen",
+        ":perfetto_protos_perfetto_config_ftrace_lite_gen",
+        ":perfetto_protos_perfetto_config_gpu_lite_gen",
+        ":perfetto_protos_perfetto_config_inode_file_lite_gen",
+        ":perfetto_protos_perfetto_config_interceptors_lite_gen",
+        ":perfetto_protos_perfetto_config_lite_gen",
+        ":perfetto_protos_perfetto_config_power_lite_gen",
+        ":perfetto_protos_perfetto_config_process_stats_lite_gen",
+        ":perfetto_protos_perfetto_config_profiling_lite_gen",
+        ":perfetto_protos_perfetto_config_sys_stats_lite_gen",
+        ":perfetto_protos_perfetto_config_track_event_lite_gen",
+        ":perfetto_protos_perfetto_trace_android_lite_gen",
+        ":perfetto_protos_perfetto_trace_chrome_lite_gen",
+        ":perfetto_protos_perfetto_trace_filesystem_lite_gen",
+        ":perfetto_protos_perfetto_trace_ftrace_lite_gen",
+        ":perfetto_protos_perfetto_trace_gpu_lite_gen",
+        ":perfetto_protos_perfetto_trace_interned_data_lite_gen",
+        ":perfetto_protos_perfetto_trace_minimal_lite_gen",
+        ":perfetto_protos_perfetto_trace_non_minimal_lite_gen",
+        ":perfetto_protos_perfetto_trace_perfetto_lite_gen",
+        ":perfetto_protos_perfetto_trace_power_lite_gen",
+        ":perfetto_protos_perfetto_trace_profiling_lite_gen",
+        ":perfetto_protos_perfetto_trace_ps_lite_gen",
+        ":perfetto_protos_perfetto_trace_sys_stats_lite_gen",
+        ":perfetto_protos_perfetto_trace_system_info_lite_gen",
+        ":perfetto_protos_perfetto_trace_track_event_lite_gen",
+    ],
+    shared_libs: [
+        "libprotobuf-cpp-lite",
+    ],
+    host_supported: true,
+    generated_headers: [
+        "perfetto_protos_perfetto_common_lite_gen_headers",
+        "perfetto_protos_perfetto_config_android_lite_gen_headers",
+        "perfetto_protos_perfetto_config_ftrace_lite_gen_headers",
+        "perfetto_protos_perfetto_config_gpu_lite_gen_headers",
+        "perfetto_protos_perfetto_config_inode_file_lite_gen_headers",
+        "perfetto_protos_perfetto_config_interceptors_lite_gen_headers",
+        "perfetto_protos_perfetto_config_lite_gen_headers",
+        "perfetto_protos_perfetto_config_power_lite_gen_headers",
+        "perfetto_protos_perfetto_config_process_stats_lite_gen_headers",
+        "perfetto_protos_perfetto_config_profiling_lite_gen_headers",
+        "perfetto_protos_perfetto_config_sys_stats_lite_gen_headers",
+        "perfetto_protos_perfetto_config_track_event_lite_gen_headers",
+        "perfetto_protos_perfetto_trace_android_lite_gen_headers",
+        "perfetto_protos_perfetto_trace_chrome_lite_gen_headers",
+        "perfetto_protos_perfetto_trace_filesystem_lite_gen_headers",
+        "perfetto_protos_perfetto_trace_ftrace_lite_gen_headers",
+        "perfetto_protos_perfetto_trace_gpu_lite_gen_headers",
+        "perfetto_protos_perfetto_trace_interned_data_lite_gen_headers",
+        "perfetto_protos_perfetto_trace_minimal_lite_gen_headers",
+        "perfetto_protos_perfetto_trace_non_minimal_lite_gen_headers",
+        "perfetto_protos_perfetto_trace_perfetto_lite_gen_headers",
+        "perfetto_protos_perfetto_trace_power_lite_gen_headers",
+        "perfetto_protos_perfetto_trace_profiling_lite_gen_headers",
+        "perfetto_protos_perfetto_trace_ps_lite_gen_headers",
+        "perfetto_protos_perfetto_trace_sys_stats_lite_gen_headers",
+        "perfetto_protos_perfetto_trace_system_info_lite_gen_headers",
+        "perfetto_protos_perfetto_trace_track_event_lite_gen_headers",
+    ],
+    export_generated_headers: [
+        "perfetto_protos_perfetto_common_lite_gen_headers",
+        "perfetto_protos_perfetto_config_android_lite_gen_headers",
+        "perfetto_protos_perfetto_config_ftrace_lite_gen_headers",
+        "perfetto_protos_perfetto_config_gpu_lite_gen_headers",
+        "perfetto_protos_perfetto_config_inode_file_lite_gen_headers",
+        "perfetto_protos_perfetto_config_interceptors_lite_gen_headers",
+        "perfetto_protos_perfetto_config_lite_gen_headers",
+        "perfetto_protos_perfetto_config_power_lite_gen_headers",
+        "perfetto_protos_perfetto_config_process_stats_lite_gen_headers",
+        "perfetto_protos_perfetto_config_profiling_lite_gen_headers",
+        "perfetto_protos_perfetto_config_sys_stats_lite_gen_headers",
+        "perfetto_protos_perfetto_config_track_event_lite_gen_headers",
+        "perfetto_protos_perfetto_trace_android_lite_gen_headers",
+        "perfetto_protos_perfetto_trace_chrome_lite_gen_headers",
+        "perfetto_protos_perfetto_trace_filesystem_lite_gen_headers",
+        "perfetto_protos_perfetto_trace_ftrace_lite_gen_headers",
+        "perfetto_protos_perfetto_trace_gpu_lite_gen_headers",
+        "perfetto_protos_perfetto_trace_interned_data_lite_gen_headers",
+        "perfetto_protos_perfetto_trace_minimal_lite_gen_headers",
+        "perfetto_protos_perfetto_trace_non_minimal_lite_gen_headers",
+        "perfetto_protos_perfetto_trace_perfetto_lite_gen_headers",
+        "perfetto_protos_perfetto_trace_power_lite_gen_headers",
+        "perfetto_protos_perfetto_trace_profiling_lite_gen_headers",
+        "perfetto_protos_perfetto_trace_ps_lite_gen_headers",
+        "perfetto_protos_perfetto_trace_sys_stats_lite_gen_headers",
+        "perfetto_protos_perfetto_trace_system_info_lite_gen_headers",
+        "perfetto_protos_perfetto_trace_track_event_lite_gen_headers",
+    ],
+    defaults: [
+        "perfetto_defaults",
+    ],
+    cflags: [
+        "-DGOOGLE_PROTOBUF_NO_RTTI",
+        "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
+    ],
+    apex_available: [
+        "//apex_available:platform",
+        "com.android.art",
+        "com.android.art.debug",
+    ],
+    min_sdk_version: "S",
 }
 
 // GN: //:perfetto_unittests
 cc_test {
-  name: "perfetto_unittests",
-  srcs: [
-    ":perfetto_include_perfetto_base_base",
-    ":perfetto_include_perfetto_ext_base_base",
-    ":perfetto_include_perfetto_ext_ipc_ipc",
-    ":perfetto_include_perfetto_ext_trace_processor_export_json",
-    ":perfetto_include_perfetto_ext_trace_processor_importers_memory_tracker_memory_tracker",
-    ":perfetto_include_perfetto_ext_traced_sys_stats_counters",
-    ":perfetto_include_perfetto_ext_traced_traced",
-    ":perfetto_include_perfetto_ext_tracing_core_core",
-    ":perfetto_include_perfetto_ext_tracing_ipc_ipc",
-    ":perfetto_include_perfetto_profiling_normalize",
-    ":perfetto_include_perfetto_protozero_protozero",
-    ":perfetto_include_perfetto_test_test_support",
-    ":perfetto_include_perfetto_trace_processor_basic_types",
-    ":perfetto_include_perfetto_trace_processor_storage",
-    ":perfetto_include_perfetto_trace_processor_trace_processor",
-    ":perfetto_include_perfetto_tracing_core_core",
-    ":perfetto_include_perfetto_tracing_core_forward_decls",
-    ":perfetto_include_perfetto_tracing_tracing",
-    ":perfetto_protos_perfetto_common_cpp_gen",
-    ":perfetto_protos_perfetto_common_lite_gen",
-    ":perfetto_protos_perfetto_common_zero_gen",
-    ":perfetto_protos_perfetto_config_android_cpp_gen",
-    ":perfetto_protos_perfetto_config_android_lite_gen",
-    ":perfetto_protos_perfetto_config_android_zero_gen",
-    ":perfetto_protos_perfetto_config_cpp_gen",
-    ":perfetto_protos_perfetto_config_ftrace_cpp_gen",
-    ":perfetto_protos_perfetto_config_ftrace_lite_gen",
-    ":perfetto_protos_perfetto_config_ftrace_zero_gen",
-    ":perfetto_protos_perfetto_config_gpu_cpp_gen",
-    ":perfetto_protos_perfetto_config_gpu_lite_gen",
-    ":perfetto_protos_perfetto_config_gpu_zero_gen",
-    ":perfetto_protos_perfetto_config_inode_file_cpp_gen",
-    ":perfetto_protos_perfetto_config_inode_file_lite_gen",
-    ":perfetto_protos_perfetto_config_inode_file_zero_gen",
-    ":perfetto_protos_perfetto_config_interceptors_cpp_gen",
-    ":perfetto_protos_perfetto_config_interceptors_lite_gen",
-    ":perfetto_protos_perfetto_config_interceptors_zero_gen",
-    ":perfetto_protos_perfetto_config_lite_gen",
-    ":perfetto_protos_perfetto_config_power_cpp_gen",
-    ":perfetto_protos_perfetto_config_power_lite_gen",
-    ":perfetto_protos_perfetto_config_power_zero_gen",
-    ":perfetto_protos_perfetto_config_process_stats_cpp_gen",
-    ":perfetto_protos_perfetto_config_process_stats_lite_gen",
-    ":perfetto_protos_perfetto_config_process_stats_zero_gen",
-    ":perfetto_protos_perfetto_config_profiling_cpp_gen",
-    ":perfetto_protos_perfetto_config_profiling_lite_gen",
-    ":perfetto_protos_perfetto_config_profiling_zero_gen",
-    ":perfetto_protos_perfetto_config_sys_stats_cpp_gen",
-    ":perfetto_protos_perfetto_config_sys_stats_lite_gen",
-    ":perfetto_protos_perfetto_config_sys_stats_zero_gen",
-    ":perfetto_protos_perfetto_config_track_event_cpp_gen",
-    ":perfetto_protos_perfetto_config_track_event_lite_gen",
-    ":perfetto_protos_perfetto_config_track_event_zero_gen",
-    ":perfetto_protos_perfetto_config_zero_gen",
-    ":perfetto_protos_perfetto_ipc_cpp_gen",
-    ":perfetto_protos_perfetto_ipc_ipc_gen",
-    ":perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen",
-    ":perfetto_protos_perfetto_trace_android_cpp_gen",
-    ":perfetto_protos_perfetto_trace_android_lite_gen",
-    ":perfetto_protos_perfetto_trace_android_zero_gen",
-    ":perfetto_protos_perfetto_trace_chrome_cpp_gen",
-    ":perfetto_protos_perfetto_trace_chrome_lite_gen",
-    ":perfetto_protos_perfetto_trace_chrome_zero_gen",
-    ":perfetto_protos_perfetto_trace_filesystem_cpp_gen",
-    ":perfetto_protos_perfetto_trace_filesystem_lite_gen",
-    ":perfetto_protos_perfetto_trace_filesystem_zero_gen",
-    ":perfetto_protos_perfetto_trace_ftrace_cpp_gen",
-    ":perfetto_protos_perfetto_trace_ftrace_lite_gen",
-    ":perfetto_protos_perfetto_trace_ftrace_zero_gen",
-    ":perfetto_protos_perfetto_trace_gpu_cpp_gen",
-    ":perfetto_protos_perfetto_trace_gpu_lite_gen",
-    ":perfetto_protos_perfetto_trace_gpu_zero_gen",
-    ":perfetto_protos_perfetto_trace_interned_data_cpp_gen",
-    ":perfetto_protos_perfetto_trace_interned_data_lite_gen",
-    ":perfetto_protos_perfetto_trace_interned_data_zero_gen",
-    ":perfetto_protos_perfetto_trace_minimal_cpp_gen",
-    ":perfetto_protos_perfetto_trace_minimal_lite_gen",
-    ":perfetto_protos_perfetto_trace_minimal_zero_gen",
-    ":perfetto_protos_perfetto_trace_non_minimal_cpp_gen",
-    ":perfetto_protos_perfetto_trace_non_minimal_lite_gen",
-    ":perfetto_protos_perfetto_trace_non_minimal_zero_gen",
-    ":perfetto_protos_perfetto_trace_perfetto_cpp_gen",
-    ":perfetto_protos_perfetto_trace_perfetto_lite_gen",
-    ":perfetto_protos_perfetto_trace_perfetto_zero_gen",
-    ":perfetto_protos_perfetto_trace_power_cpp_gen",
-    ":perfetto_protos_perfetto_trace_power_lite_gen",
-    ":perfetto_protos_perfetto_trace_power_zero_gen",
-    ":perfetto_protos_perfetto_trace_processor_metrics_impl_zero_gen",
-    ":perfetto_protos_perfetto_trace_processor_zero_gen",
-    ":perfetto_protos_perfetto_trace_profiling_cpp_gen",
-    ":perfetto_protos_perfetto_trace_profiling_lite_gen",
-    ":perfetto_protos_perfetto_trace_profiling_zero_gen",
-    ":perfetto_protos_perfetto_trace_ps_cpp_gen",
-    ":perfetto_protos_perfetto_trace_ps_lite_gen",
-    ":perfetto_protos_perfetto_trace_ps_zero_gen",
-    ":perfetto_protos_perfetto_trace_sys_stats_cpp_gen",
-    ":perfetto_protos_perfetto_trace_sys_stats_lite_gen",
-    ":perfetto_protos_perfetto_trace_sys_stats_zero_gen",
-    ":perfetto_protos_perfetto_trace_system_info_cpp_gen",
-    ":perfetto_protos_perfetto_trace_system_info_lite_gen",
-    ":perfetto_protos_perfetto_trace_system_info_zero_gen",
-    ":perfetto_protos_perfetto_trace_track_event_cpp_gen",
-    ":perfetto_protos_perfetto_trace_track_event_lite_gen",
-    ":perfetto_protos_perfetto_trace_track_event_zero_gen",
-    ":perfetto_src_android_internal_headers",
-    ":perfetto_src_android_internal_lazy_library_loader",
-    ":perfetto_src_android_stats_android_stats",
-    ":perfetto_src_android_stats_perfetto_atoms",
-    ":perfetto_src_base_base",
-    ":perfetto_src_base_test_support",
-    ":perfetto_src_base_unittests",
-    ":perfetto_src_base_unix_socket",
-    ":perfetto_src_ipc_client",
-    ":perfetto_src_ipc_common",
-    ":perfetto_src_ipc_host",
-    ":perfetto_src_ipc_test_messages_cpp_gen",
-    ":perfetto_src_ipc_test_messages_ipc_gen",
-    ":perfetto_src_ipc_unittests",
-    ":perfetto_src_kallsyms_kallsyms",
-    ":perfetto_src_kallsyms_unittests",
-    ":perfetto_src_perfetto_cmd_perfetto_cmd",
-    ":perfetto_src_perfetto_cmd_protos_gen",
-    ":perfetto_src_perfetto_cmd_trigger_producer",
-    ":perfetto_src_perfetto_cmd_unittests",
-    ":perfetto_src_profiling_common_callstack_trie",
-    ":perfetto_src_profiling_common_interner",
-    ":perfetto_src_profiling_common_interning_output",
-    ":perfetto_src_profiling_common_proc_utils",
-    ":perfetto_src_profiling_common_producer_support",
-    ":perfetto_src_profiling_common_profiler_guardrails",
-    ":perfetto_src_profiling_common_unittests",
-    ":perfetto_src_profiling_common_unwind_support",
-    ":perfetto_src_profiling_deobfuscator",
-    ":perfetto_src_profiling_memory_client",
-    ":perfetto_src_profiling_memory_daemon",
-    ":perfetto_src_profiling_memory_ring_buffer",
-    ":perfetto_src_profiling_memory_ring_buffer_unittests",
-    ":perfetto_src_profiling_memory_scoped_spinlock",
-    ":perfetto_src_profiling_memory_unittests",
-    ":perfetto_src_profiling_memory_wire_protocol",
-    ":perfetto_src_profiling_perf_common_types",
-    ":perfetto_src_profiling_perf_proc_descriptors",
-    ":perfetto_src_profiling_perf_producer",
-    ":perfetto_src_profiling_perf_producer_unittests",
-    ":perfetto_src_profiling_perf_regs_parsing",
-    ":perfetto_src_profiling_perf_unwinding",
-    ":perfetto_src_profiling_symbolizer_symbolizer",
-    ":perfetto_src_profiling_symbolizer_unittests",
-    ":perfetto_src_profiling_unittests",
-    ":perfetto_src_protozero_filtering_bytecode_common",
-    ":perfetto_src_protozero_filtering_bytecode_generator",
-    ":perfetto_src_protozero_filtering_bytecode_parser",
-    ":perfetto_src_protozero_filtering_filter_util",
-    ":perfetto_src_protozero_filtering_message_filter",
-    ":perfetto_src_protozero_filtering_unittests",
-    ":perfetto_src_protozero_proto_ring_buffer",
-    ":perfetto_src_protozero_protozero",
-    ":perfetto_src_protozero_testing_messages_cpp_gen",
-    ":perfetto_src_protozero_testing_messages_lite_gen",
-    ":perfetto_src_protozero_testing_messages_zero_gen",
-    ":perfetto_src_protozero_unittests",
-    ":perfetto_src_trace_processor_analysis_analysis",
-    ":perfetto_src_trace_processor_containers_containers",
-    ":perfetto_src_trace_processor_containers_unittests",
-    ":perfetto_src_trace_processor_db_db",
-    ":perfetto_src_trace_processor_db_unittests",
-    ":perfetto_src_trace_processor_export_json",
-    ":perfetto_src_trace_processor_ftrace_descriptors",
-    ":perfetto_src_trace_processor_importers_common_common",
-    ":perfetto_src_trace_processor_importers_common_unittests",
-    ":perfetto_src_trace_processor_importers_memory_tracker_graph_processor",
-    ":perfetto_src_trace_processor_lib",
-    ":perfetto_src_trace_processor_metatrace",
-    ":perfetto_src_trace_processor_metrics_lib",
-    ":perfetto_src_trace_processor_metrics_unittests",
-    ":perfetto_src_trace_processor_rpc_rpc",
-    ":perfetto_src_trace_processor_rpc_unittests",
-    ":perfetto_src_trace_processor_sqlite_sqlite",
-    ":perfetto_src_trace_processor_sqlite_unittests",
-    ":perfetto_src_trace_processor_storage_full",
-    ":perfetto_src_trace_processor_storage_minimal",
-    ":perfetto_src_trace_processor_storage_storage",
-    ":perfetto_src_trace_processor_tables_tables",
-    ":perfetto_src_trace_processor_tables_unittests",
-    ":perfetto_src_trace_processor_types_types",
-    ":perfetto_src_trace_processor_types_unittests",
-    ":perfetto_src_trace_processor_unittests",
-    ":perfetto_src_trace_processor_util_descriptors",
-    ":perfetto_src_trace_processor_util_gzip",
-    ":perfetto_src_trace_processor_util_interned_message_view",
-    ":perfetto_src_trace_processor_util_proto_to_args_parser",
-    ":perfetto_src_trace_processor_util_protozero_to_text",
-    ":perfetto_src_trace_processor_util_trace_blob_view",
-    ":perfetto_src_trace_processor_util_unittests",
-    ":perfetto_src_trace_processor_util_util",
-    ":perfetto_src_traced_probes_android_log_android_log",
-    ":perfetto_src_traced_probes_android_log_unittests",
-    ":perfetto_src_traced_probes_common_common",
-    ":perfetto_src_traced_probes_common_test_support",
-    ":perfetto_src_traced_probes_common_unittests",
-    ":perfetto_src_traced_probes_data_source",
-    ":perfetto_src_traced_probes_filesystem_filesystem",
-    ":perfetto_src_traced_probes_filesystem_unittests",
-    ":perfetto_src_traced_probes_ftrace_format_parser_format_parser",
-    ":perfetto_src_traced_probes_ftrace_format_parser_unittests",
-    ":perfetto_src_traced_probes_ftrace_ftrace",
-    ":perfetto_src_traced_probes_ftrace_ftrace_procfs",
-    ":perfetto_src_traced_probes_ftrace_test_messages_cpp_gen",
-    ":perfetto_src_traced_probes_ftrace_test_messages_lite_gen",
-    ":perfetto_src_traced_probes_ftrace_test_messages_zero_gen",
-    ":perfetto_src_traced_probes_ftrace_test_support",
-    ":perfetto_src_traced_probes_ftrace_unittests",
-    ":perfetto_src_traced_probes_initial_display_state_initial_display_state",
-    ":perfetto_src_traced_probes_initial_display_state_unittests",
-    ":perfetto_src_traced_probes_metatrace_metatrace",
-    ":perfetto_src_traced_probes_packages_list_packages_list",
-    ":perfetto_src_traced_probes_packages_list_packages_list_parser",
-    ":perfetto_src_traced_probes_packages_list_unittests",
-    ":perfetto_src_traced_probes_power_power",
-    ":perfetto_src_traced_probes_probes_src",
-    ":perfetto_src_traced_probes_ps_ps",
-    ":perfetto_src_traced_probes_ps_unittests",
-    ":perfetto_src_traced_probes_sys_stats_sys_stats",
-    ":perfetto_src_traced_probes_sys_stats_unittests",
-    ":perfetto_src_traced_probes_system_info_system_info",
-    ":perfetto_src_traced_probes_system_info_unittests",
-    ":perfetto_src_traced_probes_unittests",
-    ":perfetto_src_traced_service_service",
-    ":perfetto_src_traced_service_unittests",
-    ":perfetto_src_tracing_client_api_without_backends",
-    ":perfetto_src_tracing_common",
-    ":perfetto_src_tracing_core_core",
-    ":perfetto_src_tracing_core_service",
-    ":perfetto_src_tracing_core_test_support",
-    ":perfetto_src_tracing_core_unittests",
-    ":perfetto_src_tracing_ipc_common",
-    ":perfetto_src_tracing_ipc_consumer_consumer",
-    ":perfetto_src_tracing_ipc_producer_producer",
-    ":perfetto_src_tracing_ipc_service_service",
-    ":perfetto_src_tracing_ipc_unittests",
-    ":perfetto_src_tracing_platform_impl",
-    ":perfetto_src_tracing_test_test_support",
-    ":perfetto_src_tracing_test_tracing_integration_test",
-    ":perfetto_src_tracing_unittests",
-    ":perfetto_tools_sanitizers_unittests_sanitizers_unittests",
-  ],
-  shared_libs: [
-    "libandroidicu",
-    "libbase",
-    "liblog",
-    "libprocinfo",
-    "libprotobuf-cpp-full",
-    "libprotobuf-cpp-lite",
-    "libsqlite",
-    "libunwindstack",
-    "libutils",
-    "libz",
-  ],
-  static_libs: [
-    "libgmock",
-    "libgtest",
-  ],
-  whole_static_libs: [
-    "perfetto_gtest_logcat_printer",
-  ],
-  generated_headers: [
-    "perfetto_protos_perfetto_common_cpp_gen_headers",
-    "perfetto_protos_perfetto_common_lite_gen_headers",
-    "perfetto_protos_perfetto_common_zero_gen_headers",
-    "perfetto_protos_perfetto_config_android_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_android_lite_gen_headers",
-    "perfetto_protos_perfetto_config_android_zero_gen_headers",
-    "perfetto_protos_perfetto_config_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_ftrace_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_ftrace_lite_gen_headers",
-    "perfetto_protos_perfetto_config_ftrace_zero_gen_headers",
-    "perfetto_protos_perfetto_config_gpu_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_gpu_lite_gen_headers",
-    "perfetto_protos_perfetto_config_gpu_zero_gen_headers",
-    "perfetto_protos_perfetto_config_inode_file_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_inode_file_lite_gen_headers",
-    "perfetto_protos_perfetto_config_inode_file_zero_gen_headers",
-    "perfetto_protos_perfetto_config_interceptors_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_interceptors_lite_gen_headers",
-    "perfetto_protos_perfetto_config_interceptors_zero_gen_headers",
-    "perfetto_protos_perfetto_config_lite_gen_headers",
-    "perfetto_protos_perfetto_config_power_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_power_lite_gen_headers",
-    "perfetto_protos_perfetto_config_power_zero_gen_headers",
-    "perfetto_protos_perfetto_config_process_stats_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_process_stats_lite_gen_headers",
-    "perfetto_protos_perfetto_config_process_stats_zero_gen_headers",
-    "perfetto_protos_perfetto_config_profiling_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_profiling_lite_gen_headers",
-    "perfetto_protos_perfetto_config_profiling_zero_gen_headers",
-    "perfetto_protos_perfetto_config_sys_stats_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_sys_stats_lite_gen_headers",
-    "perfetto_protos_perfetto_config_sys_stats_zero_gen_headers",
-    "perfetto_protos_perfetto_config_track_event_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_track_event_lite_gen_headers",
-    "perfetto_protos_perfetto_config_track_event_zero_gen_headers",
-    "perfetto_protos_perfetto_config_zero_gen_headers",
-    "perfetto_protos_perfetto_ipc_cpp_gen_headers",
-    "perfetto_protos_perfetto_ipc_ipc_gen_headers",
-    "perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_android_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_android_lite_gen_headers",
-    "perfetto_protos_perfetto_trace_android_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_chrome_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_chrome_lite_gen_headers",
-    "perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_filesystem_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_filesystem_lite_gen_headers",
-    "perfetto_protos_perfetto_trace_filesystem_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_ftrace_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_ftrace_lite_gen_headers",
-    "perfetto_protos_perfetto_trace_ftrace_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_gpu_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_gpu_lite_gen_headers",
-    "perfetto_protos_perfetto_trace_gpu_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_interned_data_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_interned_data_lite_gen_headers",
-    "perfetto_protos_perfetto_trace_interned_data_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_minimal_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_minimal_lite_gen_headers",
-    "perfetto_protos_perfetto_trace_minimal_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_non_minimal_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_non_minimal_lite_gen_headers",
-    "perfetto_protos_perfetto_trace_non_minimal_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_perfetto_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_perfetto_lite_gen_headers",
-    "perfetto_protos_perfetto_trace_perfetto_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_power_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_power_lite_gen_headers",
-    "perfetto_protos_perfetto_trace_power_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_processor_metrics_impl_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_processor_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_profiling_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_profiling_lite_gen_headers",
-    "perfetto_protos_perfetto_trace_profiling_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_ps_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_ps_lite_gen_headers",
-    "perfetto_protos_perfetto_trace_ps_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_sys_stats_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_sys_stats_lite_gen_headers",
-    "perfetto_protos_perfetto_trace_sys_stats_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_system_info_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_system_info_lite_gen_headers",
-    "perfetto_protos_perfetto_trace_system_info_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_track_event_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_track_event_lite_gen_headers",
-    "perfetto_protos_perfetto_trace_track_event_zero_gen_headers",
-    "perfetto_src_base_version_gen_h",
-    "perfetto_src_ipc_test_messages_cpp_gen_headers",
-    "perfetto_src_ipc_test_messages_ipc_gen_headers",
-    "perfetto_src_perfetto_cmd_gen_cc_config_descriptor",
-    "perfetto_src_perfetto_cmd_protos_gen_headers",
-    "perfetto_src_protozero_testing_messages_cpp_gen_headers",
-    "perfetto_src_protozero_testing_messages_lite_gen_headers",
-    "perfetto_src_protozero_testing_messages_zero_gen_headers",
-    "perfetto_src_trace_processor_gen_cc_test_messages_descriptor",
-    "perfetto_src_trace_processor_importers_gen_cc_chrome_track_event_descriptor",
-    "perfetto_src_trace_processor_importers_gen_cc_config_descriptor",
-    "perfetto_src_trace_processor_importers_gen_cc_track_event_descriptor",
-    "perfetto_src_trace_processor_metrics_gen_cc_all_chrome_metrics_descriptor",
-    "perfetto_src_trace_processor_metrics_gen_cc_metrics_descriptor",
-    "perfetto_src_trace_processor_metrics_gen_merged_sql_metrics",
-    "perfetto_src_traced_probes_ftrace_test_messages_cpp_gen_headers",
-    "perfetto_src_traced_probes_ftrace_test_messages_lite_gen_headers",
-    "perfetto_src_traced_probes_ftrace_test_messages_zero_gen_headers",
-  ],
-  defaults: [
-    "perfetto_defaults",
-  ],
-  cflags: [
-    "-DGOOGLE_PROTOBUF_NO_RTTI",
-    "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
-    "-DHAVE_HIDDEN",
-  ],
-  include_dirs: [
-    "bionic/libc/kernel",
-  ],
-  header_libs: [
-    "bionic_libc_platform_headers",
-  ],
-  data: [
-    "src/profiling/memory/test/data/**/*",
-    "src/traced/probes/filesystem/testdata/**/*",
-    "src/traced/probes/ftrace/test/data/**/*",
-  ],
+    name: "perfetto_unittests",
+    srcs: [
+        ":perfetto_include_perfetto_base_base",
+        ":perfetto_include_perfetto_ext_base_base",
+        ":perfetto_include_perfetto_ext_ipc_ipc",
+        ":perfetto_include_perfetto_ext_trace_processor_export_json",
+        ":perfetto_include_perfetto_ext_trace_processor_importers_memory_tracker_memory_tracker",
+        ":perfetto_include_perfetto_ext_traced_sys_stats_counters",
+        ":perfetto_include_perfetto_ext_traced_traced",
+        ":perfetto_include_perfetto_ext_tracing_core_core",
+        ":perfetto_include_perfetto_ext_tracing_ipc_ipc",
+        ":perfetto_include_perfetto_profiling_normalize",
+        ":perfetto_include_perfetto_protozero_protozero",
+        ":perfetto_include_perfetto_test_test_support",
+        ":perfetto_include_perfetto_trace_processor_basic_types",
+        ":perfetto_include_perfetto_trace_processor_storage",
+        ":perfetto_include_perfetto_trace_processor_trace_processor",
+        ":perfetto_include_perfetto_tracing_core_core",
+        ":perfetto_include_perfetto_tracing_core_forward_decls",
+        ":perfetto_include_perfetto_tracing_tracing",
+        ":perfetto_protos_perfetto_common_cpp_gen",
+        ":perfetto_protos_perfetto_common_lite_gen",
+        ":perfetto_protos_perfetto_common_zero_gen",
+        ":perfetto_protos_perfetto_config_android_cpp_gen",
+        ":perfetto_protos_perfetto_config_android_lite_gen",
+        ":perfetto_protos_perfetto_config_android_zero_gen",
+        ":perfetto_protos_perfetto_config_cpp_gen",
+        ":perfetto_protos_perfetto_config_ftrace_cpp_gen",
+        ":perfetto_protos_perfetto_config_ftrace_lite_gen",
+        ":perfetto_protos_perfetto_config_ftrace_zero_gen",
+        ":perfetto_protos_perfetto_config_gpu_cpp_gen",
+        ":perfetto_protos_perfetto_config_gpu_lite_gen",
+        ":perfetto_protos_perfetto_config_gpu_zero_gen",
+        ":perfetto_protos_perfetto_config_inode_file_cpp_gen",
+        ":perfetto_protos_perfetto_config_inode_file_lite_gen",
+        ":perfetto_protos_perfetto_config_inode_file_zero_gen",
+        ":perfetto_protos_perfetto_config_interceptors_cpp_gen",
+        ":perfetto_protos_perfetto_config_interceptors_lite_gen",
+        ":perfetto_protos_perfetto_config_interceptors_zero_gen",
+        ":perfetto_protos_perfetto_config_lite_gen",
+        ":perfetto_protos_perfetto_config_power_cpp_gen",
+        ":perfetto_protos_perfetto_config_power_lite_gen",
+        ":perfetto_protos_perfetto_config_power_zero_gen",
+        ":perfetto_protos_perfetto_config_process_stats_cpp_gen",
+        ":perfetto_protos_perfetto_config_process_stats_lite_gen",
+        ":perfetto_protos_perfetto_config_process_stats_zero_gen",
+        ":perfetto_protos_perfetto_config_profiling_cpp_gen",
+        ":perfetto_protos_perfetto_config_profiling_lite_gen",
+        ":perfetto_protos_perfetto_config_profiling_zero_gen",
+        ":perfetto_protos_perfetto_config_sys_stats_cpp_gen",
+        ":perfetto_protos_perfetto_config_sys_stats_lite_gen",
+        ":perfetto_protos_perfetto_config_sys_stats_zero_gen",
+        ":perfetto_protos_perfetto_config_track_event_cpp_gen",
+        ":perfetto_protos_perfetto_config_track_event_lite_gen",
+        ":perfetto_protos_perfetto_config_track_event_zero_gen",
+        ":perfetto_protos_perfetto_config_zero_gen",
+        ":perfetto_protos_perfetto_ipc_cpp_gen",
+        ":perfetto_protos_perfetto_ipc_ipc_gen",
+        ":perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen",
+        ":perfetto_protos_perfetto_trace_android_cpp_gen",
+        ":perfetto_protos_perfetto_trace_android_lite_gen",
+        ":perfetto_protos_perfetto_trace_android_zero_gen",
+        ":perfetto_protos_perfetto_trace_chrome_cpp_gen",
+        ":perfetto_protos_perfetto_trace_chrome_lite_gen",
+        ":perfetto_protos_perfetto_trace_chrome_zero_gen",
+        ":perfetto_protos_perfetto_trace_filesystem_cpp_gen",
+        ":perfetto_protos_perfetto_trace_filesystem_lite_gen",
+        ":perfetto_protos_perfetto_trace_filesystem_zero_gen",
+        ":perfetto_protos_perfetto_trace_ftrace_cpp_gen",
+        ":perfetto_protos_perfetto_trace_ftrace_lite_gen",
+        ":perfetto_protos_perfetto_trace_ftrace_zero_gen",
+        ":perfetto_protos_perfetto_trace_gpu_cpp_gen",
+        ":perfetto_protos_perfetto_trace_gpu_lite_gen",
+        ":perfetto_protos_perfetto_trace_gpu_zero_gen",
+        ":perfetto_protos_perfetto_trace_interned_data_cpp_gen",
+        ":perfetto_protos_perfetto_trace_interned_data_lite_gen",
+        ":perfetto_protos_perfetto_trace_interned_data_zero_gen",
+        ":perfetto_protos_perfetto_trace_minimal_cpp_gen",
+        ":perfetto_protos_perfetto_trace_minimal_lite_gen",
+        ":perfetto_protos_perfetto_trace_minimal_zero_gen",
+        ":perfetto_protos_perfetto_trace_non_minimal_cpp_gen",
+        ":perfetto_protos_perfetto_trace_non_minimal_lite_gen",
+        ":perfetto_protos_perfetto_trace_non_minimal_zero_gen",
+        ":perfetto_protos_perfetto_trace_perfetto_cpp_gen",
+        ":perfetto_protos_perfetto_trace_perfetto_lite_gen",
+        ":perfetto_protos_perfetto_trace_perfetto_zero_gen",
+        ":perfetto_protos_perfetto_trace_power_cpp_gen",
+        ":perfetto_protos_perfetto_trace_power_lite_gen",
+        ":perfetto_protos_perfetto_trace_power_zero_gen",
+        ":perfetto_protos_perfetto_trace_processor_metrics_impl_zero_gen",
+        ":perfetto_protos_perfetto_trace_processor_zero_gen",
+        ":perfetto_protos_perfetto_trace_profiling_cpp_gen",
+        ":perfetto_protos_perfetto_trace_profiling_lite_gen",
+        ":perfetto_protos_perfetto_trace_profiling_zero_gen",
+        ":perfetto_protos_perfetto_trace_ps_cpp_gen",
+        ":perfetto_protos_perfetto_trace_ps_lite_gen",
+        ":perfetto_protos_perfetto_trace_ps_zero_gen",
+        ":perfetto_protos_perfetto_trace_sys_stats_cpp_gen",
+        ":perfetto_protos_perfetto_trace_sys_stats_lite_gen",
+        ":perfetto_protos_perfetto_trace_sys_stats_zero_gen",
+        ":perfetto_protos_perfetto_trace_system_info_cpp_gen",
+        ":perfetto_protos_perfetto_trace_system_info_lite_gen",
+        ":perfetto_protos_perfetto_trace_system_info_zero_gen",
+        ":perfetto_protos_perfetto_trace_track_event_cpp_gen",
+        ":perfetto_protos_perfetto_trace_track_event_lite_gen",
+        ":perfetto_protos_perfetto_trace_track_event_zero_gen",
+        ":perfetto_src_android_internal_headers",
+        ":perfetto_src_android_internal_lazy_library_loader",
+        ":perfetto_src_android_stats_android_stats",
+        ":perfetto_src_android_stats_perfetto_atoms",
+        ":perfetto_src_base_base",
+        ":perfetto_src_base_test_support",
+        ":perfetto_src_base_unittests",
+        ":perfetto_src_base_unix_socket",
+        ":perfetto_src_ipc_client",
+        ":perfetto_src_ipc_common",
+        ":perfetto_src_ipc_host",
+        ":perfetto_src_ipc_test_messages_cpp_gen",
+        ":perfetto_src_ipc_test_messages_ipc_gen",
+        ":perfetto_src_ipc_unittests",
+        ":perfetto_src_kallsyms_kallsyms",
+        ":perfetto_src_kallsyms_unittests",
+        ":perfetto_src_perfetto_cmd_perfetto_cmd",
+        ":perfetto_src_perfetto_cmd_protos_gen",
+        ":perfetto_src_perfetto_cmd_trigger_producer",
+        ":perfetto_src_perfetto_cmd_unittests",
+        ":perfetto_src_profiling_common_callstack_trie",
+        ":perfetto_src_profiling_common_interner",
+        ":perfetto_src_profiling_common_interning_output",
+        ":perfetto_src_profiling_common_proc_utils",
+        ":perfetto_src_profiling_common_producer_support",
+        ":perfetto_src_profiling_common_profiler_guardrails",
+        ":perfetto_src_profiling_common_unittests",
+        ":perfetto_src_profiling_common_unwind_support",
+        ":perfetto_src_profiling_deobfuscator",
+        ":perfetto_src_profiling_memory_client",
+        ":perfetto_src_profiling_memory_daemon",
+        ":perfetto_src_profiling_memory_ring_buffer",
+        ":perfetto_src_profiling_memory_ring_buffer_unittests",
+        ":perfetto_src_profiling_memory_scoped_spinlock",
+        ":perfetto_src_profiling_memory_unittests",
+        ":perfetto_src_profiling_memory_wire_protocol",
+        ":perfetto_src_profiling_perf_common_types",
+        ":perfetto_src_profiling_perf_proc_descriptors",
+        ":perfetto_src_profiling_perf_producer",
+        ":perfetto_src_profiling_perf_producer_unittests",
+        ":perfetto_src_profiling_perf_regs_parsing",
+        ":perfetto_src_profiling_perf_unwinding",
+        ":perfetto_src_profiling_symbolizer_symbolizer",
+        ":perfetto_src_profiling_symbolizer_unittests",
+        ":perfetto_src_profiling_unittests",
+        ":perfetto_src_protozero_filtering_bytecode_common",
+        ":perfetto_src_protozero_filtering_bytecode_generator",
+        ":perfetto_src_protozero_filtering_bytecode_parser",
+        ":perfetto_src_protozero_filtering_filter_util",
+        ":perfetto_src_protozero_filtering_message_filter",
+        ":perfetto_src_protozero_filtering_unittests",
+        ":perfetto_src_protozero_proto_ring_buffer",
+        ":perfetto_src_protozero_protozero",
+        ":perfetto_src_protozero_testing_messages_cpp_gen",
+        ":perfetto_src_protozero_testing_messages_lite_gen",
+        ":perfetto_src_protozero_testing_messages_zero_gen",
+        ":perfetto_src_protozero_unittests",
+        ":perfetto_src_trace_processor_analysis_analysis",
+        ":perfetto_src_trace_processor_containers_containers",
+        ":perfetto_src_trace_processor_containers_unittests",
+        ":perfetto_src_trace_processor_db_db",
+        ":perfetto_src_trace_processor_db_unittests",
+        ":perfetto_src_trace_processor_export_json",
+        ":perfetto_src_trace_processor_ftrace_descriptors",
+        ":perfetto_src_trace_processor_importers_common_common",
+        ":perfetto_src_trace_processor_importers_common_unittests",
+        ":perfetto_src_trace_processor_importers_memory_tracker_graph_processor",
+        ":perfetto_src_trace_processor_lib",
+        ":perfetto_src_trace_processor_metatrace",
+        ":perfetto_src_trace_processor_metrics_lib",
+        ":perfetto_src_trace_processor_metrics_unittests",
+        ":perfetto_src_trace_processor_rpc_rpc",
+        ":perfetto_src_trace_processor_rpc_unittests",
+        ":perfetto_src_trace_processor_sqlite_sqlite",
+        ":perfetto_src_trace_processor_sqlite_unittests",
+        ":perfetto_src_trace_processor_storage_full",
+        ":perfetto_src_trace_processor_storage_minimal",
+        ":perfetto_src_trace_processor_storage_storage",
+        ":perfetto_src_trace_processor_tables_tables",
+        ":perfetto_src_trace_processor_tables_unittests",
+        ":perfetto_src_trace_processor_types_types",
+        ":perfetto_src_trace_processor_types_unittests",
+        ":perfetto_src_trace_processor_unittests",
+        ":perfetto_src_trace_processor_util_descriptors",
+        ":perfetto_src_trace_processor_util_gzip",
+        ":perfetto_src_trace_processor_util_interned_message_view",
+        ":perfetto_src_trace_processor_util_proto_to_args_parser",
+        ":perfetto_src_trace_processor_util_protozero_to_text",
+        ":perfetto_src_trace_processor_util_trace_blob_view",
+        ":perfetto_src_trace_processor_util_unittests",
+        ":perfetto_src_trace_processor_util_util",
+        ":perfetto_src_traced_probes_android_log_android_log",
+        ":perfetto_src_traced_probes_android_log_unittests",
+        ":perfetto_src_traced_probes_common_common",
+        ":perfetto_src_traced_probes_common_test_support",
+        ":perfetto_src_traced_probes_common_unittests",
+        ":perfetto_src_traced_probes_data_source",
+        ":perfetto_src_traced_probes_filesystem_filesystem",
+        ":perfetto_src_traced_probes_filesystem_unittests",
+        ":perfetto_src_traced_probes_ftrace_format_parser_format_parser",
+        ":perfetto_src_traced_probes_ftrace_format_parser_unittests",
+        ":perfetto_src_traced_probes_ftrace_ftrace",
+        ":perfetto_src_traced_probes_ftrace_ftrace_procfs",
+        ":perfetto_src_traced_probes_ftrace_test_messages_cpp_gen",
+        ":perfetto_src_traced_probes_ftrace_test_messages_lite_gen",
+        ":perfetto_src_traced_probes_ftrace_test_messages_zero_gen",
+        ":perfetto_src_traced_probes_ftrace_test_support",
+        ":perfetto_src_traced_probes_ftrace_unittests",
+        ":perfetto_src_traced_probes_initial_display_state_initial_display_state",
+        ":perfetto_src_traced_probes_initial_display_state_unittests",
+        ":perfetto_src_traced_probes_metatrace_metatrace",
+        ":perfetto_src_traced_probes_packages_list_packages_list",
+        ":perfetto_src_traced_probes_packages_list_packages_list_parser",
+        ":perfetto_src_traced_probes_packages_list_unittests",
+        ":perfetto_src_traced_probes_power_power",
+        ":perfetto_src_traced_probes_probes_src",
+        ":perfetto_src_traced_probes_ps_ps",
+        ":perfetto_src_traced_probes_ps_unittests",
+        ":perfetto_src_traced_probes_sys_stats_sys_stats",
+        ":perfetto_src_traced_probes_sys_stats_unittests",
+        ":perfetto_src_traced_probes_system_info_system_info",
+        ":perfetto_src_traced_probes_system_info_unittests",
+        ":perfetto_src_traced_probes_unittests",
+        ":perfetto_src_traced_service_service",
+        ":perfetto_src_traced_service_unittests",
+        ":perfetto_src_tracing_client_api_without_backends",
+        ":perfetto_src_tracing_common",
+        ":perfetto_src_tracing_core_core",
+        ":perfetto_src_tracing_core_service",
+        ":perfetto_src_tracing_core_test_support",
+        ":perfetto_src_tracing_core_unittests",
+        ":perfetto_src_tracing_ipc_common",
+        ":perfetto_src_tracing_ipc_consumer_consumer",
+        ":perfetto_src_tracing_ipc_producer_producer",
+        ":perfetto_src_tracing_ipc_service_service",
+        ":perfetto_src_tracing_ipc_unittests",
+        ":perfetto_src_tracing_platform_impl",
+        ":perfetto_src_tracing_test_test_support",
+        ":perfetto_src_tracing_test_tracing_integration_test",
+        ":perfetto_src_tracing_unittests",
+        ":perfetto_tools_sanitizers_unittests_sanitizers_unittests",
+    ],
+    shared_libs: [
+        "libandroidicu",
+        "libbase",
+        "liblog",
+        "libprocinfo",
+        "libprotobuf-cpp-full",
+        "libprotobuf-cpp-lite",
+        "libsqlite",
+        "libunwindstack",
+        "libutils",
+        "libz",
+    ],
+    static_libs: [
+        "libgmock",
+        "libgtest",
+    ],
+    whole_static_libs: [
+        "perfetto_gtest_logcat_printer",
+    ],
+    generated_headers: [
+        "perfetto_protos_perfetto_common_cpp_gen_headers",
+        "perfetto_protos_perfetto_common_lite_gen_headers",
+        "perfetto_protos_perfetto_common_zero_gen_headers",
+        "perfetto_protos_perfetto_config_android_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_android_lite_gen_headers",
+        "perfetto_protos_perfetto_config_android_zero_gen_headers",
+        "perfetto_protos_perfetto_config_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_ftrace_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_ftrace_lite_gen_headers",
+        "perfetto_protos_perfetto_config_ftrace_zero_gen_headers",
+        "perfetto_protos_perfetto_config_gpu_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_gpu_lite_gen_headers",
+        "perfetto_protos_perfetto_config_gpu_zero_gen_headers",
+        "perfetto_protos_perfetto_config_inode_file_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_inode_file_lite_gen_headers",
+        "perfetto_protos_perfetto_config_inode_file_zero_gen_headers",
+        "perfetto_protos_perfetto_config_interceptors_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_interceptors_lite_gen_headers",
+        "perfetto_protos_perfetto_config_interceptors_zero_gen_headers",
+        "perfetto_protos_perfetto_config_lite_gen_headers",
+        "perfetto_protos_perfetto_config_power_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_power_lite_gen_headers",
+        "perfetto_protos_perfetto_config_power_zero_gen_headers",
+        "perfetto_protos_perfetto_config_process_stats_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_process_stats_lite_gen_headers",
+        "perfetto_protos_perfetto_config_process_stats_zero_gen_headers",
+        "perfetto_protos_perfetto_config_profiling_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_profiling_lite_gen_headers",
+        "perfetto_protos_perfetto_config_profiling_zero_gen_headers",
+        "perfetto_protos_perfetto_config_sys_stats_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_sys_stats_lite_gen_headers",
+        "perfetto_protos_perfetto_config_sys_stats_zero_gen_headers",
+        "perfetto_protos_perfetto_config_track_event_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_track_event_lite_gen_headers",
+        "perfetto_protos_perfetto_config_track_event_zero_gen_headers",
+        "perfetto_protos_perfetto_config_zero_gen_headers",
+        "perfetto_protos_perfetto_ipc_cpp_gen_headers",
+        "perfetto_protos_perfetto_ipc_ipc_gen_headers",
+        "perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_android_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_android_lite_gen_headers",
+        "perfetto_protos_perfetto_trace_android_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_chrome_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_chrome_lite_gen_headers",
+        "perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_filesystem_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_filesystem_lite_gen_headers",
+        "perfetto_protos_perfetto_trace_filesystem_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_ftrace_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_ftrace_lite_gen_headers",
+        "perfetto_protos_perfetto_trace_ftrace_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_gpu_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_gpu_lite_gen_headers",
+        "perfetto_protos_perfetto_trace_gpu_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_interned_data_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_interned_data_lite_gen_headers",
+        "perfetto_protos_perfetto_trace_interned_data_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_minimal_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_minimal_lite_gen_headers",
+        "perfetto_protos_perfetto_trace_minimal_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_non_minimal_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_non_minimal_lite_gen_headers",
+        "perfetto_protos_perfetto_trace_non_minimal_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_perfetto_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_perfetto_lite_gen_headers",
+        "perfetto_protos_perfetto_trace_perfetto_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_power_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_power_lite_gen_headers",
+        "perfetto_protos_perfetto_trace_power_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_processor_metrics_impl_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_processor_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_profiling_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_profiling_lite_gen_headers",
+        "perfetto_protos_perfetto_trace_profiling_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_ps_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_ps_lite_gen_headers",
+        "perfetto_protos_perfetto_trace_ps_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_sys_stats_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_sys_stats_lite_gen_headers",
+        "perfetto_protos_perfetto_trace_sys_stats_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_system_info_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_system_info_lite_gen_headers",
+        "perfetto_protos_perfetto_trace_system_info_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_track_event_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_track_event_lite_gen_headers",
+        "perfetto_protos_perfetto_trace_track_event_zero_gen_headers",
+        "perfetto_src_base_version_gen_h",
+        "perfetto_src_ipc_test_messages_cpp_gen_headers",
+        "perfetto_src_ipc_test_messages_ipc_gen_headers",
+        "perfetto_src_perfetto_cmd_gen_cc_config_descriptor",
+        "perfetto_src_perfetto_cmd_protos_gen_headers",
+        "perfetto_src_protozero_testing_messages_cpp_gen_headers",
+        "perfetto_src_protozero_testing_messages_lite_gen_headers",
+        "perfetto_src_protozero_testing_messages_zero_gen_headers",
+        "perfetto_src_trace_processor_gen_cc_test_messages_descriptor",
+        "perfetto_src_trace_processor_importers_gen_cc_chrome_track_event_descriptor",
+        "perfetto_src_trace_processor_importers_gen_cc_config_descriptor",
+        "perfetto_src_trace_processor_importers_gen_cc_track_event_descriptor",
+        "perfetto_src_trace_processor_metrics_gen_cc_all_chrome_metrics_descriptor",
+        "perfetto_src_trace_processor_metrics_gen_cc_metrics_descriptor",
+        "perfetto_src_trace_processor_metrics_gen_merged_sql_metrics",
+        "perfetto_src_traced_probes_ftrace_test_messages_cpp_gen_headers",
+        "perfetto_src_traced_probes_ftrace_test_messages_lite_gen_headers",
+        "perfetto_src_traced_probes_ftrace_test_messages_zero_gen_headers",
+    ],
+    defaults: [
+        "perfetto_defaults",
+    ],
+    cflags: [
+        "-DGOOGLE_PROTOBUF_NO_RTTI",
+        "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
+        "-DHAVE_HIDDEN",
+    ],
+    include_dirs: [
+        "bionic/libc/kernel",
+    ],
+    header_libs: [
+        "bionic_libc_platform_headers",
+    ],
+    data: [
+        "src/profiling/memory/test/data/**/*",
+        "src/traced/probes/filesystem/testdata/**/*",
+        "src/traced/probes/ftrace/test/data/**/*",
+    ],
+    target: {
+        musl: {
+            static_libs: [
+                "libfts",
+            ],
+        },
+    },
 }
 
 // GN: //src/protozero/protoc_plugin:protozero_plugin
 cc_binary_host {
-  name: "protozero_plugin",
-  srcs: [
-    ":perfetto_include_perfetto_base_base",
-    ":perfetto_include_perfetto_ext_base_base",
-    ":perfetto_src_base_base",
-    "src/protozero/protoc_plugin/protozero_plugin.cc",
-  ],
-  static_libs: [
-    "libprotoc",
-  ],
-  generated_headers: [
-    "perfetto_src_base_version_gen_h",
-  ],
-  defaults: [
-    "perfetto_defaults",
-  ],
-  cflags: [
-    "-DGOOGLE_PROTOBUF_NO_RTTI",
-    "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
-  ],
+    name: "protozero_plugin",
+    srcs: [
+        ":perfetto_include_perfetto_base_base",
+        ":perfetto_include_perfetto_ext_base_base",
+        ":perfetto_src_base_base",
+        "src/protozero/protoc_plugin/protozero_plugin.cc",
+    ],
+    static_libs: [
+        "libprotoc",
+    ],
+    generated_headers: [
+        "perfetto_src_base_version_gen_h",
+    ],
+    defaults: [
+        "perfetto_defaults",
+    ],
+    cflags: [
+        "-DGOOGLE_PROTOBUF_NO_RTTI",
+        "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
+    ],
 }
 
 // GN: //src/trace_processor:trace_processor_shell
 cc_binary {
-  name: "trace_processor_shell",
-  srcs: [
-    ":perfetto_include_perfetto_base_base",
-    ":perfetto_include_perfetto_ext_base_base",
-    ":perfetto_include_perfetto_ext_trace_processor_export_json",
-    ":perfetto_include_perfetto_ext_trace_processor_importers_memory_tracker_memory_tracker",
-    ":perfetto_include_perfetto_ext_traced_sys_stats_counters",
-    ":perfetto_include_perfetto_protozero_protozero",
-    ":perfetto_include_perfetto_trace_processor_basic_types",
-    ":perfetto_include_perfetto_trace_processor_storage",
-    ":perfetto_include_perfetto_trace_processor_trace_processor",
-    ":perfetto_protos_perfetto_common_zero_gen",
-    ":perfetto_protos_perfetto_config_android_zero_gen",
-    ":perfetto_protos_perfetto_config_ftrace_zero_gen",
-    ":perfetto_protos_perfetto_config_gpu_zero_gen",
-    ":perfetto_protos_perfetto_config_inode_file_zero_gen",
-    ":perfetto_protos_perfetto_config_interceptors_zero_gen",
-    ":perfetto_protos_perfetto_config_power_zero_gen",
-    ":perfetto_protos_perfetto_config_process_stats_zero_gen",
-    ":perfetto_protos_perfetto_config_profiling_zero_gen",
-    ":perfetto_protos_perfetto_config_sys_stats_zero_gen",
-    ":perfetto_protos_perfetto_config_track_event_zero_gen",
-    ":perfetto_protos_perfetto_config_zero_gen",
-    ":perfetto_protos_perfetto_trace_android_zero_gen",
-    ":perfetto_protos_perfetto_trace_chrome_zero_gen",
-    ":perfetto_protos_perfetto_trace_filesystem_zero_gen",
-    ":perfetto_protos_perfetto_trace_ftrace_zero_gen",
-    ":perfetto_protos_perfetto_trace_gpu_zero_gen",
-    ":perfetto_protos_perfetto_trace_interned_data_zero_gen",
-    ":perfetto_protos_perfetto_trace_minimal_zero_gen",
-    ":perfetto_protos_perfetto_trace_non_minimal_zero_gen",
-    ":perfetto_protos_perfetto_trace_perfetto_zero_gen",
-    ":perfetto_protos_perfetto_trace_power_zero_gen",
-    ":perfetto_protos_perfetto_trace_processor_metrics_impl_zero_gen",
-    ":perfetto_protos_perfetto_trace_processor_zero_gen",
-    ":perfetto_protos_perfetto_trace_profiling_zero_gen",
-    ":perfetto_protos_perfetto_trace_ps_zero_gen",
-    ":perfetto_protos_perfetto_trace_sys_stats_zero_gen",
-    ":perfetto_protos_perfetto_trace_system_info_zero_gen",
-    ":perfetto_protos_perfetto_trace_track_event_zero_gen",
-    ":perfetto_src_base_base",
-    ":perfetto_src_base_unix_socket",
-    ":perfetto_src_profiling_deobfuscator",
-    ":perfetto_src_profiling_symbolizer_symbolize_database",
-    ":perfetto_src_profiling_symbolizer_symbolizer",
-    ":perfetto_src_protozero_proto_ring_buffer",
-    ":perfetto_src_protozero_protozero",
-    ":perfetto_src_trace_processor_analysis_analysis",
-    ":perfetto_src_trace_processor_containers_containers",
-    ":perfetto_src_trace_processor_db_db",
-    ":perfetto_src_trace_processor_export_json",
-    ":perfetto_src_trace_processor_ftrace_descriptors",
-    ":perfetto_src_trace_processor_importers_common_common",
-    ":perfetto_src_trace_processor_importers_memory_tracker_graph_processor",
-    ":perfetto_src_trace_processor_lib",
-    ":perfetto_src_trace_processor_metatrace",
-    ":perfetto_src_trace_processor_metrics_lib",
-    ":perfetto_src_trace_processor_rpc_httpd",
-    ":perfetto_src_trace_processor_rpc_rpc",
-    ":perfetto_src_trace_processor_sqlite_sqlite",
-    ":perfetto_src_trace_processor_storage_full",
-    ":perfetto_src_trace_processor_storage_minimal",
-    ":perfetto_src_trace_processor_storage_storage",
-    ":perfetto_src_trace_processor_tables_tables",
-    ":perfetto_src_trace_processor_types_types",
-    ":perfetto_src_trace_processor_util_descriptors",
-    ":perfetto_src_trace_processor_util_gzip",
-    ":perfetto_src_trace_processor_util_interned_message_view",
-    ":perfetto_src_trace_processor_util_proto_to_args_parser",
-    ":perfetto_src_trace_processor_util_protozero_to_text",
-    ":perfetto_src_trace_processor_util_trace_blob_view",
-    ":perfetto_src_trace_processor_util_util",
-    "src/trace_processor/trace_processor_shell.cc",
-    "src/trace_processor/util/proto_to_json.cc",
-  ],
-  host_supported: true,
-  generated_headers: [
-    "perfetto_protos_perfetto_common_zero_gen_headers",
-    "perfetto_protos_perfetto_config_android_zero_gen_headers",
-    "perfetto_protos_perfetto_config_ftrace_zero_gen_headers",
-    "perfetto_protos_perfetto_config_gpu_zero_gen_headers",
-    "perfetto_protos_perfetto_config_inode_file_zero_gen_headers",
-    "perfetto_protos_perfetto_config_interceptors_zero_gen_headers",
-    "perfetto_protos_perfetto_config_power_zero_gen_headers",
-    "perfetto_protos_perfetto_config_process_stats_zero_gen_headers",
-    "perfetto_protos_perfetto_config_profiling_zero_gen_headers",
-    "perfetto_protos_perfetto_config_sys_stats_zero_gen_headers",
-    "perfetto_protos_perfetto_config_track_event_zero_gen_headers",
-    "perfetto_protos_perfetto_config_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_android_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_filesystem_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_ftrace_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_gpu_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_interned_data_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_minimal_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_non_minimal_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_perfetto_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_power_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_processor_metrics_impl_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_processor_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_profiling_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_ps_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_sys_stats_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_system_info_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_track_event_zero_gen_headers",
-    "perfetto_src_base_version_gen_h",
-    "perfetto_src_trace_processor_importers_gen_cc_chrome_track_event_descriptor",
-    "perfetto_src_trace_processor_importers_gen_cc_config_descriptor",
-    "perfetto_src_trace_processor_importers_gen_cc_track_event_descriptor",
-    "perfetto_src_trace_processor_metrics_gen_cc_all_chrome_metrics_descriptor",
-    "perfetto_src_trace_processor_metrics_gen_cc_metrics_descriptor",
-    "perfetto_src_trace_processor_metrics_gen_merged_sql_metrics",
-  ],
-  defaults: [
-    "perfetto_defaults",
-  ],
-  cflags: [
-    "-DGOOGLE_PROTOBUF_NO_RTTI",
-    "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
-    "-DHAVE_HIDDEN",
-  ],
-  strip: {
-    all: true,
-  },
-  target: {
-    android: {
-      shared_libs: [
-        "libandroidicu",
-        "liblog",
-        "libprotobuf-cpp-full",
-        "libsqlite",
-        "libutils",
-        "libz",
-      ],
+    name: "trace_processor_shell",
+    srcs: [
+        ":perfetto_include_perfetto_base_base",
+        ":perfetto_include_perfetto_ext_base_base",
+        ":perfetto_include_perfetto_ext_trace_processor_export_json",
+        ":perfetto_include_perfetto_ext_trace_processor_importers_memory_tracker_memory_tracker",
+        ":perfetto_include_perfetto_ext_traced_sys_stats_counters",
+        ":perfetto_include_perfetto_protozero_protozero",
+        ":perfetto_include_perfetto_trace_processor_basic_types",
+        ":perfetto_include_perfetto_trace_processor_storage",
+        ":perfetto_include_perfetto_trace_processor_trace_processor",
+        ":perfetto_protos_perfetto_common_zero_gen",
+        ":perfetto_protos_perfetto_config_android_zero_gen",
+        ":perfetto_protos_perfetto_config_ftrace_zero_gen",
+        ":perfetto_protos_perfetto_config_gpu_zero_gen",
+        ":perfetto_protos_perfetto_config_inode_file_zero_gen",
+        ":perfetto_protos_perfetto_config_interceptors_zero_gen",
+        ":perfetto_protos_perfetto_config_power_zero_gen",
+        ":perfetto_protos_perfetto_config_process_stats_zero_gen",
+        ":perfetto_protos_perfetto_config_profiling_zero_gen",
+        ":perfetto_protos_perfetto_config_sys_stats_zero_gen",
+        ":perfetto_protos_perfetto_config_track_event_zero_gen",
+        ":perfetto_protos_perfetto_config_zero_gen",
+        ":perfetto_protos_perfetto_trace_android_zero_gen",
+        ":perfetto_protos_perfetto_trace_chrome_zero_gen",
+        ":perfetto_protos_perfetto_trace_filesystem_zero_gen",
+        ":perfetto_protos_perfetto_trace_ftrace_zero_gen",
+        ":perfetto_protos_perfetto_trace_gpu_zero_gen",
+        ":perfetto_protos_perfetto_trace_interned_data_zero_gen",
+        ":perfetto_protos_perfetto_trace_minimal_zero_gen",
+        ":perfetto_protos_perfetto_trace_non_minimal_zero_gen",
+        ":perfetto_protos_perfetto_trace_perfetto_zero_gen",
+        ":perfetto_protos_perfetto_trace_power_zero_gen",
+        ":perfetto_protos_perfetto_trace_processor_metrics_impl_zero_gen",
+        ":perfetto_protos_perfetto_trace_processor_zero_gen",
+        ":perfetto_protos_perfetto_trace_profiling_zero_gen",
+        ":perfetto_protos_perfetto_trace_ps_zero_gen",
+        ":perfetto_protos_perfetto_trace_sys_stats_zero_gen",
+        ":perfetto_protos_perfetto_trace_system_info_zero_gen",
+        ":perfetto_protos_perfetto_trace_track_event_zero_gen",
+        ":perfetto_src_base_base",
+        ":perfetto_src_base_unix_socket",
+        ":perfetto_src_profiling_deobfuscator",
+        ":perfetto_src_profiling_symbolizer_symbolize_database",
+        ":perfetto_src_profiling_symbolizer_symbolizer",
+        ":perfetto_src_protozero_proto_ring_buffer",
+        ":perfetto_src_protozero_protozero",
+        ":perfetto_src_trace_processor_analysis_analysis",
+        ":perfetto_src_trace_processor_containers_containers",
+        ":perfetto_src_trace_processor_db_db",
+        ":perfetto_src_trace_processor_export_json",
+        ":perfetto_src_trace_processor_ftrace_descriptors",
+        ":perfetto_src_trace_processor_importers_common_common",
+        ":perfetto_src_trace_processor_importers_memory_tracker_graph_processor",
+        ":perfetto_src_trace_processor_lib",
+        ":perfetto_src_trace_processor_metatrace",
+        ":perfetto_src_trace_processor_metrics_lib",
+        ":perfetto_src_trace_processor_rpc_httpd",
+        ":perfetto_src_trace_processor_rpc_rpc",
+        ":perfetto_src_trace_processor_sqlite_sqlite",
+        ":perfetto_src_trace_processor_storage_full",
+        ":perfetto_src_trace_processor_storage_minimal",
+        ":perfetto_src_trace_processor_storage_storage",
+        ":perfetto_src_trace_processor_tables_tables",
+        ":perfetto_src_trace_processor_types_types",
+        ":perfetto_src_trace_processor_util_descriptors",
+        ":perfetto_src_trace_processor_util_gzip",
+        ":perfetto_src_trace_processor_util_interned_message_view",
+        ":perfetto_src_trace_processor_util_proto_to_args_parser",
+        ":perfetto_src_trace_processor_util_protozero_to_text",
+        ":perfetto_src_trace_processor_util_trace_blob_view",
+        ":perfetto_src_trace_processor_util_util",
+        "src/trace_processor/trace_processor_shell.cc",
+        "src/trace_processor/util/proto_to_json.cc",
+    ],
+    host_supported: true,
+    generated_headers: [
+        "perfetto_protos_perfetto_common_zero_gen_headers",
+        "perfetto_protos_perfetto_config_android_zero_gen_headers",
+        "perfetto_protos_perfetto_config_ftrace_zero_gen_headers",
+        "perfetto_protos_perfetto_config_gpu_zero_gen_headers",
+        "perfetto_protos_perfetto_config_inode_file_zero_gen_headers",
+        "perfetto_protos_perfetto_config_interceptors_zero_gen_headers",
+        "perfetto_protos_perfetto_config_power_zero_gen_headers",
+        "perfetto_protos_perfetto_config_process_stats_zero_gen_headers",
+        "perfetto_protos_perfetto_config_profiling_zero_gen_headers",
+        "perfetto_protos_perfetto_config_sys_stats_zero_gen_headers",
+        "perfetto_protos_perfetto_config_track_event_zero_gen_headers",
+        "perfetto_protos_perfetto_config_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_android_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_filesystem_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_ftrace_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_gpu_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_interned_data_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_minimal_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_non_minimal_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_perfetto_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_power_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_processor_metrics_impl_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_processor_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_profiling_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_ps_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_sys_stats_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_system_info_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_track_event_zero_gen_headers",
+        "perfetto_src_base_version_gen_h",
+        "perfetto_src_trace_processor_importers_gen_cc_chrome_track_event_descriptor",
+        "perfetto_src_trace_processor_importers_gen_cc_config_descriptor",
+        "perfetto_src_trace_processor_importers_gen_cc_track_event_descriptor",
+        "perfetto_src_trace_processor_metrics_gen_cc_all_chrome_metrics_descriptor",
+        "perfetto_src_trace_processor_metrics_gen_cc_metrics_descriptor",
+        "perfetto_src_trace_processor_metrics_gen_merged_sql_metrics",
+    ],
+    defaults: [
+        "perfetto_defaults",
+    ],
+    cflags: [
+        "-DGOOGLE_PROTOBUF_NO_RTTI",
+        "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
+        "-DHAVE_HIDDEN",
+    ],
+    strip: {
+        all: true,
     },
-    host: {
-      static_libs: [
-        "libprotobuf-cpp-full",
-        "libsqlite",
-        "libz",
-      ],
-      stl: "libc++_static",
-      dist: {
-        targets: [
-          "sdk_repo",
-        ],
-      },
+    target: {
+        android: {
+            shared_libs: [
+                "libandroidicu",
+                "liblog",
+                "libprotobuf-cpp-full",
+                "libsqlite",
+                "libutils",
+                "libz",
+            ],
+        },
+        host: {
+            static_libs: [
+                "libprotobuf-cpp-full",
+                "libsqlite",
+                "libz",
+            ],
+            stl: "libc++_static",
+            dist: {
+                targets: [
+                    "sdk_repo",
+                ],
+            },
+        },
+        musl: {
+            static_libs: [
+                "libfts",
+            ],
+        },
     },
-  },
 }
 
 // GN: //tools/trace_to_text:trace_to_text
 cc_binary_host {
-  name: "trace_to_text",
-  srcs: [
-    ":perfetto_include_perfetto_base_base",
-    ":perfetto_include_perfetto_ext_base_base",
-    ":perfetto_include_perfetto_ext_trace_processor_export_json",
-    ":perfetto_include_perfetto_ext_trace_processor_importers_memory_tracker_memory_tracker",
-    ":perfetto_include_perfetto_ext_traced_sys_stats_counters",
-    ":perfetto_include_perfetto_profiling_pprof_builder",
-    ":perfetto_include_perfetto_protozero_protozero",
-    ":perfetto_include_perfetto_trace_processor_basic_types",
-    ":perfetto_include_perfetto_trace_processor_storage",
-    ":perfetto_include_perfetto_trace_processor_trace_processor",
-    ":perfetto_protos_perfetto_common_zero_gen",
-    ":perfetto_protos_perfetto_config_android_zero_gen",
-    ":perfetto_protos_perfetto_config_ftrace_zero_gen",
-    ":perfetto_protos_perfetto_config_gpu_zero_gen",
-    ":perfetto_protos_perfetto_config_inode_file_zero_gen",
-    ":perfetto_protos_perfetto_config_interceptors_zero_gen",
-    ":perfetto_protos_perfetto_config_power_zero_gen",
-    ":perfetto_protos_perfetto_config_process_stats_zero_gen",
-    ":perfetto_protos_perfetto_config_profiling_zero_gen",
-    ":perfetto_protos_perfetto_config_sys_stats_zero_gen",
-    ":perfetto_protos_perfetto_config_track_event_zero_gen",
-    ":perfetto_protos_perfetto_config_zero_gen",
-    ":perfetto_protos_perfetto_trace_android_zero_gen",
-    ":perfetto_protos_perfetto_trace_chrome_zero_gen",
-    ":perfetto_protos_perfetto_trace_filesystem_zero_gen",
-    ":perfetto_protos_perfetto_trace_ftrace_zero_gen",
-    ":perfetto_protos_perfetto_trace_gpu_zero_gen",
-    ":perfetto_protos_perfetto_trace_interned_data_zero_gen",
-    ":perfetto_protos_perfetto_trace_minimal_zero_gen",
-    ":perfetto_protos_perfetto_trace_non_minimal_zero_gen",
-    ":perfetto_protos_perfetto_trace_perfetto_zero_gen",
-    ":perfetto_protos_perfetto_trace_power_zero_gen",
-    ":perfetto_protos_perfetto_trace_processor_metrics_impl_zero_gen",
-    ":perfetto_protos_perfetto_trace_processor_zero_gen",
-    ":perfetto_protos_perfetto_trace_profiling_zero_gen",
-    ":perfetto_protos_perfetto_trace_ps_zero_gen",
-    ":perfetto_protos_perfetto_trace_sys_stats_zero_gen",
-    ":perfetto_protos_perfetto_trace_system_info_zero_gen",
-    ":perfetto_protos_perfetto_trace_track_event_zero_gen",
-    ":perfetto_protos_third_party_pprof_zero_gen",
-    ":perfetto_src_base_base",
-    ":perfetto_src_profiling_deobfuscator",
-    ":perfetto_src_profiling_symbolizer_symbolize_database",
-    ":perfetto_src_profiling_symbolizer_symbolizer",
-    ":perfetto_src_protozero_proto_ring_buffer",
-    ":perfetto_src_protozero_protozero",
-    ":perfetto_src_trace_processor_analysis_analysis",
-    ":perfetto_src_trace_processor_containers_containers",
-    ":perfetto_src_trace_processor_db_db",
-    ":perfetto_src_trace_processor_export_json",
-    ":perfetto_src_trace_processor_ftrace_descriptors",
-    ":perfetto_src_trace_processor_importers_common_common",
-    ":perfetto_src_trace_processor_importers_memory_tracker_graph_processor",
-    ":perfetto_src_trace_processor_lib",
-    ":perfetto_src_trace_processor_metatrace",
-    ":perfetto_src_trace_processor_metrics_lib",
-    ":perfetto_src_trace_processor_sqlite_sqlite",
-    ":perfetto_src_trace_processor_storage_full",
-    ":perfetto_src_trace_processor_storage_minimal",
-    ":perfetto_src_trace_processor_storage_storage",
-    ":perfetto_src_trace_processor_tables_tables",
-    ":perfetto_src_trace_processor_types_types",
-    ":perfetto_src_trace_processor_util_descriptors",
-    ":perfetto_src_trace_processor_util_gzip",
-    ":perfetto_src_trace_processor_util_interned_message_view",
-    ":perfetto_src_trace_processor_util_proto_to_args_parser",
-    ":perfetto_src_trace_processor_util_protozero_to_text",
-    ":perfetto_src_trace_processor_util_trace_blob_view",
-    ":perfetto_src_trace_processor_util_util",
-    ":perfetto_tools_trace_to_text_common",
-    ":perfetto_tools_trace_to_text_full",
-    ":perfetto_tools_trace_to_text_pprofbuilder",
-    ":perfetto_tools_trace_to_text_utils",
-  ],
-  static_libs: [
-    "libprotobuf-cpp-full",
-    "libsqlite",
-    "libz",
-  ],
-  generated_headers: [
-    "perfetto_protos_perfetto_common_zero_gen_headers",
-    "perfetto_protos_perfetto_config_android_zero_gen_headers",
-    "perfetto_protos_perfetto_config_ftrace_zero_gen_headers",
-    "perfetto_protos_perfetto_config_gpu_zero_gen_headers",
-    "perfetto_protos_perfetto_config_inode_file_zero_gen_headers",
-    "perfetto_protos_perfetto_config_interceptors_zero_gen_headers",
-    "perfetto_protos_perfetto_config_power_zero_gen_headers",
-    "perfetto_protos_perfetto_config_process_stats_zero_gen_headers",
-    "perfetto_protos_perfetto_config_profiling_zero_gen_headers",
-    "perfetto_protos_perfetto_config_sys_stats_zero_gen_headers",
-    "perfetto_protos_perfetto_config_track_event_zero_gen_headers",
-    "perfetto_protos_perfetto_config_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_android_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_filesystem_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_ftrace_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_gpu_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_interned_data_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_minimal_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_non_minimal_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_perfetto_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_power_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_processor_metrics_impl_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_processor_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_profiling_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_ps_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_sys_stats_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_system_info_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_track_event_zero_gen_headers",
-    "perfetto_protos_third_party_pprof_zero_gen_headers",
-    "perfetto_src_base_version_gen_h",
-    "perfetto_src_trace_processor_importers_gen_cc_chrome_track_event_descriptor",
-    "perfetto_src_trace_processor_importers_gen_cc_config_descriptor",
-    "perfetto_src_trace_processor_importers_gen_cc_track_event_descriptor",
-    "perfetto_src_trace_processor_metrics_gen_cc_all_chrome_metrics_descriptor",
-    "perfetto_src_trace_processor_metrics_gen_cc_metrics_descriptor",
-    "perfetto_src_trace_processor_metrics_gen_merged_sql_metrics",
-    "perfetto_tools_trace_to_text_gen_cc_trace_descriptor",
-  ],
-  defaults: [
-    "perfetto_defaults",
-  ],
-  cflags: [
-    "-DGOOGLE_PROTOBUF_NO_RTTI",
-    "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
-    "-DHAVE_HIDDEN",
-  ],
+    name: "trace_to_text",
+    srcs: [
+        ":perfetto_include_perfetto_base_base",
+        ":perfetto_include_perfetto_ext_base_base",
+        ":perfetto_include_perfetto_ext_trace_processor_export_json",
+        ":perfetto_include_perfetto_ext_trace_processor_importers_memory_tracker_memory_tracker",
+        ":perfetto_include_perfetto_ext_traced_sys_stats_counters",
+        ":perfetto_include_perfetto_profiling_pprof_builder",
+        ":perfetto_include_perfetto_protozero_protozero",
+        ":perfetto_include_perfetto_trace_processor_basic_types",
+        ":perfetto_include_perfetto_trace_processor_storage",
+        ":perfetto_include_perfetto_trace_processor_trace_processor",
+        ":perfetto_protos_perfetto_common_zero_gen",
+        ":perfetto_protos_perfetto_config_android_zero_gen",
+        ":perfetto_protos_perfetto_config_ftrace_zero_gen",
+        ":perfetto_protos_perfetto_config_gpu_zero_gen",
+        ":perfetto_protos_perfetto_config_inode_file_zero_gen",
+        ":perfetto_protos_perfetto_config_interceptors_zero_gen",
+        ":perfetto_protos_perfetto_config_power_zero_gen",
+        ":perfetto_protos_perfetto_config_process_stats_zero_gen",
+        ":perfetto_protos_perfetto_config_profiling_zero_gen",
+        ":perfetto_protos_perfetto_config_sys_stats_zero_gen",
+        ":perfetto_protos_perfetto_config_track_event_zero_gen",
+        ":perfetto_protos_perfetto_config_zero_gen",
+        ":perfetto_protos_perfetto_trace_android_zero_gen",
+        ":perfetto_protos_perfetto_trace_chrome_zero_gen",
+        ":perfetto_protos_perfetto_trace_filesystem_zero_gen",
+        ":perfetto_protos_perfetto_trace_ftrace_zero_gen",
+        ":perfetto_protos_perfetto_trace_gpu_zero_gen",
+        ":perfetto_protos_perfetto_trace_interned_data_zero_gen",
+        ":perfetto_protos_perfetto_trace_minimal_zero_gen",
+        ":perfetto_protos_perfetto_trace_non_minimal_zero_gen",
+        ":perfetto_protos_perfetto_trace_perfetto_zero_gen",
+        ":perfetto_protos_perfetto_trace_power_zero_gen",
+        ":perfetto_protos_perfetto_trace_processor_metrics_impl_zero_gen",
+        ":perfetto_protos_perfetto_trace_processor_zero_gen",
+        ":perfetto_protos_perfetto_trace_profiling_zero_gen",
+        ":perfetto_protos_perfetto_trace_ps_zero_gen",
+        ":perfetto_protos_perfetto_trace_sys_stats_zero_gen",
+        ":perfetto_protos_perfetto_trace_system_info_zero_gen",
+        ":perfetto_protos_perfetto_trace_track_event_zero_gen",
+        ":perfetto_protos_third_party_pprof_zero_gen",
+        ":perfetto_src_base_base",
+        ":perfetto_src_profiling_deobfuscator",
+        ":perfetto_src_profiling_symbolizer_symbolize_database",
+        ":perfetto_src_profiling_symbolizer_symbolizer",
+        ":perfetto_src_protozero_proto_ring_buffer",
+        ":perfetto_src_protozero_protozero",
+        ":perfetto_src_trace_processor_analysis_analysis",
+        ":perfetto_src_trace_processor_containers_containers",
+        ":perfetto_src_trace_processor_db_db",
+        ":perfetto_src_trace_processor_export_json",
+        ":perfetto_src_trace_processor_ftrace_descriptors",
+        ":perfetto_src_trace_processor_importers_common_common",
+        ":perfetto_src_trace_processor_importers_memory_tracker_graph_processor",
+        ":perfetto_src_trace_processor_lib",
+        ":perfetto_src_trace_processor_metatrace",
+        ":perfetto_src_trace_processor_metrics_lib",
+        ":perfetto_src_trace_processor_sqlite_sqlite",
+        ":perfetto_src_trace_processor_storage_full",
+        ":perfetto_src_trace_processor_storage_minimal",
+        ":perfetto_src_trace_processor_storage_storage",
+        ":perfetto_src_trace_processor_tables_tables",
+        ":perfetto_src_trace_processor_types_types",
+        ":perfetto_src_trace_processor_util_descriptors",
+        ":perfetto_src_trace_processor_util_gzip",
+        ":perfetto_src_trace_processor_util_interned_message_view",
+        ":perfetto_src_trace_processor_util_proto_to_args_parser",
+        ":perfetto_src_trace_processor_util_protozero_to_text",
+        ":perfetto_src_trace_processor_util_trace_blob_view",
+        ":perfetto_src_trace_processor_util_util",
+        ":perfetto_tools_trace_to_text_common",
+        ":perfetto_tools_trace_to_text_full",
+        ":perfetto_tools_trace_to_text_pprofbuilder",
+        ":perfetto_tools_trace_to_text_utils",
+    ],
+    static_libs: [
+        "libprotobuf-cpp-full",
+        "libsqlite",
+        "libz",
+    ],
+    generated_headers: [
+        "perfetto_protos_perfetto_common_zero_gen_headers",
+        "perfetto_protos_perfetto_config_android_zero_gen_headers",
+        "perfetto_protos_perfetto_config_ftrace_zero_gen_headers",
+        "perfetto_protos_perfetto_config_gpu_zero_gen_headers",
+        "perfetto_protos_perfetto_config_inode_file_zero_gen_headers",
+        "perfetto_protos_perfetto_config_interceptors_zero_gen_headers",
+        "perfetto_protos_perfetto_config_power_zero_gen_headers",
+        "perfetto_protos_perfetto_config_process_stats_zero_gen_headers",
+        "perfetto_protos_perfetto_config_profiling_zero_gen_headers",
+        "perfetto_protos_perfetto_config_sys_stats_zero_gen_headers",
+        "perfetto_protos_perfetto_config_track_event_zero_gen_headers",
+        "perfetto_protos_perfetto_config_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_android_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_filesystem_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_ftrace_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_gpu_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_interned_data_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_minimal_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_non_minimal_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_perfetto_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_power_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_processor_metrics_impl_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_processor_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_profiling_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_ps_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_sys_stats_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_system_info_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_track_event_zero_gen_headers",
+        "perfetto_protos_third_party_pprof_zero_gen_headers",
+        "perfetto_src_base_version_gen_h",
+        "perfetto_src_trace_processor_importers_gen_cc_chrome_track_event_descriptor",
+        "perfetto_src_trace_processor_importers_gen_cc_config_descriptor",
+        "perfetto_src_trace_processor_importers_gen_cc_track_event_descriptor",
+        "perfetto_src_trace_processor_metrics_gen_cc_all_chrome_metrics_descriptor",
+        "perfetto_src_trace_processor_metrics_gen_cc_metrics_descriptor",
+        "perfetto_src_trace_processor_metrics_gen_merged_sql_metrics",
+        "perfetto_tools_trace_to_text_gen_cc_trace_descriptor",
+    ],
+    defaults: [
+        "perfetto_defaults",
+    ],
+    cflags: [
+        "-DGOOGLE_PROTOBUF_NO_RTTI",
+        "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
+        "-DHAVE_HIDDEN",
+    ],
+    target: {
+        musl: {
+            static_libs: [
+                "libfts",
+            ],
+        },
+    },
 }
 
 // GN: //src/traced/service:traced
 cc_binary {
-  name: "traced",
-  srcs: [
-    ":perfetto_include_perfetto_ext_traced_traced",
-    "src/traced/service/main.cc",
-  ],
-  shared_libs: [
-    "liblog",
-    "libperfetto",
-  ],
-  init_rc: [
-    "perfetto.rc",
-  ],
-  defaults: [
-    "perfetto_defaults",
-  ],
+    name: "traced",
+    srcs: [
+        ":perfetto_include_perfetto_ext_traced_traced",
+        "src/traced/service/main.cc",
+    ],
+    shared_libs: [
+        "liblog",
+        "libperfetto",
+    ],
+    init_rc: [
+        "perfetto.rc",
+    ],
+    defaults: [
+        "perfetto_defaults",
+    ],
 }
 
 // GN: //src/profiling/perf:traced_perf
 cc_binary {
-  name: "traced_perf",
-  srcs: [
-    ":perfetto_include_perfetto_base_base",
-    ":perfetto_include_perfetto_ext_base_base",
-    ":perfetto_include_perfetto_ext_ipc_ipc",
-    ":perfetto_include_perfetto_ext_tracing_core_core",
-    ":perfetto_include_perfetto_ext_tracing_ipc_ipc",
-    ":perfetto_include_perfetto_profiling_normalize",
-    ":perfetto_include_perfetto_protozero_protozero",
-    ":perfetto_include_perfetto_tracing_core_core",
-    ":perfetto_include_perfetto_tracing_core_forward_decls",
-    ":perfetto_include_perfetto_tracing_tracing",
-    ":perfetto_protos_perfetto_common_cpp_gen",
-    ":perfetto_protos_perfetto_common_zero_gen",
-    ":perfetto_protos_perfetto_config_android_cpp_gen",
-    ":perfetto_protos_perfetto_config_android_zero_gen",
-    ":perfetto_protos_perfetto_config_cpp_gen",
-    ":perfetto_protos_perfetto_config_ftrace_cpp_gen",
-    ":perfetto_protos_perfetto_config_ftrace_zero_gen",
-    ":perfetto_protos_perfetto_config_gpu_cpp_gen",
-    ":perfetto_protos_perfetto_config_gpu_zero_gen",
-    ":perfetto_protos_perfetto_config_inode_file_cpp_gen",
-    ":perfetto_protos_perfetto_config_inode_file_zero_gen",
-    ":perfetto_protos_perfetto_config_interceptors_cpp_gen",
-    ":perfetto_protos_perfetto_config_interceptors_zero_gen",
-    ":perfetto_protos_perfetto_config_power_cpp_gen",
-    ":perfetto_protos_perfetto_config_power_zero_gen",
-    ":perfetto_protos_perfetto_config_process_stats_cpp_gen",
-    ":perfetto_protos_perfetto_config_process_stats_zero_gen",
-    ":perfetto_protos_perfetto_config_profiling_cpp_gen",
-    ":perfetto_protos_perfetto_config_profiling_zero_gen",
-    ":perfetto_protos_perfetto_config_sys_stats_cpp_gen",
-    ":perfetto_protos_perfetto_config_sys_stats_zero_gen",
-    ":perfetto_protos_perfetto_config_track_event_cpp_gen",
-    ":perfetto_protos_perfetto_config_track_event_zero_gen",
-    ":perfetto_protos_perfetto_config_zero_gen",
-    ":perfetto_protos_perfetto_ipc_cpp_gen",
-    ":perfetto_protos_perfetto_ipc_ipc_gen",
-    ":perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen",
-    ":perfetto_protos_perfetto_trace_android_zero_gen",
-    ":perfetto_protos_perfetto_trace_chrome_zero_gen",
-    ":perfetto_protos_perfetto_trace_filesystem_zero_gen",
-    ":perfetto_protos_perfetto_trace_ftrace_zero_gen",
-    ":perfetto_protos_perfetto_trace_gpu_zero_gen",
-    ":perfetto_protos_perfetto_trace_interned_data_zero_gen",
-    ":perfetto_protos_perfetto_trace_minimal_zero_gen",
-    ":perfetto_protos_perfetto_trace_non_minimal_zero_gen",
-    ":perfetto_protos_perfetto_trace_perfetto_zero_gen",
-    ":perfetto_protos_perfetto_trace_power_zero_gen",
-    ":perfetto_protos_perfetto_trace_profiling_zero_gen",
-    ":perfetto_protos_perfetto_trace_ps_zero_gen",
-    ":perfetto_protos_perfetto_trace_sys_stats_zero_gen",
-    ":perfetto_protos_perfetto_trace_system_info_zero_gen",
-    ":perfetto_protos_perfetto_trace_track_event_cpp_gen",
-    ":perfetto_protos_perfetto_trace_track_event_zero_gen",
-    ":perfetto_src_android_internal_headers",
-    ":perfetto_src_android_internal_lazy_library_loader",
-    ":perfetto_src_android_stats_android_stats",
-    ":perfetto_src_android_stats_perfetto_atoms",
-    ":perfetto_src_base_base",
-    ":perfetto_src_base_unix_socket",
-    ":perfetto_src_ipc_client",
-    ":perfetto_src_ipc_common",
-    ":perfetto_src_kallsyms_kallsyms",
-    ":perfetto_src_profiling_common_callstack_trie",
-    ":perfetto_src_profiling_common_interner",
-    ":perfetto_src_profiling_common_interning_output",
-    ":perfetto_src_profiling_common_proc_utils",
-    ":perfetto_src_profiling_common_producer_support",
-    ":perfetto_src_profiling_common_profiler_guardrails",
-    ":perfetto_src_profiling_common_unwind_support",
-    ":perfetto_src_profiling_perf_common_types",
-    ":perfetto_src_profiling_perf_proc_descriptors",
-    ":perfetto_src_profiling_perf_producer",
-    ":perfetto_src_profiling_perf_regs_parsing",
-    ":perfetto_src_profiling_perf_traced_perf_main",
-    ":perfetto_src_profiling_perf_unwinding",
-    ":perfetto_src_protozero_filtering_bytecode_common",
-    ":perfetto_src_protozero_filtering_bytecode_parser",
-    ":perfetto_src_protozero_filtering_message_filter",
-    ":perfetto_src_protozero_protozero",
-    ":perfetto_src_traced_probes_ftrace_ftrace_procfs",
-    ":perfetto_src_traced_probes_packages_list_packages_list_parser",
-    ":perfetto_src_tracing_common",
-    ":perfetto_src_tracing_core_core",
-    ":perfetto_src_tracing_core_service",
-    ":perfetto_src_tracing_ipc_common",
-    ":perfetto_src_tracing_ipc_producer_producer",
-    "src/profiling/perf/main.cc",
-  ],
-  shared_libs: [
-    "libbase",
-    "liblog",
-    "libprocinfo",
-    "libunwindstack",
-  ],
-  init_rc: [
-    "traced_perf.rc",
-  ],
-  generated_headers: [
-    "perfetto_protos_perfetto_common_cpp_gen_headers",
-    "perfetto_protos_perfetto_common_zero_gen_headers",
-    "perfetto_protos_perfetto_config_android_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_android_zero_gen_headers",
-    "perfetto_protos_perfetto_config_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_ftrace_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_ftrace_zero_gen_headers",
-    "perfetto_protos_perfetto_config_gpu_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_gpu_zero_gen_headers",
-    "perfetto_protos_perfetto_config_inode_file_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_inode_file_zero_gen_headers",
-    "perfetto_protos_perfetto_config_interceptors_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_interceptors_zero_gen_headers",
-    "perfetto_protos_perfetto_config_power_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_power_zero_gen_headers",
-    "perfetto_protos_perfetto_config_process_stats_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_process_stats_zero_gen_headers",
-    "perfetto_protos_perfetto_config_profiling_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_profiling_zero_gen_headers",
-    "perfetto_protos_perfetto_config_sys_stats_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_sys_stats_zero_gen_headers",
-    "perfetto_protos_perfetto_config_track_event_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_track_event_zero_gen_headers",
-    "perfetto_protos_perfetto_config_zero_gen_headers",
-    "perfetto_protos_perfetto_ipc_cpp_gen_headers",
-    "perfetto_protos_perfetto_ipc_ipc_gen_headers",
-    "perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_android_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_filesystem_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_ftrace_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_gpu_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_interned_data_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_minimal_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_non_minimal_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_perfetto_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_power_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_profiling_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_ps_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_sys_stats_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_system_info_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_track_event_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_track_event_zero_gen_headers",
-    "perfetto_src_base_version_gen_h",
-  ],
-  defaults: [
-    "perfetto_defaults",
-  ],
-  cflags: [
-    "-DGOOGLE_PROTOBUF_NO_RTTI",
-    "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
-  ],
-  include_dirs: [
-    "bionic/libc/kernel",
-  ],
+    name: "traced_perf",
+    srcs: [
+        ":perfetto_include_perfetto_base_base",
+        ":perfetto_include_perfetto_ext_base_base",
+        ":perfetto_include_perfetto_ext_ipc_ipc",
+        ":perfetto_include_perfetto_ext_tracing_core_core",
+        ":perfetto_include_perfetto_ext_tracing_ipc_ipc",
+        ":perfetto_include_perfetto_profiling_normalize",
+        ":perfetto_include_perfetto_protozero_protozero",
+        ":perfetto_include_perfetto_tracing_core_core",
+        ":perfetto_include_perfetto_tracing_core_forward_decls",
+        ":perfetto_include_perfetto_tracing_tracing",
+        ":perfetto_protos_perfetto_common_cpp_gen",
+        ":perfetto_protos_perfetto_common_zero_gen",
+        ":perfetto_protos_perfetto_config_android_cpp_gen",
+        ":perfetto_protos_perfetto_config_android_zero_gen",
+        ":perfetto_protos_perfetto_config_cpp_gen",
+        ":perfetto_protos_perfetto_config_ftrace_cpp_gen",
+        ":perfetto_protos_perfetto_config_ftrace_zero_gen",
+        ":perfetto_protos_perfetto_config_gpu_cpp_gen",
+        ":perfetto_protos_perfetto_config_gpu_zero_gen",
+        ":perfetto_protos_perfetto_config_inode_file_cpp_gen",
+        ":perfetto_protos_perfetto_config_inode_file_zero_gen",
+        ":perfetto_protos_perfetto_config_interceptors_cpp_gen",
+        ":perfetto_protos_perfetto_config_interceptors_zero_gen",
+        ":perfetto_protos_perfetto_config_power_cpp_gen",
+        ":perfetto_protos_perfetto_config_power_zero_gen",
+        ":perfetto_protos_perfetto_config_process_stats_cpp_gen",
+        ":perfetto_protos_perfetto_config_process_stats_zero_gen",
+        ":perfetto_protos_perfetto_config_profiling_cpp_gen",
+        ":perfetto_protos_perfetto_config_profiling_zero_gen",
+        ":perfetto_protos_perfetto_config_sys_stats_cpp_gen",
+        ":perfetto_protos_perfetto_config_sys_stats_zero_gen",
+        ":perfetto_protos_perfetto_config_track_event_cpp_gen",
+        ":perfetto_protos_perfetto_config_track_event_zero_gen",
+        ":perfetto_protos_perfetto_config_zero_gen",
+        ":perfetto_protos_perfetto_ipc_cpp_gen",
+        ":perfetto_protos_perfetto_ipc_ipc_gen",
+        ":perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen",
+        ":perfetto_protos_perfetto_trace_android_zero_gen",
+        ":perfetto_protos_perfetto_trace_chrome_zero_gen",
+        ":perfetto_protos_perfetto_trace_filesystem_zero_gen",
+        ":perfetto_protos_perfetto_trace_ftrace_zero_gen",
+        ":perfetto_protos_perfetto_trace_gpu_zero_gen",
+        ":perfetto_protos_perfetto_trace_interned_data_zero_gen",
+        ":perfetto_protos_perfetto_trace_minimal_zero_gen",
+        ":perfetto_protos_perfetto_trace_non_minimal_zero_gen",
+        ":perfetto_protos_perfetto_trace_perfetto_zero_gen",
+        ":perfetto_protos_perfetto_trace_power_zero_gen",
+        ":perfetto_protos_perfetto_trace_profiling_zero_gen",
+        ":perfetto_protos_perfetto_trace_ps_zero_gen",
+        ":perfetto_protos_perfetto_trace_sys_stats_zero_gen",
+        ":perfetto_protos_perfetto_trace_system_info_zero_gen",
+        ":perfetto_protos_perfetto_trace_track_event_cpp_gen",
+        ":perfetto_protos_perfetto_trace_track_event_zero_gen",
+        ":perfetto_src_android_internal_headers",
+        ":perfetto_src_android_internal_lazy_library_loader",
+        ":perfetto_src_android_stats_android_stats",
+        ":perfetto_src_android_stats_perfetto_atoms",
+        ":perfetto_src_base_base",
+        ":perfetto_src_base_unix_socket",
+        ":perfetto_src_ipc_client",
+        ":perfetto_src_ipc_common",
+        ":perfetto_src_kallsyms_kallsyms",
+        ":perfetto_src_profiling_common_callstack_trie",
+        ":perfetto_src_profiling_common_interner",
+        ":perfetto_src_profiling_common_interning_output",
+        ":perfetto_src_profiling_common_proc_utils",
+        ":perfetto_src_profiling_common_producer_support",
+        ":perfetto_src_profiling_common_profiler_guardrails",
+        ":perfetto_src_profiling_common_unwind_support",
+        ":perfetto_src_profiling_perf_common_types",
+        ":perfetto_src_profiling_perf_proc_descriptors",
+        ":perfetto_src_profiling_perf_producer",
+        ":perfetto_src_profiling_perf_regs_parsing",
+        ":perfetto_src_profiling_perf_traced_perf_main",
+        ":perfetto_src_profiling_perf_unwinding",
+        ":perfetto_src_protozero_filtering_bytecode_common",
+        ":perfetto_src_protozero_filtering_bytecode_parser",
+        ":perfetto_src_protozero_filtering_message_filter",
+        ":perfetto_src_protozero_protozero",
+        ":perfetto_src_traced_probes_ftrace_ftrace_procfs",
+        ":perfetto_src_traced_probes_packages_list_packages_list_parser",
+        ":perfetto_src_tracing_common",
+        ":perfetto_src_tracing_core_core",
+        ":perfetto_src_tracing_core_service",
+        ":perfetto_src_tracing_ipc_common",
+        ":perfetto_src_tracing_ipc_producer_producer",
+        "src/profiling/perf/main.cc",
+    ],
+    shared_libs: [
+        "libbase",
+        "liblog",
+        "libprocinfo",
+        "libunwindstack",
+    ],
+    init_rc: [
+        "traced_perf.rc",
+    ],
+    generated_headers: [
+        "perfetto_protos_perfetto_common_cpp_gen_headers",
+        "perfetto_protos_perfetto_common_zero_gen_headers",
+        "perfetto_protos_perfetto_config_android_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_android_zero_gen_headers",
+        "perfetto_protos_perfetto_config_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_ftrace_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_ftrace_zero_gen_headers",
+        "perfetto_protos_perfetto_config_gpu_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_gpu_zero_gen_headers",
+        "perfetto_protos_perfetto_config_inode_file_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_inode_file_zero_gen_headers",
+        "perfetto_protos_perfetto_config_interceptors_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_interceptors_zero_gen_headers",
+        "perfetto_protos_perfetto_config_power_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_power_zero_gen_headers",
+        "perfetto_protos_perfetto_config_process_stats_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_process_stats_zero_gen_headers",
+        "perfetto_protos_perfetto_config_profiling_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_profiling_zero_gen_headers",
+        "perfetto_protos_perfetto_config_sys_stats_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_sys_stats_zero_gen_headers",
+        "perfetto_protos_perfetto_config_track_event_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_track_event_zero_gen_headers",
+        "perfetto_protos_perfetto_config_zero_gen_headers",
+        "perfetto_protos_perfetto_ipc_cpp_gen_headers",
+        "perfetto_protos_perfetto_ipc_ipc_gen_headers",
+        "perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_android_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_filesystem_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_ftrace_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_gpu_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_interned_data_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_minimal_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_non_minimal_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_perfetto_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_power_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_profiling_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_ps_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_sys_stats_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_system_info_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_track_event_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_track_event_zero_gen_headers",
+        "perfetto_src_base_version_gen_h",
+    ],
+    defaults: [
+        "perfetto_defaults",
+    ],
+    cflags: [
+        "-DGOOGLE_PROTOBUF_NO_RTTI",
+        "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
+    ],
+    include_dirs: [
+        "bionic/libc/kernel",
+    ],
 }
 
 // GN: //src/traced/probes:traced_probes
 cc_binary {
-  name: "traced_probes",
-  srcs: [
-    ":perfetto_include_perfetto_ext_traced_traced",
-    "src/traced/probes/main.cc",
-  ],
-  shared_libs: [
-    "liblog",
-    "libperfetto",
-  ],
-  defaults: [
-    "perfetto_defaults",
-  ],
-  required: [
-    "libperfetto_android_internal",
-    "mm_events",
-    "traced_perf",
-    "trigger_perfetto",
-  ],
+    name: "traced_probes",
+    srcs: [
+        ":perfetto_include_perfetto_ext_traced_traced",
+        "src/traced/probes/main.cc",
+    ],
+    shared_libs: [
+        "liblog",
+        "libperfetto",
+    ],
+    defaults: [
+        "perfetto_defaults",
+    ],
+    required: [
+        "libperfetto_android_internal",
+        "mm_events",
+        "traced_perf",
+        "trigger_perfetto",
+    ],
 }
 
 // GN: //src/perfetto_cmd:trigger_perfetto
 cc_binary {
-  name: "trigger_perfetto",
-  srcs: [
-    ":perfetto_include_perfetto_base_base",
-    ":perfetto_include_perfetto_ext_base_base",
-    ":perfetto_include_perfetto_ext_ipc_ipc",
-    ":perfetto_include_perfetto_ext_traced_traced",
-    ":perfetto_include_perfetto_ext_tracing_core_core",
-    ":perfetto_include_perfetto_ext_tracing_ipc_ipc",
-    ":perfetto_include_perfetto_protozero_protozero",
-    ":perfetto_include_perfetto_tracing_core_core",
-    ":perfetto_include_perfetto_tracing_core_forward_decls",
-    ":perfetto_include_perfetto_tracing_tracing",
-    ":perfetto_protos_perfetto_common_cpp_gen",
-    ":perfetto_protos_perfetto_common_zero_gen",
-    ":perfetto_protos_perfetto_config_android_cpp_gen",
-    ":perfetto_protos_perfetto_config_android_zero_gen",
-    ":perfetto_protos_perfetto_config_cpp_gen",
-    ":perfetto_protos_perfetto_config_ftrace_cpp_gen",
-    ":perfetto_protos_perfetto_config_ftrace_zero_gen",
-    ":perfetto_protos_perfetto_config_gpu_cpp_gen",
-    ":perfetto_protos_perfetto_config_gpu_zero_gen",
-    ":perfetto_protos_perfetto_config_inode_file_cpp_gen",
-    ":perfetto_protos_perfetto_config_inode_file_zero_gen",
-    ":perfetto_protos_perfetto_config_interceptors_cpp_gen",
-    ":perfetto_protos_perfetto_config_interceptors_zero_gen",
-    ":perfetto_protos_perfetto_config_power_cpp_gen",
-    ":perfetto_protos_perfetto_config_power_zero_gen",
-    ":perfetto_protos_perfetto_config_process_stats_cpp_gen",
-    ":perfetto_protos_perfetto_config_process_stats_zero_gen",
-    ":perfetto_protos_perfetto_config_profiling_cpp_gen",
-    ":perfetto_protos_perfetto_config_profiling_zero_gen",
-    ":perfetto_protos_perfetto_config_sys_stats_cpp_gen",
-    ":perfetto_protos_perfetto_config_sys_stats_zero_gen",
-    ":perfetto_protos_perfetto_config_track_event_cpp_gen",
-    ":perfetto_protos_perfetto_config_track_event_zero_gen",
-    ":perfetto_protos_perfetto_config_zero_gen",
-    ":perfetto_protos_perfetto_ipc_cpp_gen",
-    ":perfetto_protos_perfetto_ipc_ipc_gen",
-    ":perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen",
-    ":perfetto_protos_perfetto_trace_android_zero_gen",
-    ":perfetto_protos_perfetto_trace_chrome_zero_gen",
-    ":perfetto_protos_perfetto_trace_filesystem_zero_gen",
-    ":perfetto_protos_perfetto_trace_ftrace_zero_gen",
-    ":perfetto_protos_perfetto_trace_gpu_zero_gen",
-    ":perfetto_protos_perfetto_trace_interned_data_zero_gen",
-    ":perfetto_protos_perfetto_trace_minimal_zero_gen",
-    ":perfetto_protos_perfetto_trace_non_minimal_zero_gen",
-    ":perfetto_protos_perfetto_trace_perfetto_zero_gen",
-    ":perfetto_protos_perfetto_trace_power_zero_gen",
-    ":perfetto_protos_perfetto_trace_profiling_zero_gen",
-    ":perfetto_protos_perfetto_trace_ps_zero_gen",
-    ":perfetto_protos_perfetto_trace_sys_stats_zero_gen",
-    ":perfetto_protos_perfetto_trace_system_info_zero_gen",
-    ":perfetto_protos_perfetto_trace_track_event_cpp_gen",
-    ":perfetto_protos_perfetto_trace_track_event_zero_gen",
-    ":perfetto_src_android_internal_headers",
-    ":perfetto_src_android_internal_lazy_library_loader",
-    ":perfetto_src_android_stats_android_stats",
-    ":perfetto_src_android_stats_perfetto_atoms",
-    ":perfetto_src_base_base",
-    ":perfetto_src_base_unix_socket",
-    ":perfetto_src_ipc_client",
-    ":perfetto_src_ipc_common",
-    ":perfetto_src_perfetto_cmd_protos_gen",
-    ":perfetto_src_perfetto_cmd_trigger_perfetto_cmd",
-    ":perfetto_src_perfetto_cmd_trigger_producer",
-    ":perfetto_src_protozero_protozero",
-    ":perfetto_src_tracing_common",
-    ":perfetto_src_tracing_core_core",
-    ":perfetto_src_tracing_ipc_common",
-    ":perfetto_src_tracing_ipc_producer_producer",
-    "src/perfetto_cmd/trigger_perfetto_main.cc",
-  ],
-  shared_libs: [
-    "liblog",
-  ],
-  generated_headers: [
-    "perfetto_protos_perfetto_common_cpp_gen_headers",
-    "perfetto_protos_perfetto_common_zero_gen_headers",
-    "perfetto_protos_perfetto_config_android_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_android_zero_gen_headers",
-    "perfetto_protos_perfetto_config_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_ftrace_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_ftrace_zero_gen_headers",
-    "perfetto_protos_perfetto_config_gpu_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_gpu_zero_gen_headers",
-    "perfetto_protos_perfetto_config_inode_file_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_inode_file_zero_gen_headers",
-    "perfetto_protos_perfetto_config_interceptors_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_interceptors_zero_gen_headers",
-    "perfetto_protos_perfetto_config_power_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_power_zero_gen_headers",
-    "perfetto_protos_perfetto_config_process_stats_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_process_stats_zero_gen_headers",
-    "perfetto_protos_perfetto_config_profiling_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_profiling_zero_gen_headers",
-    "perfetto_protos_perfetto_config_sys_stats_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_sys_stats_zero_gen_headers",
-    "perfetto_protos_perfetto_config_track_event_cpp_gen_headers",
-    "perfetto_protos_perfetto_config_track_event_zero_gen_headers",
-    "perfetto_protos_perfetto_config_zero_gen_headers",
-    "perfetto_protos_perfetto_ipc_cpp_gen_headers",
-    "perfetto_protos_perfetto_ipc_ipc_gen_headers",
-    "perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_android_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_filesystem_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_ftrace_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_gpu_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_interned_data_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_minimal_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_non_minimal_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_perfetto_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_power_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_profiling_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_ps_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_sys_stats_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_system_info_zero_gen_headers",
-    "perfetto_protos_perfetto_trace_track_event_cpp_gen_headers",
-    "perfetto_protos_perfetto_trace_track_event_zero_gen_headers",
-    "perfetto_src_base_version_gen_h",
-    "perfetto_src_perfetto_cmd_protos_gen_headers",
-  ],
-  defaults: [
-    "perfetto_defaults",
-  ],
-  cflags: [
-    "-DGOOGLE_PROTOBUF_NO_RTTI",
-    "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
-  ],
+    name: "trigger_perfetto",
+    srcs: [
+        ":perfetto_include_perfetto_base_base",
+        ":perfetto_include_perfetto_ext_base_base",
+        ":perfetto_include_perfetto_ext_ipc_ipc",
+        ":perfetto_include_perfetto_ext_traced_traced",
+        ":perfetto_include_perfetto_ext_tracing_core_core",
+        ":perfetto_include_perfetto_ext_tracing_ipc_ipc",
+        ":perfetto_include_perfetto_protozero_protozero",
+        ":perfetto_include_perfetto_tracing_core_core",
+        ":perfetto_include_perfetto_tracing_core_forward_decls",
+        ":perfetto_include_perfetto_tracing_tracing",
+        ":perfetto_protos_perfetto_common_cpp_gen",
+        ":perfetto_protos_perfetto_common_zero_gen",
+        ":perfetto_protos_perfetto_config_android_cpp_gen",
+        ":perfetto_protos_perfetto_config_android_zero_gen",
+        ":perfetto_protos_perfetto_config_cpp_gen",
+        ":perfetto_protos_perfetto_config_ftrace_cpp_gen",
+        ":perfetto_protos_perfetto_config_ftrace_zero_gen",
+        ":perfetto_protos_perfetto_config_gpu_cpp_gen",
+        ":perfetto_protos_perfetto_config_gpu_zero_gen",
+        ":perfetto_protos_perfetto_config_inode_file_cpp_gen",
+        ":perfetto_protos_perfetto_config_inode_file_zero_gen",
+        ":perfetto_protos_perfetto_config_interceptors_cpp_gen",
+        ":perfetto_protos_perfetto_config_interceptors_zero_gen",
+        ":perfetto_protos_perfetto_config_power_cpp_gen",
+        ":perfetto_protos_perfetto_config_power_zero_gen",
+        ":perfetto_protos_perfetto_config_process_stats_cpp_gen",
+        ":perfetto_protos_perfetto_config_process_stats_zero_gen",
+        ":perfetto_protos_perfetto_config_profiling_cpp_gen",
+        ":perfetto_protos_perfetto_config_profiling_zero_gen",
+        ":perfetto_protos_perfetto_config_sys_stats_cpp_gen",
+        ":perfetto_protos_perfetto_config_sys_stats_zero_gen",
+        ":perfetto_protos_perfetto_config_track_event_cpp_gen",
+        ":perfetto_protos_perfetto_config_track_event_zero_gen",
+        ":perfetto_protos_perfetto_config_zero_gen",
+        ":perfetto_protos_perfetto_ipc_cpp_gen",
+        ":perfetto_protos_perfetto_ipc_ipc_gen",
+        ":perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen",
+        ":perfetto_protos_perfetto_trace_android_zero_gen",
+        ":perfetto_protos_perfetto_trace_chrome_zero_gen",
+        ":perfetto_protos_perfetto_trace_filesystem_zero_gen",
+        ":perfetto_protos_perfetto_trace_ftrace_zero_gen",
+        ":perfetto_protos_perfetto_trace_gpu_zero_gen",
+        ":perfetto_protos_perfetto_trace_interned_data_zero_gen",
+        ":perfetto_protos_perfetto_trace_minimal_zero_gen",
+        ":perfetto_protos_perfetto_trace_non_minimal_zero_gen",
+        ":perfetto_protos_perfetto_trace_perfetto_zero_gen",
+        ":perfetto_protos_perfetto_trace_power_zero_gen",
+        ":perfetto_protos_perfetto_trace_profiling_zero_gen",
+        ":perfetto_protos_perfetto_trace_ps_zero_gen",
+        ":perfetto_protos_perfetto_trace_sys_stats_zero_gen",
+        ":perfetto_protos_perfetto_trace_system_info_zero_gen",
+        ":perfetto_protos_perfetto_trace_track_event_cpp_gen",
+        ":perfetto_protos_perfetto_trace_track_event_zero_gen",
+        ":perfetto_src_android_internal_headers",
+        ":perfetto_src_android_internal_lazy_library_loader",
+        ":perfetto_src_android_stats_android_stats",
+        ":perfetto_src_android_stats_perfetto_atoms",
+        ":perfetto_src_base_base",
+        ":perfetto_src_base_unix_socket",
+        ":perfetto_src_ipc_client",
+        ":perfetto_src_ipc_common",
+        ":perfetto_src_perfetto_cmd_protos_gen",
+        ":perfetto_src_perfetto_cmd_trigger_perfetto_cmd",
+        ":perfetto_src_perfetto_cmd_trigger_producer",
+        ":perfetto_src_protozero_protozero",
+        ":perfetto_src_tracing_common",
+        ":perfetto_src_tracing_core_core",
+        ":perfetto_src_tracing_ipc_common",
+        ":perfetto_src_tracing_ipc_producer_producer",
+        "src/perfetto_cmd/trigger_perfetto_main.cc",
+    ],
+    shared_libs: [
+        "liblog",
+    ],
+    generated_headers: [
+        "perfetto_protos_perfetto_common_cpp_gen_headers",
+        "perfetto_protos_perfetto_common_zero_gen_headers",
+        "perfetto_protos_perfetto_config_android_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_android_zero_gen_headers",
+        "perfetto_protos_perfetto_config_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_ftrace_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_ftrace_zero_gen_headers",
+        "perfetto_protos_perfetto_config_gpu_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_gpu_zero_gen_headers",
+        "perfetto_protos_perfetto_config_inode_file_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_inode_file_zero_gen_headers",
+        "perfetto_protos_perfetto_config_interceptors_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_interceptors_zero_gen_headers",
+        "perfetto_protos_perfetto_config_power_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_power_zero_gen_headers",
+        "perfetto_protos_perfetto_config_process_stats_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_process_stats_zero_gen_headers",
+        "perfetto_protos_perfetto_config_profiling_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_profiling_zero_gen_headers",
+        "perfetto_protos_perfetto_config_sys_stats_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_sys_stats_zero_gen_headers",
+        "perfetto_protos_perfetto_config_track_event_cpp_gen_headers",
+        "perfetto_protos_perfetto_config_track_event_zero_gen_headers",
+        "perfetto_protos_perfetto_config_zero_gen_headers",
+        "perfetto_protos_perfetto_ipc_cpp_gen_headers",
+        "perfetto_protos_perfetto_ipc_ipc_gen_headers",
+        "perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_android_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_filesystem_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_ftrace_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_gpu_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_interned_data_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_minimal_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_non_minimal_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_perfetto_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_power_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_profiling_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_ps_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_sys_stats_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_system_info_zero_gen_headers",
+        "perfetto_protos_perfetto_trace_track_event_cpp_gen_headers",
+        "perfetto_protos_perfetto_trace_track_event_zero_gen_headers",
+        "perfetto_src_base_version_gen_h",
+        "perfetto_src_perfetto_cmd_protos_gen_headers",
+    ],
+    defaults: [
+        "perfetto_defaults",
+    ],
+    cflags: [
+        "-DGOOGLE_PROTOBUF_NO_RTTI",
+        "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
+    ],
 }
 
 // These targets are appended to the autogenerated Android.bp by tools/gen_android_bp.
 
 java_library_host {
-  name: "perfetto_config-full",
-  proto: {
-      type: "full",
-  },
-  srcs: [
-    "protos/perfetto/config/perfetto_config.proto",
-  ],
+    name: "perfetto_config-full",
+    proto: {
+        type: "full",
+    },
+    srcs: [
+        "protos/perfetto/config/perfetto_config.proto",
+    ],
 }
 
 java_library_host {
-  name: "perfetto_metrics-full",
-  proto: {
-      type: "full",
-  },
-  srcs: [
-    "protos/perfetto/metrics/perfetto_merged_metrics.proto",
-  ],
+    name: "perfetto_metrics-full",
+    proto: {
+        type: "full",
+    },
+    srcs: [
+        "protos/perfetto/metrics/perfetto_merged_metrics.proto",
+    ],
 }
 
 // This sample target shows how to use the perfetto client API from within the
 // Android tree.
 cc_binary {
-  name: "libperfetto_client_example",
-  srcs: [
-    "test/client_api_example.cc",
-  ],
-  static_libs: [
-    "libperfetto_client_experimental",
-    "perfetto_trace_protos",
-  ],
-  shared_libs: [
-    "libprotobuf-cpp-lite",
-    "liblog",
-  ],
-  cflags: [
-    "-DGOOGLE_PROTOBUF_NO_RTTI",
-    "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
-  ],
-  defaults: [
-    "perfetto_defaults",
-  ],
+    name: "libperfetto_client_example",
+    srcs: [
+        "test/client_api_example.cc",
+    ],
+    static_libs: [
+        "libperfetto_client_experimental",
+        "perfetto_trace_protos",
+    ],
+    shared_libs: [
+        "libprotobuf-cpp-lite",
+        "liblog",
+    ],
+    cflags: [
+        "-DGOOGLE_PROTOBUF_NO_RTTI",
+        "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
+    ],
+    defaults: [
+        "perfetto_defaults",
+    ],
 }
 
 cc_library_static {
diff --git a/Android.bp.extras b/Android.bp.extras
index 53140dd..c447a86 100644
--- a/Android.bp.extras
+++ b/Android.bp.extras
@@ -1,47 +1,47 @@
 // These targets are appended to the autogenerated Android.bp by tools/gen_android_bp.
 
 java_library_host {
-  name: "perfetto_config-full",
-  proto: {
-      type: "full",
-  },
-  srcs: [
-    "protos/perfetto/config/perfetto_config.proto",
-  ],
+    name: "perfetto_config-full",
+    proto: {
+        type: "full",
+    },
+    srcs: [
+        "protos/perfetto/config/perfetto_config.proto",
+    ],
 }
 
 java_library_host {
-  name: "perfetto_metrics-full",
-  proto: {
-      type: "full",
-  },
-  srcs: [
-    "protos/perfetto/metrics/perfetto_merged_metrics.proto",
-  ],
+    name: "perfetto_metrics-full",
+    proto: {
+        type: "full",
+    },
+    srcs: [
+        "protos/perfetto/metrics/perfetto_merged_metrics.proto",
+    ],
 }
 
 // This sample target shows how to use the perfetto client API from within the
 // Android tree.
 cc_binary {
-  name: "libperfetto_client_example",
-  srcs: [
-    "test/client_api_example.cc",
-  ],
-  static_libs: [
-    "libperfetto_client_experimental",
-    "perfetto_trace_protos",
-  ],
-  shared_libs: [
-    "libprotobuf-cpp-lite",
-    "liblog",
-  ],
-  cflags: [
-    "-DGOOGLE_PROTOBUF_NO_RTTI",
-    "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
-  ],
-  defaults: [
-    "perfetto_defaults",
-  ],
+    name: "libperfetto_client_example",
+    srcs: [
+        "test/client_api_example.cc",
+    ],
+    static_libs: [
+        "libperfetto_client_experimental",
+        "perfetto_trace_protos",
+    ],
+    shared_libs: [
+        "libprotobuf-cpp-lite",
+        "liblog",
+    ],
+    cflags: [
+        "-DGOOGLE_PROTOBUF_NO_RTTI",
+        "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
+    ],
+    defaults: [
+        "perfetto_defaults",
+    ],
 }
 
 cc_library_static {
diff --git a/BUILD b/BUILD
index b31708e..3124f4b 100644
--- a/BUILD
+++ b/BUILD
@@ -1027,6 +1027,8 @@
         "src/trace_processor/metrics/android/android_lmk_reason.sql",
         "src/trace_processor/metrics/android/android_mem.sql",
         "src/trace_processor/metrics/android/android_mem_unagg.sql",
+        "src/trace_processor/metrics/android/android_multiuser.sql",
+        "src/trace_processor/metrics/android/android_multiuser_populator.sql",
         "src/trace_processor/metrics/android/android_package_list.sql",
         "src/trace_processor/metrics/android/android_powrails.sql",
         "src/trace_processor/metrics/android/android_proxy_power.sql",
@@ -2560,6 +2562,7 @@
         "protos/perfetto/metrics/android/lmk_reason_metric.proto",
         "protos/perfetto/metrics/android/mem_metric.proto",
         "protos/perfetto/metrics/android/mem_unagg_metric.proto",
+        "protos/perfetto/metrics/android/multiuser_metric.proto",
         "protos/perfetto/metrics/android/package_list.proto",
         "protos/perfetto/metrics/android/powrails_metric.proto",
         "protos/perfetto/metrics/android/process_metadata.proto",
diff --git a/bazel/BUILD b/bazel/BUILD
index 1bf33a4..bf64b69 100644
--- a/bazel/BUILD
+++ b/bazel/BUILD
@@ -14,19 +14,25 @@
 
 config_setting(
     name = "os_osx",
-    values = {"cpu": "darwin"},
+    constraint_values = [
+        "@platforms//os:macos",
+    ],
     visibility = ["//visibility:public"],
 )
 
 config_setting(
     name = "os_linux",
-    values = {"cpu": "k8"},
+    constraint_values = [
+        "@platforms//os:linux",
+    ],
     visibility = ["//visibility:public"],
 )
 
 # Note this config does not imply MSVC.
 config_setting(
     name = "os_windows",
-    values = {"cpu": "x64_windows"},
+    constraint_values = [
+        "@platforms//os:windows",
+    ],
     visibility = ["//visibility:public"],
 )
diff --git a/docs/contributing/build-instructions.md b/docs/contributing/build-instructions.md
index c378785..ed5f135 100644
--- a/docs/contributing/build-instructions.md
+++ b/docs/contributing/build-instructions.md
@@ -48,7 +48,7 @@
 more.
 
 ```bash
-tools/gn args out/android` 
+tools/gn args out/android
 ```
 
 This will open an editor to customize the GN args. Enter:
diff --git a/protos/perfetto/metrics/android/BUILD.gn b/protos/perfetto/metrics/android/BUILD.gn
index 54a06d6..aa97665 100644
--- a/protos/perfetto/metrics/android/BUILD.gn
+++ b/protos/perfetto/metrics/android/BUILD.gn
@@ -37,6 +37,7 @@
     "lmk_reason_metric.proto",
     "mem_metric.proto",
     "mem_unagg_metric.proto",
+    "multiuser_metric.proto",
     "package_list.proto",
     "powrails_metric.proto",
     "process_metadata.proto",
diff --git a/protos/perfetto/metrics/android/multiuser_metric.proto b/protos/perfetto/metrics/android/multiuser_metric.proto
new file mode 100644
index 0000000..eba37d9
--- /dev/null
+++ b/protos/perfetto/metrics/android/multiuser_metric.proto
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+syntax = "proto2";
+
+package perfetto.protos;
+
+// Metrics for Multiuser events, such as switching users.
+message AndroidMultiuserMetric {
+
+  // Holds the data for a Multiuser event.
+  message EventData {
+    // Duration of the event (in milliseconds).
+    optional int32 duration_ms = 1;
+
+    // CPU usage of each process during the event.
+    message CpuUsage {
+      // The userId of the process (e.g. 0 or 10).
+      optional int32 user_id = 1;
+      // The name of the process.
+      optional string process_name = 2;
+      // The number of CPU cycles (in megacycles) spent by that process during the event.
+      optional int32 cpu_mcycles = 3;
+      // The ratio of this process's cycles to the total for all processes, expressed as a percentage.
+      optional float cpu_percentage = 4;
+    }
+    repeated CpuUsage cpu_usage = 2;
+  }
+
+  // Metrics for a user switch.
+  optional EventData user_switch = 1;
+}
\ No newline at end of file
diff --git a/protos/perfetto/metrics/metrics.proto b/protos/perfetto/metrics/metrics.proto
index 499099c..5f2c801 100644
--- a/protos/perfetto/metrics/metrics.proto
+++ b/protos/perfetto/metrics/metrics.proto
@@ -35,6 +35,7 @@
 import "protos/perfetto/metrics/android/lmk_reason_metric.proto";
 import "protos/perfetto/metrics/android/mem_metric.proto";
 import "protos/perfetto/metrics/android/mem_unagg_metric.proto";
+import "protos/perfetto/metrics/android/multiuser_metric.proto";
 import "protos/perfetto/metrics/android/package_list.proto";
 import "protos/perfetto/metrics/android/powrails_metric.proto";
 import "protos/perfetto/metrics/android/profiler_smaps.proto";
@@ -90,7 +91,7 @@
 
 // Root message for all Perfetto-based metrics.
 //
-// Next id: 36
+// Next id: 37
 message TraceMetrics {
   reserved 4, 10, 13, 14, 16, 19;
 
@@ -180,6 +181,9 @@
   // Profiler smaps
   optional ProfilerSmaps profiler_smaps = 35;
 
+  // Multiuser - metrics for switching users.
+  optional AndroidMultiuserMetric android_multiuser = 36;
+
   // Demo extensions.
   extensions 450 to 499;
 
diff --git a/protos/perfetto/metrics/perfetto_merged_metrics.proto b/protos/perfetto/metrics/perfetto_merged_metrics.proto
index 743a2e7..15a119f 100644
--- a/protos/perfetto/metrics/perfetto_merged_metrics.proto
+++ b/protos/perfetto/metrics/perfetto_merged_metrics.proto
@@ -702,6 +702,35 @@
 
 // End of protos/perfetto/metrics/android/mem_unagg_metric.proto
 
+// Begin of protos/perfetto/metrics/android/multiuser_metric.proto
+
+// Metrics for Multiuser events, such as switching users.
+message AndroidMultiuserMetric {
+
+  // Holds the data for a Multiuser event.
+  message EventData {
+    // Duration of the event (in milliseconds).
+    optional int32 duration_ms = 1;
+
+    // CPU usage of each process during the event.
+    message CpuUsage {
+      // The userId of the process (e.g. 0 or 10).
+      optional int32 user_id = 1;
+      // The name of the process.
+      optional string process_name = 2;
+      // The number of CPU cycles (in megacycles) spent by that process during the event.
+      optional int32 cpu_mcycles = 3;
+      // The ratio of this process's cycles to the total for all processes, expressed as a percentage.
+      optional float cpu_percentage = 4;
+    }
+    repeated CpuUsage cpu_usage = 2;
+  }
+
+  // Metrics for a user switch.
+  optional EventData user_switch = 1;
+}
+// End of protos/perfetto/metrics/android/multiuser_metric.proto
+
 // Begin of protos/perfetto/metrics/android/package_list.proto
 
 message AndroidPackageList {
@@ -1168,7 +1197,7 @@
 
 // Root message for all Perfetto-based metrics.
 //
-// Next id: 36
+// Next id: 37
 message TraceMetrics {
   reserved 4, 10, 13, 14, 16, 19;
 
@@ -1258,6 +1287,9 @@
   // Profiler smaps
   optional ProfilerSmaps profiler_smaps = 35;
 
+  // Multiuser - metrics for switching users.
+  optional AndroidMultiuserMetric android_multiuser = 36;
+
   // Demo extensions.
   extensions 450 to 499;
 
diff --git a/protos/third_party/chromium/chrome_track_event.proto b/protos/third_party/chromium/chrome_track_event.proto
index 7838501..1d832ff 100644
--- a/protos/third_party/chromium/chrome_track_event.proto
+++ b/protos/third_party/chromium/chrome_track_event.proto
@@ -156,6 +156,20 @@
   optional string site = 2;
   optional uint32 mark_hash = 3;
   optional string mark = 4;
+
+  // A randomly generated unique identifier for a given ExecutionContext
+  // (document, worker, etc). Used to be able to correlate events in a process
+  // where there are multiple execution contexts from the same site.
+  optional uint32 execution_context_id = 5;
+
+  // Indicates the sequence number of this particular mark being emitted from
+  // a particular site in the scope of a single ExecutionContext. Typical
+  // sites emit batches of events that are correlated in time (a thing started,
+  // a thing reached a given milestone, a thing completed). When these events
+  // are intermixed it is useful to know which ones are semantically related.
+  // The value is generated by the content itself, but shifted by a fixed
+  // random offset at runtime so as to limit usage as a side channel.
+  optional uint32 sequence_number = 6;
 }
 
 message ChromeWebAppBadNavigate {
diff --git a/src/base/watchdog_posix.cc b/src/base/watchdog_posix.cc
index db8a526..bd540a1 100644
--- a/src/base/watchdog_posix.cc
+++ b/src/base/watchdog_posix.cc
@@ -256,7 +256,11 @@
   struct sigevent sev = {};
   timer_t timerid;
   sev.sigev_notify = SIGEV_THREAD_ID;
+#if defined(__GLIBC__)
   sev._sigev_un._tid = base::GetThreadId();
+#else
+  sev.sigev_notify_thread_id = base::GetThreadId();
+#endif
   sev.sigev_signo = SIGABRT;
   PERFETTO_CHECK(timer_create(CLOCK_MONOTONIC, &sev, &timerid) != -1);
   timerid_ = base::make_optional(timerid);
diff --git a/src/trace_processor/metrics/BUILD.gn b/src/trace_processor/metrics/BUILD.gn
index 84b211b..8311cde 100644
--- a/src/trace_processor/metrics/BUILD.gn
+++ b/src/trace_processor/metrics/BUILD.gn
@@ -61,6 +61,8 @@
   "android/process_oom_score.sql",
   "android/profiler_smaps.sql",
   "android/mem_stats_priority_breakdown.sql",
+  "android/android_multiuser.sql",
+  "android/android_multiuser_populator.sql",
   "android/span_view_stats.sql",
   "android/android_sysui_cuj.sql",
   "android/android_sysui_cuj_jank_query.sql",
diff --git a/src/trace_processor/metrics/android/android_multiuser.sql b/src/trace_processor/metrics/android/android_multiuser.sql
new file mode 100644
index 0000000..0b94f89
--- /dev/null
+++ b/src/trace_processor/metrics/android/android_multiuser.sql
@@ -0,0 +1,25 @@
+--
+-- Copyright 2021 The Android Open Source Project
+--
+-- Licensed under the Apache License, Version 2.0 (the "License");
+-- you may not use this file except in compliance with the License.
+-- You may obtain a copy of the License at
+--
+--     https://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+
+SELECT RUN_METRIC('android/android_multiuser_populator.sql',
+    'output_table_name', 'event_user_switch',
+    'start_event', 'user_start',
+    'end_event', 'launcher_end');
+
+CREATE VIEW android_multiuser_output AS
+SELECT AndroidMultiuserMetric(
+  'user_switch', (SELECT * FROM event_user_switch)
+);
\ No newline at end of file
diff --git a/src/trace_processor/metrics/android/android_multiuser_populator.sql b/src/trace_processor/metrics/android/android_multiuser_populator.sql
new file mode 100644
index 0000000..b4d73b6
--- /dev/null
+++ b/src/trace_processor/metrics/android/android_multiuser_populator.sql
@@ -0,0 +1,116 @@
+--
+-- Copyright 2021 The Android Open Source Project
+--
+-- Licensed under the Apache License, Version 2.0 (the "License");
+-- you may not use this file except in compliance with the License.
+-- You may obtain a copy of the License at
+--
+--     https://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+
+-- Collect the important timestamps for Multiuser events.
+DROP VIEW IF EXISTS multiuser_events;
+CREATE VIEW multiuser_events AS
+SELECT
+      {{start_event}}_time_ns AS event_start_time_ns,
+      {{end_event}}_time_ns AS event_end_time_ns
+FROM
+  (
+    SELECT slice.ts AS user_start_time_ns
+    FROM slice
+    WHERE (slice.name LIKE "onBeforeStartUser%")
+    -- TODO: Use a signal based on SysUi so that it covers all switching, not just starting.
+  ),
+  (
+    SELECT slice.ts + slice.dur AS launcher_end_time_ns
+    FROM slice
+    WHERE (slice.name = "launching: com.google.android.apps.nexuslauncher")
+  );
+
+-- Calculation of the duration of the Multiuser event of interest.
+DROP VIEW IF EXISTS multiuser_timing;
+CREATE VIEW multiuser_timing AS
+SELECT
+      CAST((event_end_time_ns - event_start_time_ns) / 1e6 + 0.5 AS INT) AS duration_ms
+FROM
+  multiuser_events;
+
+
+-- Calculate CPU usage during the Multiuser event of interest.
+
+-- Get all the scheduling slices.
+DROP VIEW IF EXISTS sp_sched;
+CREATE VIEW sp_sched AS
+SELECT ts, dur, cpu, utid
+FROM sched;
+-- Get all the cpu frequency slices.
+DROP VIEW IF EXISTS sp_frequency;
+CREATE VIEW sp_frequency AS
+SELECT
+  ts,
+  lead(ts) OVER (PARTITION BY track_id ORDER BY ts) - ts as dur,
+  cpu,
+  value as freq_khz
+FROM counter
+JOIN cpu_counter_track ON counter.track_id = cpu_counter_track.id;
+-- Create the span joined table which combines cpu frequency with scheduling slices.
+DROP TABLE IF EXISTS sched_with_frequency;
+CREATE VIRTUAL TABLE sched_with_frequency
+USING SPAN_JOIN(sp_sched PARTITIONED cpu, sp_frequency PARTITIONED cpu);
+
+-- Calculate the CPU cycles spent per process during the duration.
+DROP VIEW IF EXISTS cpu_usage_all;
+CREATE VIEW cpu_usage_all AS
+SELECT
+    process.uid / 100000 AS user_id,
+    process.name AS process_name,
+    SUM(dur * freq_khz) / 1e9 AS cpu_kcycles
+FROM
+    sched_with_frequency
+    JOIN thread USING (utid)
+    JOIN process USING (upid)
+WHERE
+    ts >= (SELECT event_start_time_ns FROM multiuser_events)
+    AND
+    ts <= (SELECT event_end_time_ns FROM multiuser_events)
+GROUP BY upid, process.name
+ORDER BY cpu_kcycles DESC;
+
+-- Get the data from cpu_usage_all, but also with the percentage.
+DROP VIEW IF EXISTS cpu_usage;
+CREATE VIEW cpu_usage AS
+SELECT
+    user_id,
+    process_name,
+    CAST(cpu_kcycles / 1e3 AS INT) AS cpu_mcycles,
+    cpu_kcycles / (SELECT SUM(cpu_kcycles) FROM cpu_usage_all) * 100 AS cpu_percentage
+FROM
+    cpu_usage_all
+ORDER BY cpu_mcycles DESC LIMIT 6;
+
+
+-- Record the output for populating the proto.
+CREATE VIEW {{output_table_name}} AS
+SELECT AndroidMultiuserMetric_EventData(
+  'duration_ms', (
+    SELECT duration_ms
+    FROM multiuser_timing
+  ),
+  'cpu_usage', (
+    SELECT RepeatedField(
+      AndroidMultiuserMetric_EventData_CpuUsage(
+        'user_id', user_id,
+        'process_name', process_name,
+        'cpu_mcycles', cpu_mcycles,
+        'cpu_percentage', cpu_percentage
+      )
+    )
+    FROM cpu_usage
+  )
+);
\ No newline at end of file
diff --git a/src/trace_processor/metrics/android/android_sysui_cuj.sql b/src/trace_processor/metrics/android/android_sysui_cuj.sql
index 4d5bcd8..6b5c58d 100644
--- a/src/trace_processor/metrics/android/android_sysui_cuj.sql
+++ b/src/trace_processor/metrics/android/android_sysui_cuj.sql
@@ -34,7 +34,7 @@
     AND slice.dur > 0
     AND (
       process.name LIKE 'com.google.android%'
-      OR process.name = 'com.android.systemui')
+      OR process.name LIKE 'com.android.%')
   ORDER BY ts desc
   LIMIT 1;
 
diff --git a/src/trace_processor/python/perfetto/trace_processor/metrics.descriptor b/src/trace_processor/python/perfetto/trace_processor/metrics.descriptor
index 93c8e9b..c909308 100644
--- a/src/trace_processor/python/perfetto/trace_processor/metrics.descriptor
+++ b/src/trace_processor/python/perfetto/trace_processor/metrics.descriptor
Binary files differ
diff --git a/src/trace_processor/python/perfetto/trace_processor/metrics.descriptor.sha1 b/src/trace_processor/python/perfetto/trace_processor/metrics.descriptor.sha1
index 6a2cd2a..8f474c4 100644
--- a/src/trace_processor/python/perfetto/trace_processor/metrics.descriptor.sha1
+++ b/src/trace_processor/python/perfetto/trace_processor/metrics.descriptor.sha1
@@ -2,5 +2,5 @@
 // SHA1(tools/gen_binary_descriptors)
 // 9fc6d77de57ec76a80b76aa282f4c7cf5ce55eec
 // SHA1(protos/perfetto/metrics/metrics.proto)
-// 3729737822b6b641906d9873e02b6a2b252972d0
+// d861d7b0dd079940872852cbb4a4dfc3d67ac672
   
\ No newline at end of file
diff --git a/src/tracing/core/tracing_service_impl.cc b/src/tracing/core/tracing_service_impl.cc
index 9ca22d8..114000d 100644
--- a/src/tracing/core/tracing_service_impl.cc
+++ b/src/tracing/core/tracing_service_impl.cc
@@ -287,6 +287,29 @@
   PERFETTO_FATAL("For GCC");
 }
 
+// Appends `data` (which has `size` bytes), to `*packet`. Splits the data in
+// slices no larger than `max_slice_size`.
+void AppendOwnedSlicesToPacket(std::unique_ptr<uint8_t[]> data,
+                               size_t size,
+                               size_t max_slice_size,
+                               perfetto::TracePacket* packet) {
+  if (size <= max_slice_size) {
+    packet->AddSlice(Slice::TakeOwnership(std::move(data), size));
+    return;
+  }
+  uint8_t* src_ptr = data.get();
+  for (size_t size_left = size; size_left > 0;) {
+    const size_t slice_size = std::min(size_left, max_slice_size);
+
+    Slice slice = Slice::Allocate(slice_size);
+    memcpy(slice.own_data(), src_ptr, slice_size);
+    packet->AddSlice(std::move(slice));
+
+    src_ptr += slice_size;
+    size_left -= slice_size;
+  }
+}
+
 }  // namespace
 
 // These constants instead are defined in the header because are used by tests.
@@ -2168,8 +2191,9 @@
         continue;
       }
       tracing_session->filter_output_bytes += filtered_packet.size;
-      it->AddSlice(Slice::TakeOwnership(std::move(filtered_packet.data),
-                                        filtered_packet.size));
+      AppendOwnedSlicesToPacket(std::move(filtered_packet.data),
+                                filtered_packet.size, kMaxTracePacketSliceSize,
+                                &*it);
 
     }  // for (packet)
   }    // if (trace_filter)
diff --git a/src/tracing/core/tracing_service_impl.h b/src/tracing/core/tracing_service_impl.h
index 401aaa1..8c50713 100644
--- a/src/tracing/core/tracing_service_impl.h
+++ b/src/tracing/core/tracing_service_impl.h
@@ -77,6 +77,9 @@
   static constexpr uint8_t kSyncMarker[] = {0x82, 0x47, 0x7a, 0x76, 0xb2, 0x8d,
                                             0x42, 0xba, 0x81, 0xdc, 0x33, 0x32,
                                             0x6d, 0x57, 0xa0, 0x79};
+  static constexpr size_t kMaxTracePacketSliceSize =
+      128 * 1024 - 512;  // This is ipc::kIPCBufferSize - 512, see assertion in
+                         // tracing_integration_test.cc and b/195065199
 
   // The implementation behind the service endpoint exposed to each producer.
   class ProducerEndpointImpl : public TracingService::ProducerEndpoint {
diff --git a/src/tracing/test/tracing_integration_test.cc b/src/tracing/test/tracing_integration_test.cc
index 134ffd0..d1ca340 100644
--- a/src/tracing/test/tracing_integration_test.cc
+++ b/src/tracing/test/tracing_integration_test.cc
@@ -113,6 +113,11 @@
   EXPECT_EQ(0u, buf_stats.abi_violations());
 }
 
+static_assert(TracingServiceImpl::kMaxTracePacketSliceSize <=
+                  ipc::kIPCBufferSize - 512,
+              "Tracing service max packet slice should be smaller than IPC "
+              "buffer size (with some headroom)");
+
 }  // namespace
 
 class TracingIntegrationTest : public ::testing::Test {
diff --git a/test/BUILD.gn b/test/BUILD.gn
index 64e683a..01ae3c6 100644
--- a/test/BUILD.gn
+++ b/test/BUILD.gn
@@ -41,6 +41,7 @@
     ]
     if (enable_perfetto_traced_probes) {
       deps += [
+        "../src/protozero/filtering:bytecode_generator",
         "../src/traced/probes/ftrace",
         "../src/traced/probes/ftrace:ftrace_procfs",
       ]
diff --git a/test/end_to_end_integrationtest.cc b/test/end_to_end_integrationtest.cc
index 75cfa88..1ec13d3 100644
--- a/test/end_to_end_integrationtest.cc
+++ b/test/end_to_end_integrationtest.cc
@@ -41,6 +41,7 @@
 #include "perfetto/tracing/core/tracing_service_state.h"
 #include "src/base/test/test_task_runner.h"
 #include "src/base/test/utils.h"
+#include "src/protozero/filtering/filter_bytecode_generator.h"
 #include "src/traced/probes/ftrace/ftrace_controller.h"
 #include "src/traced/probes/ftrace/ftrace_procfs.h"
 #include "test/gtest_and_gmock.h"
@@ -74,8 +75,11 @@
 namespace {
 
 using ::testing::ContainsRegex;
+using ::testing::Each;
 using ::testing::ElementsAreArray;
 using ::testing::HasSubstr;
+using ::testing::Property;
+using ::testing::SizeIs;
 
 std::string RandomTraceFileName() {
 #if PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID)
@@ -1125,6 +1129,67 @@
   }
 }
 
+// Regression test for b/195065199. Check that trace filtering works when a
+// packet size exceeds the IPC limit. This tests that the tracing service, when
+// reassembling packets after filtering, doesn't "overglue" them. They still
+// need to be slice-able to fit into the ReadBuffers ipc.
+TEST_F(PerfettoTest, TraceFilterLargePackets) {
+  base::TestTaskRunner task_runner;
+  TestHelper helper(&task_runner);
+
+  helper.StartServiceIfRequired();
+  helper.ConnectFakeProducer();
+  helper.ConnectConsumer();
+  helper.WaitForConsumerConnect();
+
+  TraceConfig trace_config;
+  trace_config.add_buffers()->set_size_kb(1024 * 16);
+  trace_config.set_duration_ms(500);
+  auto* prod_config = trace_config.add_producers();
+  prod_config->set_producer_name("android.perfetto.FakeProducer");
+  prod_config->set_shm_size_kb(1024 * 16);
+  prod_config->set_page_size_kb(32);
+
+  static constexpr size_t kNumPackets = 3;
+  static constexpr uint32_t kRandomSeed = 42;
+  static constexpr uint32_t kMsgSize = 8 * ipc::kIPCBufferSize;
+  auto* ds_config = trace_config.add_data_sources()->mutable_config();
+  ds_config->set_name("android.perfetto.FakeProducer");
+  auto* test_config = ds_config->mutable_for_testing();
+  test_config->set_seed(kRandomSeed);
+  test_config->set_message_count(kNumPackets);
+  test_config->set_message_size(kMsgSize);
+  test_config->set_send_batch_on_register(true);
+
+  protozero::FilterBytecodeGenerator filt;
+  // Message 0: root Trace proto.
+  filt.AddNestedField(1 /* root trace.packet*/, 1);
+  filt.EndMessage();
+
+  // Message 1: TracePacket proto. Allow all fields.
+  filt.AddSimpleFieldRange(1, 1000);
+  filt.EndMessage();
+
+  trace_config.mutable_trace_filter()->set_bytecode(filt.Serialize());
+
+  // The data source is configured to emit another batch when it is started via
+  // send_batch_on_register in the TestConfig.
+  helper.StartTracing(trace_config);
+  helper.WaitForTracingDisabled();
+
+  helper.ReadData();
+  helper.WaitForReadData(/* read_count */ 0, /* timeout_ms */ 10000);
+
+  const std::vector<protos::gen::TracePacket>& packets = helper.trace();
+  EXPECT_EQ(packets.size(), kNumPackets);
+  EXPECT_THAT(packets,
+              Each(Property(&protos::gen::TracePacket::has_for_testing, true)));
+  EXPECT_THAT(
+      packets,
+      Each(Property(&protos::gen::TracePacket::for_testing,
+                    Property(&protos::gen::TestEvent::str, SizeIs(kMsgSize)))));
+}
+
 // Disable cmdline tests on sanitizets because they use fork() and that messes
 // up leak / races detections, which has been fixed only recently (see
 // https://github.com/google/sanitizers/issues/836 ).
diff --git a/test/trace_processor/parsing/android_multiuser_switch.out b/test/trace_processor/parsing/android_multiuser_switch.out
new file mode 100644
index 0000000..a49f9e3
--- /dev/null
+++ b/test/trace_processor/parsing/android_multiuser_switch.out
@@ -0,0 +1,5 @@
+android_multiuser: {
+  user_switch: {
+    duration_ms: 4900
+  }
+}
\ No newline at end of file
diff --git a/test/trace_processor/parsing/android_multiuser_switch.textproto b/test/trace_processor/parsing/android_multiuser_switch.textproto
new file mode 100644
index 0000000..223ddb6
--- /dev/null
+++ b/test/trace_processor/parsing/android_multiuser_switch.textproto
@@ -0,0 +1,48 @@
+packet {
+  ftrace_events {
+    cpu: 3
+    event {
+      timestamp: 3000000000 # 3e9
+      pid: 4064
+      print {
+        buf: "S|1204|onBeforeStartUser-10|0\n"
+      }
+    }
+  }
+}
+packet {
+  ftrace_events {
+    cpu: 3
+    event {
+      timestamp: 3100000000
+      pid: 4064
+      print {
+        buf: "F|1204|onBeforeStartUser-10|0\n"
+      }
+    }
+  }
+}
+packet {
+  ftrace_events {
+    cpu: 2
+    event {
+      timestamp: 5200000000
+      pid: 4065
+      print {
+        buf: "S|1204|launching: com.google.android.apps.nexuslauncher|0\n"
+      }
+    }
+  }
+}
+packet {
+  ftrace_events {
+    cpu: 2
+    event {
+      timestamp: 7900000000 # 7.9e9
+      pid: 4065
+      print {
+        buf: "F|1204|launching: com.google.android.apps.nexuslauncher|0\n"
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/test/trace_processor/parsing/index b/test/trace_processor/parsing/index
index f1ff4c6..b586e28 100644
--- a/test/trace_processor/parsing/index
+++ b/test/trace_processor/parsing/index
@@ -160,3 +160,6 @@
 
 # Regression test for b/193721088 (infra prepending " done\n" to atrace)
 ../../data/atrace_b_193721088.atr sched_smoke.sql sched_smoke_trailing_empty.out
+
+# Multiuser
+android_multiuser_switch.textproto android_multiuser android_multiuser_switch.out
diff --git a/tools/gen_android_bp b/tools/gen_android_bp
index c19413f..82fe1f1 100755
--- a/tools/gen_android_bp
+++ b/tools/gen_android_bp
@@ -98,6 +98,12 @@
     '//src/trace_processor:trace_processor_shell',
 ]
 
+needs_libfts = [
+    '//:perfetto_unittests',
+    '//src/trace_processor:trace_processor_shell',
+    '//tools/trace_to_text:trace_to_text',
+]
+
 # All module names are prefixed with this string to avoid collisions.
 module_prefix = 'perfetto_'
 
@@ -147,12 +153,6 @@
 # Compiler defines which are passed through to the blueprint.
 define_allowlist = r'^(GOOGLE_PROTO.*)|(ZLIB_.*)|(USE_MMAP)|(HAVE_HIDDEN)$'
 
-# Shared libraries which are not in PDK.
-library_not_in_pdk = {
-    'libandroid',
-    'libservices',
-}
-
 # The directory where the generated perfetto_build_flags.h will be copied into.
 buildflags_dir = 'include/perfetto/base/build_configs/android_tree'
 
@@ -390,13 +390,13 @@
   if isinstance(value, set):
     value = sorted(value)
   if isinstance(value, list):
-    output.append('  %s: [' % name)
+    output.append('    %s: [' % name)
     for item in sorted(value) if sort else value:
-      output.append('    "%s",' % item)
-    output.append('  ],')
+      output.append('        "%s",' % item)
+    output.append('    ],')
     return
   if isinstance(value, bool):
-    output.append('  %s: true,' % name)
+    output.append('    %s: true,' % name)
     return
   if isinstance(value, Target):
     value.to_string(output)
@@ -406,12 +406,12 @@
     for k, v in value.items():
       write_blueprint_key_value(kv_output, k, v)
 
-    output.append('  %s: {' % name)
+    output.append('    %s: {' % name)
     for line in kv_output:
-      output.append('  %s' % line)
-    output.append('  },')
+      output.append('    %s' % line)
+    output.append('    },')
     return
-  output.append('  %s: "%s",' % (name, value))
+  output.append('    %s: "%s",' % (name, value))
 
 
 class Target(object):
@@ -438,10 +438,10 @@
     self._output_field(nested_out, 'strip')
 
     if nested_out:
-      output.append('  %s: {' % self.name)
+      output.append('    %s: {' % self.name)
       for line in nested_out:
-        output.append('  %s' % line)
-      output.append('  },')
+        output.append('    %s' % line)
+      output.append('    },')
 
   def _output_field(self, output, name, sort=True):
     value = getattr(self, name)
@@ -478,6 +478,7 @@
     self.tool_files = None
     self.android = Target('android')
     self.host = Target('host')
+    self.musl = Target('musl')
     self.lto = None
     self.stl = None
     self.dist = dict()
@@ -533,33 +534,28 @@
     target_out = []
     self._output_field(target_out, 'android')
     self._output_field(target_out, 'host')
+    self._output_field(target_out, 'musl')
     if target_out:
-      output.append('  target: {')
+      output.append('    target: {')
       for line in target_out:
-        output.append('  %s' % line)
-      output.append('  },')
-
-    disable_pdk = any(name in library_not_in_pdk for name in self.shared_libs)
-    if self.user_debug_flag or disable_pdk:
-      output.append('  product_variables: {')
-      if disable_pdk:
-        output.append('    pdk: {')
-        output.append('      enabled: false,')
-        output.append('    },')
-      if self.user_debug_flag:
-        output.append('    debuggable: {')
-        output.append(
-            '      cflags: ["-DPERFETTO_BUILD_WITH_ANDROID_USERDEBUG"],')
-        output.append('    },')
-      output.append('  },')
-    if self.lto is not None:
-      output.append('  target: {')
-      output.append('    android: {')
-      output.append('      lto: {')
-      output.append('        thin: %s,' % 'true' if self.lto else 'false')
-      output.append('      },')
+        output.append('    %s' % line)
       output.append('    },')
-      output.append('  },')
+
+    if self.user_debug_flag:
+      output.append('    product_variables: {')
+      output.append('        debuggable: {')
+      output.append(
+          '            cflags: ["-DPERFETTO_BUILD_WITH_ANDROID_USERDEBUG"],')
+      output.append('        },')
+      output.append('    },')
+    if self.lto is not None:
+      output.append('    target: {')
+      output.append('        android: {')
+      output.append('            lto: {')
+      output.append('                thin: %s,' % 'true' if self.lto else 'false')
+      output.append('            },')
+      output.append('        },')
+      output.append('    },')
     output.append('}')
     output.append('')
 
@@ -875,6 +871,9 @@
       for src in target.sources
       if is_supported_source_file(src))
 
+  if name_without_toolchain in needs_libfts:
+    module.musl.static_libs.add('libfts')
+
   if target.type in gn_utils.LINKER_UNIT_TYPES:
     module.cflags.update(_get_cflags(target))
 
diff --git a/ui/release/channels.json b/ui/release/channels.json
index c13f7da..6c58310 100644
--- a/ui/release/channels.json
+++ b/ui/release/channels.json
@@ -2,11 +2,11 @@
   "channels": [
     {
       "name": "stable",
-      "rev": "448de39fa777ebfb143fb407b3f78ba6f422ae04"
+      "rev": "5958067b9deacabd88fa1952a011f6a3c98a238c"
     },
     {
       "name": "canary",
-      "rev": "e8ca899d9d2bfba9b68f8e05908372c1379c410b"
+      "rev": "e3da8549f8b4877442f7293d8e2f7357513f2d6b"
     },
     {
       "name": "autopush",
diff --git a/ui/src/assets/common.scss b/ui/src/assets/common.scss
index d02efb3..e03adcf 100644
--- a/ui/src/assets/common.scss
+++ b/ui/src/assets/common.scss
@@ -219,6 +219,14 @@
         td.drop-location {
           background-color: hsla(210, 38%, 95%, 1);
         }
+        .total-aggregation {
+          white-space: pre;
+          font-weight: 600;
+          font-size: 12px
+        }
+      }
+      td {
+        height: 25px;
       }
       .disabled {
         cursor: default;
diff --git a/ui/src/assets/record.scss b/ui/src/assets/record.scss
index e360857..f732e25 100644
--- a/ui/src/assets/record.scss
+++ b/ui/src/assets/record.scss
@@ -782,6 +782,17 @@
     }
   }
 
+  .chrome-categories {
+    margin: var(--record-section-padding) 0;
+
+    display: flex;
+    flex-direction: row;
+
+    .categories-list {
+      width: 50%;
+    }
+  }
+
   .dropdown {
     border: 1px solid #eee;
     outline: none;
@@ -811,8 +822,8 @@
     &.singlecolumn {
       margin: var(--record-section-padding) 0;
       padding: 0;
-      max-width: 50%;
-      width: 50%;
+      max-width: 100%;
+      width: 100%;
       overflow-y: auto;
       height: 400px;
       optgroup {
diff --git a/ui/src/common/actions.ts b/ui/src/common/actions.ts
index 83471f8..dee5f4d 100644
--- a/ui/src/common/actions.ts
+++ b/ui/src/common/actions.ts
@@ -36,7 +36,7 @@
   PivotAttrs,
   SubQueryAttrs,
   TableAttrs
-} from './pivot_table_data';
+} from './pivot_table_common';
 import {
   AdbRecordingTarget,
   Area,
@@ -876,7 +876,9 @@
     name: string,
     pivotTableId: string,
     selectedPivots: PivotAttrs[],
-    selectedAggregations: AggregationAttrs[]
+    selectedAggregations: AggregationAttrs[],
+    traceTime?: TraceTime,
+    selectedTrackIds?: number[]
   }): void {
     state.pivotTable[args.pivotTableId] = {
       id: args.pivotTableId,
@@ -884,6 +886,8 @@
       selectedPivots: args.selectedPivots,
       selectedAggregations: args.selectedAggregations,
       isLoadingQuery: false,
+      traceTime: args.traceTime,
+      selectedTrackIds: args.selectedTrackIds
     };
   },
 
@@ -931,6 +935,16 @@
         args.selectedAggregations.map(
             aggregation => Object.assign({}, aggregation));
   },
+
+  setPivotTableRange(state: StateDraft, args: {
+    pivotTableId: string,
+    traceTime?: TraceTime,
+    selectedTrackIds?: number[]
+  }) {
+    const pivotTable = state.pivotTable[args.pivotTableId];
+    pivotTable.traceTime = args.traceTime;
+    pivotTable.selectedTrackIds = args.selectedTrackIds;
+  }
 };
 
 // When we are on the frontend side, we don't really want to execute the
diff --git a/ui/src/common/channels.ts b/ui/src/common/channels.ts
index fd0a6bd..ad0837c 100644
--- a/ui/src/common/channels.ts
+++ b/ui/src/common/channels.ts
@@ -12,6 +12,8 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
+import {globals} from '../frontend/globals';
+
 const DEFAULT_CHANNEL = 'stable';
 const CHANNEL_KEY = 'perfettoUiChannel';
 
@@ -43,4 +45,5 @@
   getCurrentChannel();  // Cache the current channel before mangling next one.
   nextChannel = channel;
   localStorage.setItem(CHANNEL_KEY, channel);
+  globals.rafScheduler.scheduleFullRedraw();
 }
diff --git a/ui/src/common/pivot_table_common.ts b/ui/src/common/pivot_table_common.ts
new file mode 100644
index 0000000..ac463e5
--- /dev/null
+++ b/ui/src/common/pivot_table_common.ts
@@ -0,0 +1,186 @@
+// Copyright (C) 2021 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+import {getHiddenPivotAlias} from './pivot_table_query_generator';
+import {Row} from './query_result';
+
+export const AVAILABLE_TABLES = ['slice'];
+export const AVAILABLE_AGGREGATIONS = ['COUNT', 'SUM', 'AVG', 'MIN', 'MAX'];
+export const WHERE_FILTERS = ['slice.dur != -1'];
+export const SLICE_STACK_HELPER_COLUMNS =
+    ['depth', 'stack_id', 'parent_stack_id'];
+export const SLICE_STACK_COLUMN = 'name (stack)';
+export const DEFAULT_PIVOT_TABLE_ID = 'pivot-table';
+export const SLICE_AGGREGATION_PIVOT_TABLE_ID = 'pivot-table-slices';
+
+export interface AggregationAttrs {
+  tableName: string;
+  columnName: string;
+  aggregation: string;
+  order: string;
+}
+
+export interface PivotAttrs {
+  tableName: string;
+  columnName: string;
+  isStackPivot: boolean;
+}
+
+export interface TableAttrs {
+  tableName: string;
+  columns: string[];
+}
+
+export interface ColumnAttrs {
+  name: string;
+  index: number;
+  tableName: string;
+  columnName: string;
+  aggregation?: string;
+  order?: string;
+  isStackColumn: boolean;
+}
+
+export interface RowAttrs {
+  row: Row;
+  expandableColumns: Set<string>;  // Columns at which the row can be expanded.
+  expandedRows: Map<string, {
+    isExpanded: boolean,
+    rows: RowAttrs[]
+  }>;  // Contains the expanded rows of each expanded expandableColumn.
+  whereFilters: Map<string, string>;  // Where filters of each column that
+                                      // joins the row with its parent.
+  loadingColumn?: string;
+  depth: number;
+}
+
+export interface SubQueryAttrs {
+  rowIndices: number[];
+  columnIdx: number;
+  value: string;
+  expandedRowColumns: string[];
+}
+
+export interface SubQueryAttrs {
+  rowIndices: number[];
+  columnIdx: number;
+  value: string;
+}
+
+export interface PivotTableQueryResponse {
+  columns: ColumnAttrs[];
+  error?: string;
+  durationMs: number;
+  rows: RowAttrs[];
+  totalAggregations?: Row;
+}
+
+// Determine if the column provided is a stack column that can be expanded
+// into descendants.
+export function isStackPivot(tableName: string, columnName: string) {
+  if (tableName === 'slice' && columnName === SLICE_STACK_COLUMN) {
+    return true;
+  }
+  return false;
+}
+
+// Get the helper columns that are needed to expand a stack pivot.
+export function getHiddenStackHelperColumns(pivot: PivotAttrs) {
+  const hiddenColumns: Array<{pivotAttrs: PivotAttrs, columnAlias: string}> =
+      [];
+  if (pivot.tableName === 'slice') {
+    for (const column of SLICE_STACK_HELPER_COLUMNS) {
+      const pivotAttrs = {
+        tableName: pivot.tableName,
+        columnName: column,
+        isStackPivot: false
+      };
+      hiddenColumns.push(
+          {pivotAttrs, columnAlias: getHiddenPivotAlias(pivotAttrs)});
+    }
+  }
+  return hiddenColumns;
+}
+
+// Removing unnecessary columns from table and adding stack column if it exists.
+export function removeHiddenAndAddStackColumns(
+    tableName: string, columns: string[]) {
+  if (tableName === 'slice') {
+    // Removing "cat" and "slice_id" to maintain the original schema of the
+    // slice table that's compatible with descendant_slice_by_stack table.
+    columns = columns.filter(
+        column => ['stack_id', 'parent_stack_id', 'cat', 'slice_id'].includes(
+                      column) === false);
+    columns.push(SLICE_STACK_COLUMN);
+  }
+  return columns;
+}
+
+// Get a list of tables that include the descendants that need to be queried.
+export function getDescendantsTables(pivots: PivotAttrs[], stackId: string) {
+  const descendantsTables = [...AVAILABLE_TABLES];
+  let descendantsTable = 'undefined_table';
+  let replaceIdx = -1;
+  if (pivots.length > 0 && pivots[0].tableName === 'slice') {
+    // Replace slice table with descendants table.
+    descendantsTable = `descendant_slice_by_stack(${stackId}) AS slice`;
+    replaceIdx = descendantsTables.indexOf('slice');
+    if (replaceIdx === -1) {
+      throw Error('Slice table not found.');
+    }
+  }
+  if (pivots.length === 0 ||
+      !isStackPivot(pivots[0].tableName, pivots[0].columnName) ||
+      replaceIdx === -1) {
+    throw Error('Invalid Arguments to "getDescendantsTables"');
+  }
+  descendantsTables[replaceIdx] = descendantsTable;
+  return descendantsTables;
+}
+
+// Get the stack id column in the stack pivot table.
+export function getStackColumn(pivot: PivotAttrs) {
+  if (pivot.tableName === 'slice') {
+    return {tableName: 'slice', columnName: 'stack_id', isStackPivot: false};
+  }
+  throw Error('"getStackColumn" called on pivot that is not a stack column.');
+}
+
+// Get the parent stack id column in the stack pivot table.
+export function getParentStackColumn(pivot: PivotAttrs) {
+  if (pivot.tableName === 'slice') {
+    return {
+      tableName: 'slice',
+      columnName: 'parent_stack_id',
+      isStackPivot: false
+    };
+  }
+  throw Error(
+      '"getParentStackColumn" called on pivot that is not a stack column.');
+}
+
+// Get the depth column in the stack pivot table.
+export function getStackDepthColumn(pivot: PivotAttrs) {
+  if (pivot.tableName === 'slice') {
+    return {tableName: 'slice', columnName: 'depth', isStackPivot: false};
+  }
+  throw Error(
+      '"getStackDepthColumn" called on pivot that is not a stack column.');
+}
+
+// Get a where filter that restricts the query by the given stack id.
+export function getParentStackWhereFilter(pivot: PivotAttrs, stackId: string) {
+  const stackColumn = getStackColumn(pivot);
+  return `${stackColumn.tableName}.${stackColumn.columnName} = ${stackId}`;
+}
diff --git a/ui/src/common/pivot_table_data.ts b/ui/src/common/pivot_table_data.ts
deleted file mode 100644
index 386248d..0000000
--- a/ui/src/common/pivot_table_data.ts
+++ /dev/null
@@ -1,68 +0,0 @@
-// Copyright (C) 2021 The Android Open Source Project
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-import {Row} from './query_result';
-
-export const AVAILABLE_TABLES = ['slice'];
-export const AVAILABLE_AGGREGATIONS = ['COUNT', 'SUM', 'AVG', 'MIN', 'MAX'];
-export const WHERE_FILTERS = ['slice.dur != -1'];
-
-export interface AggregationAttrs {
-  tableName: string;
-  columnName: string;
-  aggregation: string;
-  order: string;
-}
-
-export interface PivotAttrs {
-  tableName: string;
-  columnName: string;
-}
-
-export interface TableAttrs {
-  tableName: string;
-  columns: string[];
-}
-
-export interface ColumnAttrs {
-  name: string;
-  index: number;
-  tableName: string;
-  columnName: string;
-  aggregation?: string;
-  order?: string;
-}
-
-export interface RowAttrs {
-  row: Row;
-  isExpanded: boolean;
-  expandableColumn?: string;  // Column at which the row can be expanded.
-  rows?:
-      RowAttrs[];  // Contains the expanded rows, set after the row is expanded.
-  whereFilter?: string;  // Where filter that joins the row with its parent.
-  isLoadingQuery: boolean;
-}
-
-export interface SubQueryAttrs {
-  rowIndices: number[];
-  columnIdx: number;
-  value: string;
-}
-
-export interface PivotTableQueryResponse {
-  columns: ColumnAttrs[];
-  error?: string;
-  durationMs: number;
-  rows: RowAttrs[];
-}
diff --git a/ui/src/common/pivot_table_query_generator.ts b/ui/src/common/pivot_table_query_generator.ts
index 44488e3..1e55eb6 100644
--- a/ui/src/common/pivot_table_query_generator.ts
+++ b/ui/src/common/pivot_table_query_generator.ts
@@ -12,12 +12,24 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-import {AggregationAttrs, PivotAttrs} from './pivot_table_data';
+import {
+  AggregationAttrs,
+  AVAILABLE_TABLES,
+  getHiddenStackHelperColumns,
+  getParentStackWhereFilter,
+  getStackColumn,
+  getStackDepthColumn,
+  PivotAttrs,
+} from './pivot_table_common';
 
 export function getPivotAlias(pivot: PivotAttrs): string {
   return `${pivot.tableName} ${pivot.columnName}`;
 }
 
+export function getHiddenPivotAlias(pivot: PivotAttrs) {
+  return getPivotAlias(pivot) + ' (hidden)';
+}
+
 export function getAggregationAlias(aggregation: AggregationAttrs): string {
   return `${aggregation.tableName} ${aggregation.columnName} (${
       aggregation.aggregation})`;
@@ -27,10 +39,79 @@
   return `"${getPivotAlias(pivot)}"`;
 }
 
+export function getSqlHiddenPivotAlias(pivot: PivotAttrs): string {
+  return `"${getHiddenPivotAlias(pivot)}"`;
+}
+
 export function getSqlAggregationAlias(aggregation: AggregationAttrs): string {
   return `"${getAggregationAlias(aggregation)}"`;
 }
 
+export function getAggregationOverStackAlias(aggregation: AggregationAttrs):
+    string {
+  return `${getAggregationAlias(aggregation)} (stack)`;
+}
+
+export function getSqlAggregationOverStackAlias(aggregation: AggregationAttrs):
+    string {
+  return `"${getAggregationOverStackAlias(aggregation)}"`;
+}
+
+export function getTotalAggregationAlias(aggregation: AggregationAttrs):
+    string {
+  return `${getAggregationAlias(aggregation)} (total)`;
+}
+
+export function getSqlTotalAggregationAlias(aggregation: AggregationAttrs):
+    string {
+  return `"${getTotalAggregationAlias(aggregation)}"`;
+}
+
+// Returns an array of pivot aliases along with any additional pivot aliases.
+export function getSqlAliasedPivotColumns(pivots: PivotAttrs[]): string[] {
+  const pivotCols = [];
+  for (const pivot of pivots) {
+    pivotCols.push(getSqlPivotAlias(pivot));
+    if (pivot.isStackPivot) {
+      pivotCols.push(...getHiddenStackHelperColumns(pivot).map(
+          column => `"${column.columnAlias}"`));
+    }
+  }
+  return pivotCols;
+}
+
+export function getAliasedPivotColumns(pivots: PivotAttrs[]) {
+  const pivotCols: Array<{pivotAttrs: PivotAttrs, columnAlias: string}> = [];
+  for (const pivot of pivots) {
+    pivotCols.push({pivotAttrs: pivot, columnAlias: getPivotAlias(pivot)});
+    if (pivot.isStackPivot) {
+      pivotCols.push(...getHiddenStackHelperColumns(pivot));
+    }
+  }
+  return pivotCols;
+}
+
+// Returns an array of aggregation aliases along with total aggregations if
+// necessary.
+function getSqlAliasedAggregationsColumns(
+    aggregations: AggregationAttrs[],
+    hasPivotsSelected: boolean,
+    isStackQuery: boolean): string[] {
+  const aggCols =
+      aggregations.map(aggregation => getSqlAggregationAlias(aggregation));
+
+  if (hasPivotsSelected) {
+    aggCols.push(...aggregations.map(
+        aggregation => getSqlTotalAggregationAlias(aggregation)));
+  }
+
+  if (isStackQuery) {
+    aggCols.push(...aggregations.map(
+        aggregation => getSqlAggregationOverStackAlias(aggregation)));
+  }
+  return aggCols;
+}
+
 export class PivotTableQueryGenerator {
   // Generates a query that selects all pivots and aggregations and joins any
   // tables needed by them together. All pivots are renamed into the format
@@ -39,14 +120,24 @@
   // getAggregationAlias).
   private generateJoinQuery(
       pivots: PivotAttrs[], aggregations: AggregationAttrs[],
-      whereFilters: string[]): string {
+      whereFilters: string[], joinTables: string[]): string {
     let joinQuery = 'SELECT\n';
 
     const pivotCols = [];
     for (const pivot of pivots) {
-      pivotCols.push(
-          `${pivot.tableName}.${pivot.columnName} AS ` +
-          `${getSqlPivotAlias(pivot)}`);
+      if (pivot.isStackPivot) {
+        pivotCols.push(
+            `${pivot.tableName}.name AS ` +
+            `${getSqlPivotAlias(pivot)}`);
+
+        pivotCols.push(...getHiddenStackHelperColumns(pivot).map(
+            column => `${column.pivotAttrs.tableName}.${
+                column.pivotAttrs.columnName} AS "${column.columnAlias}"`));
+      } else {
+        pivotCols.push(
+            `${pivot.tableName}.${pivot.columnName} AS ` +
+            `${getSqlPivotAlias(pivot)}`);
+      }
     }
 
     const aggCols = [];
@@ -58,7 +149,9 @@
 
     joinQuery += pivotCols.concat(aggCols).join(',\n  ');
     joinQuery += '\n';
-    joinQuery += 'FROM slice\n';
+    joinQuery += 'FROM\n';
+    joinQuery += joinTables.join(',\n  ');
+    joinQuery += '\n';
     joinQuery += 'WHERE\n';
     joinQuery += whereFilters.join(' AND\n  ');
     joinQuery += '\n';
@@ -69,14 +162,23 @@
   // all sets of appended pivots ({pivot1}, {pivot1, pivot2}, etc).
   private generateAggregationQuery(
       pivots: PivotAttrs[], aggregations: AggregationAttrs[],
-      whereFilters: string[]): string {
+      whereFilters: string[], joinTables: string[],
+      isStackQuery: boolean): string {
     // No need for this query if there are no aggregations.
     if (aggregations.length === 0) {
-      return this.generateJoinQuery(pivots, aggregations, whereFilters);
+      return this.generateJoinQuery(
+          pivots, aggregations, whereFilters, joinTables);
     }
 
     let aggQuery = 'SELECT\n';
-    const pivotCols = pivots.map(pivot => getSqlPivotAlias(pivot));
+    const pivotCols = getSqlAliasedPivotColumns(pivots);
+    let partitionByPivotCols = pivotCols;
+    if (pivots.length > 0 && pivots[0].isStackPivot) {
+      partitionByPivotCols = [];
+      partitionByPivotCols.push(
+          getSqlHiddenPivotAlias(getStackColumn(pivots[0])));
+      partitionByPivotCols.push(...getSqlAliasedPivotColumns(pivots.slice(1)));
+    }
 
     const aggCols = [];
     for (const aggregation of aggregations) {
@@ -90,16 +192,30 @@
         continue;
       }
 
+      // Add total aggregations column.
+      aggCols.push(
+          `${aggColPrefix} OVER () AS ` +
+          `${getSqlTotalAggregationAlias(aggregation)}`);
+
+      // Add aggregation over stack column.
+      if (isStackQuery) {
+        aggCols.push(
+            `${aggColPrefix} OVER (PARTITION BY ` +
+            `${partitionByPivotCols[0]}) AS ` +
+            `${getSqlAggregationOverStackAlias(aggregation)}`);
+      }
+
       aggCols.push(
           `${aggColPrefix} OVER (PARTITION BY ` +
-          `${pivotCols.join(',  ')}) AS ` +
+          `${partitionByPivotCols.join(',  ')}) AS ` +
           `${getSqlAggregationAlias(aggregation)}`);
     }
 
     aggQuery += pivotCols.concat(aggCols).join(',\n  ');
     aggQuery += '\n';
     aggQuery += 'FROM (\n';
-    aggQuery += this.generateJoinQuery(pivots, aggregations, whereFilters);
+    aggQuery +=
+        this.generateJoinQuery(pivots, aggregations, whereFilters, joinTables);
     aggQuery += ')\n';
     return aggQuery;
   }
@@ -107,9 +223,10 @@
   // Takes a list of pivots and aggregations and generates a query that
   // extracts all pivots and aggregation partitions and groups by all
   // columns and orders by each aggregation as requested.
-  generateQuery(
+  private generateQueryImpl(
       pivots: PivotAttrs[], aggregations: AggregationAttrs[],
-      whereFilters: string[]): string {
+      whereFilters: string[], joinTables: string[], isStackQuery: boolean,
+      orderBy: boolean): string {
     // No need to generate query if there is no selected pivots or
     // aggregations.
     if (pivots.length === 0 && aggregations.length === 0) {
@@ -118,38 +235,87 @@
 
     let query = '\nSELECT\n';
 
-    const pivotCols = pivots.map(pivot => getSqlPivotAlias(pivot));
-    const aggCols =
-        aggregations.map(aggregation => getSqlAggregationAlias(aggregation));
+    const pivotCols = getSqlAliasedPivotColumns(pivots);
+    const aggCols = getSqlAliasedAggregationsColumns(
+        aggregations,
+        /* has_pivots_selected = */ pivots.length > 0,
+        isStackQuery);
 
     query += pivotCols.concat(aggCols).join(',\n  ');
     query += '\n';
     query += 'FROM (\n';
-    query += this.generateAggregationQuery(pivots, aggregations, whereFilters);
+    query += this.generateAggregationQuery(
+        pivots, aggregations, whereFilters, joinTables, isStackQuery);
     query += ')\n';
     query += 'GROUP BY ';
 
-    // Generate an array from 1 to size (number of pivots and aggregation
-    // partitions) into a string to group by all columns.
-    const size = pivots.length + aggregations.length;
-    const groupByQuery =
-        new Array(size).fill(1).map((_, i) => i + 1).join(',  ');
-    query += groupByQuery;
+    // Grouping by each pivot, additional pivots, and aggregations.
+    const aggregationsGroupBy =
+        aggregations.map(aggregation => getSqlAggregationAlias(aggregation));
+    query += pivotCols.concat(aggregationsGroupBy).join(',  ');
     query += '\n';
 
-    // For each aggregation partition (found after pivot columns) we order by
-    // either 'DESC' or 'ASC' as requested (DESC by default).
-    if (aggregations.length > 0) {
+    const pivotsOrderBy = [];
+
+    // Sort by depth first if generating a stack query, to ensure that the
+    // parents appear first before their children and allow us to nest the
+    // results into an expandable structure.
+    if (orderBy && isStackQuery) {
+      pivotsOrderBy.push(
+          `${getSqlHiddenPivotAlias(getStackDepthColumn(pivots[0]))} ASC`);
+    }
+
+    // For each aggregation we order by either 'DESC' or 'ASC' as
+    // requested (DESC by default).
+    const orderString = (aggregation: AggregationAttrs) =>
+        `${getSqlAggregationAlias(aggregation)} ` +
+        `${aggregation.order}`;
+    const aggregationsOrderBy =
+        aggregations.map(aggregation => orderString(aggregation));
+
+    if (orderBy && pivotsOrderBy.length + aggregationsOrderBy.length > 0) {
       query += 'ORDER BY ';
-      const orderString = (i: number) => `${i + 1 + pivots.length} ` +
-          `${aggregations[i].order}`;
-      const orderByQuery = new Array(aggregations.length)
-                               .fill(1)
-                               .map((_, i) => orderString(i))
-                               .join(',  ');
-      query += orderByQuery;
+      query += pivotsOrderBy.concat(aggregationsOrderBy).join(',  ');
       query += '\n';
     }
     return query;
   }
+
+  generateQuery(
+      pivots: PivotAttrs[], aggregations: AggregationAttrs[],
+      whereFilters: string[], joinTables: string[]) {
+    return this.generateQueryImpl(
+        pivots,
+        aggregations,
+        whereFilters,
+        joinTables,
+        /* is_stack_query = */ false,
+        /* order_by = */ true);
+  }
+
+  generateStackQuery(
+      pivots: PivotAttrs[], aggregations: AggregationAttrs[],
+      whereFilters: string[], joinTables: string[], stackId: string) {
+    const stackQuery = this.generateQueryImpl(
+        pivots,
+        aggregations,
+        whereFilters,
+        joinTables,
+        /* is_stack_query = */ true,
+        /* order_by = */ true);
+
+    // Query the next column rows for the parent row.
+    if (pivots.length > 1) {
+      const stackPivot = pivots[0];
+      const currStackQuery = this.generateQueryImpl(
+          pivots,
+          aggregations,
+          whereFilters.concat(getParentStackWhereFilter(stackPivot, stackId)),
+          AVAILABLE_TABLES,
+          /* is_stack_query = */ true,
+          /* order_by = */ false);
+      return `${currStackQuery} UNION ALL ${stackQuery}`;
+    }
+    return stackQuery;
+  }
 }
\ No newline at end of file
diff --git a/ui/src/common/pivot_table_query_generator_unittest.ts b/ui/src/common/pivot_table_query_generator_unittest.ts
index 3a7a740..93681c7 100644
--- a/ui/src/common/pivot_table_query_generator_unittest.ts
+++ b/ui/src/common/pivot_table_query_generator_unittest.ts
@@ -15,15 +15,18 @@
 import {
   AggregationAttrs,
   PivotAttrs,
+  SLICE_STACK_COLUMN,
   WHERE_FILTERS,
-} from './pivot_table_data';
+} from './pivot_table_common';
 import {PivotTableQueryGenerator} from './pivot_table_query_generator';
 
+const TABLES = ['slice'];
+
 test('Generate query with pivots and aggregations', () => {
   const pivotTableQueryGenerator = new PivotTableQueryGenerator();
   const selectedPivots: PivotAttrs[] = [
-    {tableName: 'slice', columnName: 'type'},
-    {tableName: 'slice', columnName: 'id'}
+    {tableName: 'slice', columnName: 'type', isStackPivot: false},
+    {tableName: 'slice', columnName: 'id', isStackPivot: false}
   ];
   const selectedAggregations: AggregationAttrs[] = [
     {aggregation: 'SUM', tableName: 'slice', columnName: 'dur', order: 'DESC'}
@@ -31,11 +34,13 @@
   const expectedQuery = '\nSELECT\n' +
       '"slice type",\n' +
       '  "slice id",\n' +
-      '  "slice dur (SUM)"\n' +
+      '  "slice dur (SUM)",\n' +
+      '  "slice dur (SUM) (total)"\n' +
       'FROM (\n' +
       'SELECT\n' +
       '"slice type",\n' +
       '  "slice id",\n' +
+      '  SUM("slice dur (SUM)") OVER () AS "slice dur (SUM) (total)",\n' +
       '  SUM("slice dur (SUM)") OVER (PARTITION BY "slice type",  "slice id")' +
       ' AS "slice dur (SUM)"\n' +
       'FROM (\n' +
@@ -43,23 +48,24 @@
       'slice.type AS "slice type",\n' +
       '  slice.id AS "slice id",\n' +
       '  slice.dur AS "slice dur (SUM)"\n' +
-      'FROM slice\n' +
+      'FROM\n' +
+      'slice\n' +
       'WHERE\n' +
       'slice.dur != -1\n' +
       ')\n' +
       ')\n' +
-      'GROUP BY 1,  2,  3\n' +
-      'ORDER BY 3 DESC\n';
+      'GROUP BY "slice type",  "slice id",  "slice dur (SUM)"\n' +
+      'ORDER BY "slice dur (SUM)" DESC\n';
   expect(pivotTableQueryGenerator.generateQuery(
-             selectedPivots, selectedAggregations, WHERE_FILTERS))
+             selectedPivots, selectedAggregations, WHERE_FILTERS, TABLES))
       .toEqual(expectedQuery);
 });
 
 test('Generate query with pivots', () => {
   const pivotTableQueryGenerator = new PivotTableQueryGenerator();
   const selectedPivots: PivotAttrs[] = [
-    {tableName: 'slice', columnName: 'type'},
-    {tableName: 'slice', columnName: 'id'}
+    {tableName: 'slice', columnName: 'type', isStackPivot: false},
+    {tableName: 'slice', columnName: 'id', isStackPivot: false}
   ];
   const selectedAggregations: AggregationAttrs[] = [];
   const expectedQuery = '\nSELECT\n' +
@@ -69,13 +75,14 @@
       'SELECT\n' +
       'slice.type AS "slice type",\n' +
       '  slice.id AS "slice id"\n' +
-      'FROM slice\n' +
+      'FROM\n' +
+      'slice\n' +
       'WHERE\n' +
       'slice.dur != -1\n' +
       ')\n' +
-      'GROUP BY 1,  2\n';
+      'GROUP BY "slice type",  "slice id"\n';
   expect(pivotTableQueryGenerator.generateQuery(
-             selectedPivots, selectedAggregations, WHERE_FILTERS))
+             selectedPivots, selectedAggregations, WHERE_FILTERS, TABLES))
       .toEqual(expectedQuery);
 });
 
@@ -97,14 +104,164 @@
       'SELECT\n' +
       'slice.dur AS "slice dur (SUM)",\n' +
       '  slice.dur AS "slice dur (MAX)"\n' +
-      'FROM slice\n' +
+      'FROM\n' +
+      'slice\n' +
       'WHERE\n' +
       'slice.dur != -1\n' +
       ')\n' +
       ')\n' +
-      'GROUP BY 1,  2\n' +
-      'ORDER BY 1 DESC,  2 ASC\n';
+      'GROUP BY "slice dur (SUM)",  "slice dur (MAX)"\n' +
+      'ORDER BY "slice dur (SUM)" DESC,  "slice dur (MAX)" ASC\n';
   expect(pivotTableQueryGenerator.generateQuery(
-             selectedPivots, selectedAggregations, WHERE_FILTERS))
+             selectedPivots, selectedAggregations, WHERE_FILTERS, TABLES))
       .toEqual(expectedQuery);
-});
\ No newline at end of file
+});
+
+test('Generate a query with stack pivot', () => {
+  const pivotTableQueryGenerator = new PivotTableQueryGenerator();
+  const selectedPivots: PivotAttrs[] = [
+    {tableName: 'slice', columnName: SLICE_STACK_COLUMN, isStackPivot: true},
+    {tableName: 'slice', columnName: 'category', isStackPivot: false}
+  ];
+  const selectedAggregations: AggregationAttrs[] = [
+    {aggregation: 'COUNT', tableName: 'slice', columnName: 'id', order: 'DESC'},
+  ];
+  const expectedQuery = '\nSELECT\n' +
+      '"slice name (stack)",\n' +
+      '  "slice depth (hidden)",\n' +
+      '  "slice stack_id (hidden)",\n' +
+      '  "slice parent_stack_id (hidden)",\n' +
+      '  "slice category",\n' +
+      '  "slice id (COUNT)",\n' +
+      '  "slice id (COUNT) (total)"\n' +
+      'FROM (\n' +
+      'SELECT\n' +
+      '"slice name (stack)",\n' +
+      '  "slice depth (hidden)",\n' +
+      '  "slice stack_id (hidden)",\n' +
+      '  "slice parent_stack_id (hidden)",\n' +
+      '  "slice category",\n' +
+      '  COUNT("slice id (COUNT)") OVER () AS "slice id (COUNT) (total)",\n' +
+      '  COUNT("slice id (COUNT)") OVER (PARTITION BY' +
+      ' "slice stack_id (hidden)",  "slice category") AS "slice id (COUNT)"\n' +
+      'FROM (\n' +
+      'SELECT\n' +
+      'slice.name AS "slice name (stack)",\n' +
+      '  slice.depth AS "slice depth (hidden)",\n' +
+      '  slice.stack_id AS "slice stack_id (hidden)",\n' +
+      '  slice.parent_stack_id AS "slice parent_stack_id (hidden)",\n' +
+      '  slice.category AS "slice category",\n' +
+      '  slice.id AS "slice id (COUNT)"\n' +
+      'FROM\n' +
+      'slice\n' +
+      'WHERE\n' +
+      'slice.dur != -1\n' +
+      ')\n' +
+      ')\n' +
+      'GROUP BY "slice name (stack)",  "slice depth (hidden)",  ' +
+      '"slice stack_id (hidden)",  "slice parent_stack_id (hidden)",  ' +
+      '"slice category",  "slice id (COUNT)"\n' +
+      'ORDER BY "slice id (COUNT)" DESC\n';
+  expect(pivotTableQueryGenerator.generateQuery(
+             selectedPivots, selectedAggregations, WHERE_FILTERS, TABLES))
+      .toEqual(expectedQuery);
+});
+
+test('Generate a descendant stack query', () => {
+  const pivotTableQueryGenerator = new PivotTableQueryGenerator();
+  const selectedPivots: PivotAttrs[] = [
+    {tableName: 'slice', columnName: SLICE_STACK_COLUMN, isStackPivot: true},
+  ];
+  const selectedAggregations: AggregationAttrs[] = [];
+  const expectedQuery = '\nSELECT\n' +
+      '"slice name (stack)",\n' +
+      '  "slice depth (hidden)",\n' +
+      '  "slice stack_id (hidden)",\n' +
+      '  "slice parent_stack_id (hidden)"\n' +
+      'FROM (\n' +
+      'SELECT\n' +
+      'slice.name AS "slice name (stack)",\n' +
+      '  slice.depth AS "slice depth (hidden)",\n' +
+      '  slice.stack_id AS "slice stack_id (hidden)",\n' +
+      '  slice.parent_stack_id AS "slice parent_stack_id (hidden)"\n' +
+      'FROM\n' +
+      'descendant_slice_by_stack(stack_id) AS slice\n' +
+      'WHERE\n' +
+      'slice.dur != -1\n' +
+      ')\n' +
+      'GROUP BY "slice name (stack)",  "slice depth (hidden)",  ' +
+      '"slice stack_id (hidden)",  "slice parent_stack_id (hidden)"\n' +
+      'ORDER BY "slice depth (hidden)" ASC\n';
+
+  const table = ['descendant_slice_by_stack(stack_id) AS slice'];
+  expect(pivotTableQueryGenerator.generateStackQuery(
+             selectedPivots,
+             selectedAggregations,
+             WHERE_FILTERS,
+             table,
+             /* stack_id = */ 'stack_id'))
+      .toEqual(expectedQuery);
+});
+
+test('Generate a descendant stack query with another pivot', () => {
+  const pivotTableQueryGenerator = new PivotTableQueryGenerator();
+  const selectedPivots: PivotAttrs[] = [
+    {tableName: 'slice', columnName: SLICE_STACK_COLUMN, isStackPivot: true},
+    {tableName: 'slice', columnName: 'category', isStackPivot: false}
+  ];
+  const selectedAggregations: AggregationAttrs[] = [];
+  const expectedQuery = '\nSELECT\n' +
+      '"slice name (stack)",\n' +
+      '  "slice depth (hidden)",\n' +
+      '  "slice stack_id (hidden)",\n' +
+      '  "slice parent_stack_id (hidden)",\n' +
+      '  "slice category"\n' +
+      'FROM (\n' +
+      'SELECT\n' +
+      'slice.name AS "slice name (stack)",\n' +
+      '  slice.depth AS "slice depth (hidden)",\n' +
+      '  slice.stack_id AS "slice stack_id (hidden)",\n' +
+      '  slice.parent_stack_id AS "slice parent_stack_id (hidden)",\n' +
+      '  slice.category AS "slice category"\n' +
+      'FROM\n' +
+      'slice\n' +
+      'WHERE\n' +
+      'slice.dur != -1 AND\n' +
+      '  slice.stack_id = stack_id\n' +
+      ')\n' +
+      'GROUP BY "slice name (stack)",  "slice depth (hidden)",  ' +
+      '"slice stack_id (hidden)",  "slice parent_stack_id (hidden)",  ' +
+      '"slice category"\n' +
+      ' UNION ALL \n' +
+      'SELECT\n' +
+      '"slice name (stack)",\n' +
+      '  "slice depth (hidden)",\n' +
+      '  "slice stack_id (hidden)",\n' +
+      '  "slice parent_stack_id (hidden)",\n' +
+      '  "slice category"\n' +
+      'FROM (\n' +
+      'SELECT\n' +
+      'slice.name AS "slice name (stack)",\n' +
+      '  slice.depth AS "slice depth (hidden)",\n' +
+      '  slice.stack_id AS "slice stack_id (hidden)",\n' +
+      '  slice.parent_stack_id AS "slice parent_stack_id (hidden)",\n' +
+      '  slice.category AS "slice category"\n' +
+      'FROM\n' +
+      'descendant_slice_by_stack(stack_id) AS slice\n' +
+      'WHERE\n' +
+      'slice.dur != -1\n' +
+      ')\n' +
+      'GROUP BY "slice name (stack)",  "slice depth (hidden)",  ' +
+      '"slice stack_id (hidden)",  "slice parent_stack_id (hidden)",  ' +
+      '"slice category"\n' +
+      'ORDER BY "slice depth (hidden)" ASC\n';
+
+  const table = ['descendant_slice_by_stack(stack_id) AS slice'];
+  expect(pivotTableQueryGenerator.generateStackQuery(
+             selectedPivots,
+             selectedAggregations,
+             WHERE_FILTERS,
+             table,
+             /* stack_id = */ 'stack_id'))
+      .toEqual(expectedQuery);
+});
diff --git a/ui/src/common/state.ts b/ui/src/common/state.ts
index d58c2df..0bdc4b7 100644
--- a/ui/src/common/state.ts
+++ b/ui/src/common/state.ts
@@ -17,7 +17,7 @@
   PivotAttrs,
   SubQueryAttrs,
   TableAttrs
-} from './pivot_table_data';
+} from './pivot_table_common';
 
 /**
  * A plain js object, holding objects of type |Class| keyed by string id.
@@ -59,9 +59,10 @@
 export const MAX_TIME = 180;
 
 // 3: TrackKindPriority and related sorting changes.
-// 5: Move a large number of items off frontendLocalState and onto state
+// 5: Move a large number of items off frontendLocalState and onto state.
 // 6: Common PivotTableConfig and pivot table specific PivotTableState.
-export const STATE_VERSION = 6;
+// 7: Split Chrome categories in two and add 'symbolize ksyms' flag.
+export const STATE_VERSION = 7;
 
 export const SCROLLING_TRACK_GROUP = 'ScrollingTracks';
 
@@ -307,6 +308,8 @@
   requestedAction?:  // Unset after pivot table column request is handled.
       {action: string, attrs?: SubQueryAttrs};
   isLoadingQuery: boolean;
+  traceTime?: TraceTime;
+  selectedTrackIds?: number[];
 }
 
 export interface State {
@@ -426,8 +429,7 @@
 
 export function isAdbTarget(target: RecordingTarget):
     target is AdbRecordingTarget {
-  if ((target as AdbRecordingTarget).serial) return true;
-  return false;
+  return !!(target as AdbRecordingTarget).serial;
 }
 
 export function hasActiveProbes(config: RecordConfig) {
diff --git a/ui/src/controller/aggregation/aggregation_controller.ts b/ui/src/controller/aggregation/aggregation_controller.ts
index e526f56..3f4b126 100644
--- a/ui/src/controller/aggregation/aggregation_controller.ts
+++ b/ui/src/controller/aggregation/aggregation_controller.ts
@@ -12,6 +12,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
+import {Actions} from '../../common/actions';
 import {
   AggregateData,
   Column,
@@ -19,6 +20,9 @@
   ThreadStateExtra,
 } from '../../common/aggregation_data';
 import {Engine} from '../../common/engine';
+import {
+  SLICE_AGGREGATION_PIVOT_TABLE_ID
+} from '../../common/pivot_table_common';
 import {NUM} from '../../common/query_result';
 import {Area, Sorting} from '../../common/state';
 import {publishAggregateData} from '../../frontend/publish';
@@ -34,6 +38,22 @@
   return column.kind === 'STRING' || column.kind === 'STATE';
 }
 
+function isAreaEqual(area: Area, previousArea?: Area) {
+  if (previousArea === undefined) {
+    return false;
+  }
+  if (previousArea === undefined) {
+    return true;
+  }
+  if (area.startSec !== previousArea.startSec) {
+    return false;
+  }
+  if (area.endSec !== previousArea.endSec) {
+    return false;
+  }
+  return area.tracks.every((element, i) => element === previousArea.tracks[i]);
+}
+
 export abstract class AggregationController extends Controller<'main'> {
   readonly kind: string;
   private previousArea?: Area;
@@ -57,6 +77,8 @@
   run() {
     const selection = globals.state.currentSelection;
     if (selection === null || selection.kind !== 'AREA') {
+      globals.dispatch(Actions.deletePivotTable(
+          {pivotTableId: SLICE_AGGREGATION_PIVOT_TABLE_ID}));
       publishAggregateData({
         data: {
           tabName: this.getTabName(),
@@ -72,7 +94,7 @@
     const aggregatePreferences =
         globals.state.aggregatePreferences[this.args.kind];
 
-    const areaChanged = this.previousArea !== selectedArea;
+    const areaChanged = !isAreaEqual(selectedArea, this.previousArea);
     const sortingChanged = aggregatePreferences &&
         this.previousSorting !== aggregatePreferences.sorting;
     if (!areaChanged && !sortingChanged) return;
diff --git a/ui/src/controller/aggregation/slice_aggregation_controller.ts b/ui/src/controller/aggregation/slice_aggregation_controller.ts
index f3b2807..8646c45 100644
--- a/ui/src/controller/aggregation/slice_aggregation_controller.ts
+++ b/ui/src/controller/aggregation/slice_aggregation_controller.ts
@@ -12,10 +12,15 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
+import {Actions} from '../../common/actions';
 import {ColumnDef} from '../../common/aggregation_data';
 import {Engine} from '../../common/engine';
+import {
+  SLICE_AGGREGATION_PIVOT_TABLE_ID
+} from '../../common/pivot_table_common';
 import {Area, Sorting} from '../../common/state';
 import {toNs} from '../../common/time';
+import {PIVOT_TABLE_FLAG} from '../../frontend/keyboard_event_handler';
 import {
   ASYNC_SLICE_TRACK_KIND,
   Config as AsyncSliceConfig
@@ -28,6 +33,30 @@
 
 import {AggregationController} from './aggregation_controller';
 
+function addPivotTableOnAreaSelection(
+    selectedTrackIds: number[], startSec: number, endSec: number) {
+  const selectedPivots =
+      [{tableName: 'slice', columnName: 'name', isStackPivot: false}];
+
+  const selectedAggregations = [
+    {tableName: 'slice', columnName: 'dur', aggregation: 'SUM', order: 'DESC'},
+    {tableName: 'slice', columnName: 'dur', aggregation: 'AVG', order: 'DESC'},
+    {tableName: 'slice', columnName: 'id', aggregation: 'COUNT', order: 'DESC'}
+  ];
+
+  globals.dispatch(Actions.addNewPivotTable({
+    name: 'Pivot Table - Slices',
+    pivotTableId: SLICE_AGGREGATION_PIVOT_TABLE_ID,
+    selectedPivots,
+    selectedAggregations,
+    traceTime: {startSec, endSec},
+    selectedTrackIds
+  }));
+
+  globals.dispatch(Actions.setPivotTableRequest(
+      {pivotTableId: SLICE_AGGREGATION_PIVOT_TABLE_ID, action: 'QUERY'}));
+}
+
 export class SliceAggregationController extends AggregationController {
   async createAggregateView(engine: Engine, area: Area) {
     await engine.query(`drop view if exists ${this.kind};`);
@@ -48,8 +77,14 @@
         }
       }
     }
+
     if (selectedTrackIds.length === 0) return false;
 
+    if (PIVOT_TABLE_FLAG.get()) {
+      addPivotTableOnAreaSelection(
+          selectedTrackIds, area.startSec, area.endSec);
+    }
+
     const query = `create view ${this.kind} as
         SELECT
         name,
diff --git a/ui/src/controller/pivot_table_controller.ts b/ui/src/controller/pivot_table_controller.ts
index c6e2762..78abb24 100644
--- a/ui/src/controller/pivot_table_controller.ts
+++ b/ui/src/controller/pivot_table_controller.ts
@@ -15,15 +15,26 @@
 import {Actions} from '../common/actions';
 import {Engine} from '../common/engine';
 import {
+  AggregationAttrs,
   AVAILABLE_AGGREGATIONS,
   AVAILABLE_TABLES,
+  getDescendantsTables,
+  getParentStackColumn,
+  getStackColumn,
+  getStackDepthColumn,
+  PivotAttrs,
   PivotTableQueryResponse,
+  removeHiddenAndAddStackColumns,
   RowAttrs,
   WHERE_FILTERS
-} from '../common/pivot_table_data';
+} from '../common/pivot_table_common';
 import {
   getAggregationAlias,
+  getAggregationOverStackAlias,
+  getAliasedPivotColumns,
+  getHiddenPivotAlias,
   getPivotAlias,
+  getTotalAggregationAlias,
   PivotTableQueryGenerator
 } from '../common/pivot_table_query_generator';
 import {
@@ -31,6 +42,7 @@
   runQuery,
 } from '../common/queries';
 import {Row} from '../common/query_result';
+import {toNs} from '../common/time';
 import {PivotTableHelper} from '../frontend/pivot_table_helper';
 import {publishPivotTableHelper, publishQueryResult} from '../frontend/publish';
 
@@ -42,40 +54,78 @@
   engine: Engine;
 }
 
-function getExpandableColumn(pivotTableId: string, columns: string[]): string|
-    undefined {
-  const pivotTable = globals.state.pivotTable[pivotTableId];
-  const lastQueriedPivotIdx =
-      columns.length - pivotTable.selectedAggregations.length - 1;
-  if (lastQueriedPivotIdx < 0) {
+function getExpandableColumn(
+    pivotTableId: string, queriedPivots: PivotAttrs[]): string|undefined {
+  if (queriedPivots.length === 0) {
     return undefined;
   }
-  const selectedPivots = pivotTable.selectedPivots;
+  const selectedPivots = globals.state.pivotTable[pivotTableId].selectedPivots;
   const lastPivot = getPivotAlias(selectedPivots[selectedPivots.length - 1]);
-  if (columns[lastQueriedPivotIdx] !== lastPivot) {
-    return columns[lastQueriedPivotIdx];
+  const lastQueriedPivot =
+      getPivotAlias(queriedPivots[queriedPivots.length - 1]);
+  if (lastQueriedPivot !== lastPivot) {
+    return lastQueriedPivot;
   }
   return undefined;
 }
 
+function getRowWhereFilters(
+    queriedPivots: PivotAttrs[], row: Row, parentRow?: RowAttrs) {
+  let whereFilters = new Map();
+
+  // Add all the row's parent whereFilers.
+  if (parentRow) {
+    whereFilters = new Map(parentRow.whereFilters);
+  }
+
+  // Add whereFilters for all the queried pivots and any hidden pivots without
+  // the stack pivots.
+  getAliasedPivotColumns(queriedPivots)
+      .filter(pivot => !pivot.pivotAttrs.isStackPivot)
+      .forEach(
+          pivot => whereFilters.set(
+              pivot.columnAlias,
+              `CAST(${pivot.pivotAttrs.tableName}.${
+                  pivot.pivotAttrs.columnName} AS TEXT) = '${
+                  row[pivot.columnAlias]!.toString()}'`));
+
+  return whereFilters;
+}
+
 function getPivotTableQueryResponseRows(
-    pivotTableId: string, rows: Row[], columns: string[]): RowAttrs[] {
-  const expandableColumn = getExpandableColumn(pivotTableId, columns);
+    pivotTableId: string,
+    rows: Row[],
+    queriedPivots: PivotAttrs[],
+    parentRow?: RowAttrs) {
+  const expandableColumns = new Set<string>();
+  if (queriedPivots.length > 0 && queriedPivots[0].isStackPivot) {
+    // Make the stack column expandable.
+    expandableColumns.add(getPivotAlias(queriedPivots[0]));
+  }
+  // Add expandable column after the stack column if it exists.
+  const expandableColumn = getExpandableColumn(pivotTableId, queriedPivots);
+  if (expandableColumn !== undefined) {
+    expandableColumns.add(expandableColumn);
+  }
+
   const newRows: RowAttrs[] = [];
   for (const row of rows) {
     newRows.push({
       row,
-      isExpanded: false,
-      expandableColumn,
-      rows: undefined,
-      isLoadingQuery: false
+      expandableColumns,
+      depth: 0,
+      whereFilters: getRowWhereFilters(queriedPivots, row, parentRow),
+      expandedRows: new Map()
     });
   }
   return newRows;
 }
 
 function getPivotTableQueryResponse(
-    pivotTableId: string, queryResp: QueryResponse): PivotTableQueryResponse {
+    pivotTableId: string,
+    queryResp: QueryResponse,
+    queriedPivots: PivotAttrs[],
+    parentRow?: RowAttrs): PivotTableQueryResponse {
   const columns = [];
   const pivotTable = globals.state.pivotTable[pivotTableId];
 
@@ -86,6 +136,7 @@
       index: i,
       tableName: pivot.tableName,
       columnName: pivot.columnName,
+      isStackColumn: pivot.isStackPivot
     });
   }
 
@@ -98,36 +149,247 @@
       columnName: aggregation.columnName,
       aggregation: aggregation.aggregation,
       order: aggregation.order,
+      isStackColumn: false
     });
   }
 
   return {
     columns,
     rows: getPivotTableQueryResponseRows(
-        pivotTableId, queryResp.rows, queryResp.columns),
+        pivotTableId, queryResp.rows, queriedPivots, parentRow),
     error: queryResp.error,
     durationMs: queryResp.durationMs
   };
 }
 
-function getRowAndWhereFiltersInPivotTableQueryResponse(
-    queryResp: PivotTableQueryResponse, rowIndices: number[]) {
+function getRowInPivotTableQueryResponse(
+    queryResp: PivotTableQueryResponse,
+    rowIndices: number[],
+    expandedRowColumns: string[]) {
   if (rowIndices.length === 0) {
     throw new Error('Row indicies should have at least one index.');
   }
+
   let row = queryResp.rows[rowIndices[0]];
-  const whereFilters = [];
-  for (let i = 1; i < rowIndices.length; ++i) {
-    if (row.whereFilter !== undefined) {
-      whereFilters.push(row.whereFilter);
-    }
-    if (row.rows === undefined || row.rows.length <= rowIndices[i]) {
-      throw new Error(
-          `Expanded row index "${rowIndices[i]}" is out of bounds.`);
-    }
-    row = row.rows[rowIndices[i]];
+
+  // expandedRowColumns and rowIndices should refer to the same rows minus the
+  // initial row index that specifies the row in the query response.
+  if (rowIndices.length !== expandedRowColumns.length + 1) {
+    throw Error(`expandedRowColumns length "${
+        expandedRowColumns.length}" should be less than rowIndicies length "${
+        rowIndices.length}" by one.`);
   }
-  return {row, whereFilters};
+
+  for (let i = 1; i < rowIndices.length; ++i) {
+    const expandedRow = row.expandedRows.get(expandedRowColumns[i - 1]);
+    if (expandedRow === undefined || expandedRow.rows.length <= rowIndices[i]) {
+      throw new Error(`Expanded row index "${rowIndices[i]}" at row column "${
+          expandedRowColumns[i - 1]}" is out of bounds.`);
+    }
+    row = expandedRow.rows[rowIndices[i]];
+  }
+  return row;
+}
+
+function getDescendantRows(
+    pivotTableId: string,
+    respRows: Row[],
+    parentRow: RowAttrs,
+    queriedPivots: PivotAttrs[],
+    queriedAggregations: AggregationAttrs[]) {
+  const stackPivot = queriedPivots[0];
+  if (stackPivot === undefined || !stackPivot.isStackPivot) {
+    throw Error('Queried pivot is not a stack pivot');
+  }
+
+  const stackIdColumn = getHiddenPivotAlias(getStackColumn(stackPivot));
+
+  const parentStackIdColumn =
+      getHiddenPivotAlias(getParentStackColumn(stackPivot));
+
+  const depthColumn = getHiddenPivotAlias(getStackDepthColumn(stackPivot));
+
+  const stackColumn = getPivotAlias(stackPivot);  // "name (stack)" column.
+
+  const parentDepth = Number(parentRow.row[depthColumn]?.toString());
+  if (!Number.isInteger(parentDepth)) {
+    throw Error('Parent row has undefined depth.');
+  }
+
+  const parentRowStackId = parentRow.row[stackIdColumn]?.toString();
+  if (parentRowStackId === undefined) {
+    throw Error('Parent row has undefined stack_id.');
+  }
+
+  const nextPivot = queriedPivots[1];
+  let nextColumnName = '';
+  if (nextPivot !== undefined) {
+    nextColumnName = getPivotAlias(nextPivot);
+  }
+
+  const newRows: Map<string, RowAttrs> = new Map();
+  for (const row of respRows) {
+    const depth = Number(row[depthColumn]?.toString());
+    const stackId = row[stackIdColumn]?.toString();
+    const parentStackId = row[parentStackIdColumn]?.toString();
+    if (!Number.isInteger(depth)) {
+      throw Error('Descendant result has undefined depth.');
+    }
+    if (!stackId || !parentStackId) {
+      throw Error('Descendant result has undefined stack or parent stack id.');
+    }
+
+    const expandableColumns = new Set<string>();
+    // Get expandable column after the stack column if it exists.
+    const expandableColumn = getExpandableColumn(pivotTableId, queriedPivots);
+    if (expandableColumn !== undefined) {
+      expandableColumns.add(expandableColumn);
+    }
+
+    const newRow: RowAttrs = {
+      row: Object.assign({}, row),
+      depth: depth - parentDepth,
+      whereFilters: getRowWhereFilters(queriedPivots, row, parentRow),
+      expandedRows: new Map(),
+      expandableColumns
+    };
+
+    // If we have already added the stackId, we need to extract and nest its
+    // next column values in its expanded rows.
+    if (newRows.has(stackId)) {
+      newRow.row[stackColumn] = null;
+      const parent = newRows.get(stackId)!;
+      let nextColumnRows = parent.expandedRows.get(nextColumnName);
+      if (nextColumnRows === undefined) {
+        // Since the parent row has more than one value for the next column,
+        // we nest the values in rows under the parent row instead of inline
+        // with it.
+        // Making a new row to hold the next column value.
+        const row = Object.assign({}, parent.row);
+        const nextColumnRow: RowAttrs = {
+          row: Object.assign({}, row),
+          depth: depth - parentDepth,
+          whereFilters: getRowWhereFilters(queriedPivots, row, parentRow),
+          expandedRows: new Map(),
+          expandableColumns
+        };
+        parent.row[nextColumnName] = null;
+        // Modify the parent row to show the aggregation over stack rows instead
+        // of the partitioned aggregations.
+        for (const aggregation of queriedAggregations) {
+          parent.row[getAggregationAlias(aggregation)] =
+              parent.row[getAggregationOverStackAlias(aggregation)];
+        }
+        nextColumnRow.row[stackColumn] = null;
+        if (nextColumnRow.row[nextColumnName] !== undefined) {
+          parent.expandedRows.set(
+              nextColumnName, {isExpanded: true, rows: [nextColumnRow]});
+        }
+        nextColumnRows = parent.expandedRows.get(nextColumnName);
+      }
+      newRow.expandableColumns = expandableColumns;
+
+      nextColumnRows!.rows.push(newRow);
+    }
+
+    // If we have already added the parentStackId, we need to nest the row
+    // in its parent's expanded rows.
+    // This works because we sort the result of the descendants query by
+    // depth, insuring that if the stack_id has a parent other than the
+    // parent row, its parent will show up first.
+    if (newRows.has(parentStackId)) {
+      const parent = newRows.get(parentStackId)!;
+      let descendants = parent.expandedRows.get(stackColumn);
+      if (descendants === undefined) {
+        parent.expandedRows.set(stackColumn, {isExpanded: true, rows: []});
+        descendants = parent.expandedRows.get(stackColumn);
+      }
+      descendants!.rows.push(newRow);
+      parent.expandableColumns.add(stackColumn);
+
+      // Unexpand if parent has more than one child.
+      if (descendants!.rows.length > 1) {
+        descendants!.isExpanded = false;
+        if (parent.expandedRows.has(nextColumnName)) {
+          parent.expandedRows.get(nextColumnName)!.isExpanded = false;
+        }
+      }
+    }
+
+    if (!newRows.has(stackId)) {
+      newRows.set(stackId, newRow);
+    }
+  }
+
+  // Get only direct descendants of the parent row. The rest is nested inside
+  // the descendants.
+  const descendantRows =
+      Array.from(newRows.values())
+          .filter(
+              row => row.row[parentStackIdColumn]?.toString() ===
+                  parentRowStackId);
+  // Get the next column values of the parent row.
+  let nextColumnRows;
+  if (newRows.has(parentRowStackId)) {
+    if (newRows.get(parentRowStackId)!.expandedRows.has(nextColumnName)) {
+      nextColumnRows =
+          newRows.get(parentRowStackId)!.expandedRows.get(nextColumnName)!.rows;
+    } else {
+      // If the next column value is inline with the parent row.
+      nextColumnRows = [newRows.get(parentRowStackId)!];
+    }
+  }
+  return {descendantRows, nextColumnRows};
+}
+
+function getPivotColumns(
+    pivotTableId: string, columnIdx: number, isStackQuery: boolean) {
+  const selectedPivots = globals.state.pivotTable[pivotTableId].selectedPivots;
+  // Slice returns the pivot at columnIdx if it exists, and an empty
+  // array if columnIdx is out of bounds.
+  const pivots = selectedPivots.slice(columnIdx, columnIdx + 1);
+  if (isStackQuery) {
+    // Adds the next pivot, if it exists, to be queried with the stack query.
+    pivots.push(...selectedPivots.slice(columnIdx + 1, columnIdx + 2));
+  }
+  return pivots;
+}
+
+function getWhereFilters(
+    pivotTableId: string,
+    parentRowWhereFilters: Map<string, string>,
+    pivots: PivotAttrs[],
+    isStackQuery: boolean) {
+  const whereFiltersMap = new Map(parentRowWhereFilters);
+
+  // Remove any existing where filters for the pivots to query.
+  getAliasedPivotColumns(pivots).forEach(
+      pivotAlias => whereFiltersMap.delete(pivotAlias.columnAlias));
+
+  const whereFilters = Array.from(whereFiltersMap.values());
+
+  if (pivots.length > 0 && pivots[0].isStackPivot && !isStackQuery) {
+    // Only query top level slices, descendants can be generated
+    // when expanded.
+    const orderColumn = getStackDepthColumn(pivots[0]);
+    whereFilters.push(`${orderColumn.tableName}.${orderColumn.columnName} = 0`);
+  }
+
+  // Add global where filters
+  whereFilters.push(...WHERE_FILTERS);
+
+  // Add area restrictions where filters if set.
+  const pivotTable = globals.state.pivotTable[pivotTableId];
+  if (pivotTable.selectedTrackIds) {
+    whereFilters.push(`slice.track_id IN (${pivotTable.selectedTrackIds})`);
+  }
+  if (pivotTable.traceTime) {
+    whereFilters.push(
+        `slice.ts + slice.dur > ${toNs(pivotTable.traceTime.startSec)}`);
+    whereFilters.push(`slice.ts < ${toNs(pivotTable.traceTime.endSec)}`);
+  }
+
+  return whereFilters;
 }
 
 export class PivotTableController extends Controller<'main'> {
@@ -152,6 +414,129 @@
     globals.dispatch(
         Actions.resetPivotTableRequest({pivotTableId: this.pivotTableId}));
     switch (requestedAction.action) {
+      case 'DESCENDANTS':
+        const descendantsAttrs = requestedAction.attrs;
+        if (descendantsAttrs === undefined) {
+          throw Error('No attributes provided for descendants query.');
+        }
+        if (this.queryResp === undefined) {
+          throw Error(
+              'Descendants query requested without setting the main query.');
+        }
+
+        const stackPivot =
+            pivotTable.selectedPivots[descendantsAttrs.columnIdx];
+        const stackColumnName = getPivotAlias(stackPivot);
+
+        const nextPivot =
+            pivotTable.selectedPivots[descendantsAttrs.columnIdx + 1];
+        let nextColumnName = '';
+        if (nextPivot !== undefined) {
+          nextColumnName = getPivotAlias(nextPivot);
+        }
+
+        const ancestorRow = getRowInPivotTableQueryResponse(
+            this.queryResp,
+            descendantsAttrs.rowIndices,
+            descendantsAttrs.expandedRowColumns);
+
+        // No need to query if the row has been expanded before.
+        if (ancestorRow.expandedRows.has(stackColumnName)) {
+          ancestorRow.expandedRows.get(stackColumnName)!.isExpanded = true;
+          if (ancestorRow.expandedRows.has(nextColumnName) &&
+              !ancestorRow.expandableColumns.has(nextColumnName)) {
+            ancestorRow.expandedRows.get(nextColumnName)!.isExpanded = true;
+          }
+          break;
+        }
+
+        const descendantsPivots = getPivotColumns(
+            this.pivotTableId,
+            descendantsAttrs.columnIdx,
+            /* is_stack_query = */ true);
+
+        if (descendantsPivots.length === 0) {
+          throw Error(
+              `Descendant operation at column index "${
+                  descendantsAttrs
+                      .columnIdx}" should only be allowed if there are` +
+              `are more columns to query.`);
+        }
+
+        const descendantsWhereFilters = getWhereFilters(
+            this.pivotTableId,
+            ancestorRow.whereFilters,
+            descendantsPivots,
+            /* is_stack_query = */ true);
+
+        const stackIdColumn = getHiddenPivotAlias(getStackColumn(stackPivot));
+
+        const stackId = ancestorRow.row[stackIdColumn]?.toString();
+        if (stackId === undefined) {
+          throw Error(`"${
+              getPivotAlias(
+                  stackPivot)}" row has undefined stack id at column "${
+              stackIdColumn}".`);
+        }
+
+        const descendantsTables =
+            getDescendantsTables(descendantsPivots, stackId);
+
+        // Query the descendants and the next column if it exists.
+        const descendantsQuery =
+            this.pivotTableQueryGenerator.generateStackQuery(
+                descendantsPivots,
+                pivotTable.selectedAggregations,
+                descendantsWhereFilters,
+                descendantsTables,
+                stackId);
+
+        ancestorRow.loadingColumn = stackColumnName;
+
+        runQuery(this.pivotTableId, descendantsQuery, this.engine)
+            .then(resp => {
+              // Query resulting from query generator should always be valid.
+              if (resp.error) {
+                throw Error(`Pivot table descendants query ${
+                    descendantsQuery} resulted in SQL error: ${resp.error}`);
+              }
+
+              const printDescendantsQuery =
+                  descendantsQuery.length <= 1024 ? descendantsQuery : '';
+              console.log(`Descendants query${printDescendantsQuery} took ${
+                  resp.durationMs} ms`);
+
+              const {descendantRows, nextColumnRows} = getDescendantRows(
+                  this.pivotTableId,
+                  resp.rows,
+                  ancestorRow,
+                  descendantsPivots,
+                  pivotTable.selectedAggregations);
+              // Set descendant rows.
+              ancestorRow.expandedRows.set(
+                  stackColumnName, {isExpanded: true, rows: descendantRows});
+              // Set the next pivot row(s), if they exist, inside the parent
+              // row.
+              if (nextColumnRows !== undefined) {
+                if (nextColumnRows.length <= 1) {
+                  // If there is only one value for the next column of the
+                  // parent row, add it to the same row as the parent.
+                  ancestorRow.row = nextColumnRows[0].row;
+                  ancestorRow.expandableColumns = new Set([
+                    ...nextColumnRows[0].expandableColumns,
+                    ...ancestorRow.expandableColumns
+                  ]);
+                } else {
+                  ancestorRow.expandedRows.set(
+                      nextColumnName, {isExpanded: true, rows: nextColumnRows});
+                }
+              }
+              ancestorRow.loadingColumn = undefined;
+
+              this.queryResp!.durationMs += resp.durationMs;
+            });
+        break;
+
       case 'EXPAND':
         const expandAttrs = requestedAction.attrs;
         if (expandAttrs === undefined) {
@@ -161,41 +546,46 @@
           throw Error('Expand query requested without setting the main query.');
         }
 
-        const {row: expandRow, whereFilters} =
-            getRowAndWhereFiltersInPivotTableQueryResponse(
-                this.queryResp, expandAttrs.rowIndices);
+        const expandColumnName =
+            getPivotAlias(pivotTable.selectedPivots[expandAttrs.columnIdx]);
+
+        const expandRow = getRowInPivotTableQueryResponse(
+            this.queryResp,
+            expandAttrs.rowIndices,
+            expandAttrs.expandedRowColumns);
 
         // No need to query if the row has been expanded before.
-        if (expandRow.rows !== undefined) {
-          expandRow.isExpanded = true;
-          publishQueryResult({id: this.pivotTableId, data: this.queryResp});
+        if (expandRow.expandedRows.has(expandColumnName)) {
+          expandRow.expandedRows.get(expandColumnName)!.isExpanded = true;
           break;
         }
 
-        const whereFilter = `CAST(${
-            pivotTable.selectedPivots[expandAttrs.columnIdx].tableName}.${
-            pivotTable.selectedPivots[expandAttrs.columnIdx]
-                .columnName} AS TEXT) = '${expandAttrs.value}'`;
+        const expandPivots = getPivotColumns(
+            this.pivotTableId,
+            expandAttrs.columnIdx + 1,
+            /* is_stack_query = */ false);
 
-        whereFilters.push(whereFilter);
-        whereFilters.push(...WHERE_FILTERS);
-
-        // Slice returns an empty array if indexes are out of bounds.
-        const pivots = pivotTable.selectedPivots.slice(
-            expandAttrs.columnIdx + 1, expandAttrs.columnIdx + 2);
-
-        if (pivots.length === 0) {
+        if (expandPivots.length === 0) {
           throw Error(
               `Expand operation at column index "${
                   expandAttrs.columnIdx}" should only be allowed if there are` +
               `are more columns to query.`);
         }
 
-        // Query the column after the expanded column.
-        const expandQuery = this.pivotTableQueryGenerator.generateQuery(
-            pivots, pivotTable.selectedAggregations, whereFilters);
+        const expandWhereFilters = getWhereFilters(
+            this.pivotTableId,
+            expandRow.whereFilters,
+            expandPivots,
+            /* is_stack_query = */ false);
 
-        expandRow.isLoadingQuery = true;
+        const expandQuery = this.pivotTableQueryGenerator.generateQuery(
+            expandPivots,
+            pivotTable.selectedAggregations,
+            expandWhereFilters,
+            AVAILABLE_TABLES);
+
+        expandRow.loadingColumn =
+            getPivotAlias(pivotTable.selectedPivots[expandAttrs.columnIdx]);
 
         runQuery(this.pivotTableId, expandQuery, this.engine).then(resp => {
           // Query resulting from query generator should always be valid.
@@ -203,13 +593,17 @@
             throw Error(`Pivot table expand query ${
                 expandQuery} resulted in SQL error: ${resp.error}`);
           }
-          console.log(`Expand query ${expandQuery} took ${resp.durationMs} ms`);
+          const printExpandQuery =
+              expandQuery.length <= 1024 ? expandQuery : '';
+          console.log(
+              `Expand query${printExpandQuery} took ${resp.durationMs} ms`);
 
-          expandRow.rows = getPivotTableQueryResponseRows(
-              this.pivotTableId, resp.rows, resp.columns);
-          expandRow.isExpanded = true;
-          expandRow.whereFilter = whereFilter;
-          expandRow.isLoadingQuery = false;
+          expandRow.expandedRows.set(expandColumnName, {
+            isExpanded: true,
+            rows: getPivotTableQueryResponseRows(
+                this.pivotTableId, resp.rows, expandPivots, expandRow)
+          });
+          expandRow.loadingColumn = undefined;
 
           this.queryResp!.durationMs += resp.durationMs;
         });
@@ -225,21 +619,57 @@
               'Unexpand query requested without setting the main query.');
         }
 
-        const {row: unexpandRow} =
-            getRowAndWhereFiltersInPivotTableQueryResponse(
-                this.queryResp, unexpandAttrs.rowIndices);
+        const unexpandPivot =
+            pivotTable.selectedPivots[unexpandAttrs.columnIdx];
+        const unexpandColumnName = getPivotAlias(unexpandPivot);
 
-        unexpandRow.isExpanded = false;
+        const unexpandRow = getRowInPivotTableQueryResponse(
+            this.queryResp,
+            unexpandAttrs.rowIndices,
+            unexpandAttrs.expandedRowColumns);
+
+        if (unexpandRow.expandedRows.has(unexpandColumnName)) {
+          unexpandRow.expandedRows.get(unexpandColumnName)!.isExpanded = false;
+          const nextPivot =
+              pivotTable.selectedPivots[unexpandAttrs.columnIdx + 1];
+          let nextColumnName = '';
+          if (nextPivot !== undefined) {
+            nextColumnName = getPivotAlias(nextPivot);
+          }
+          // Unexpand the next column rows if they are nested inside the
+          // parent expanded row, but no expandable column exists for the
+          // next column.
+          if (unexpandPivot.isStackPivot &&
+              unexpandRow.expandedRows.has(nextColumnName) &&
+              !unexpandRow.expandableColumns.has(nextColumnName)) {
+            unexpandRow.expandedRows.get(nextColumnName)!.isExpanded = false;
+          }
+        } else {
+          throw Error('Unexpand request called on already undexpanded row.');
+        }
         break;
 
       case 'QUERY':
         // Generates and executes new query based on selectedPivots and
         // selectedAggregations.
-        // Query the first column.
+
+        const pivots = getPivotColumns(
+            this.pivotTableId,
+            /* column_idx = */ 0,
+            /* is_stack_query = */ false);
+
+        const whereFilers = getWhereFilters(
+            this.pivotTableId,
+            /*parent_row_where_Filters = */ new Map(),
+            pivots,
+            /* is_stack_query = */ false);
+
         const query = this.pivotTableQueryGenerator.generateQuery(
-            pivotTable.selectedPivots.slice(0, 1),
+            pivots,
             pivotTable.selectedAggregations,
-            WHERE_FILTERS);
+            whereFilers,
+            AVAILABLE_TABLES);
+
         if (query !== '') {
           globals.dispatch(
               Actions.toggleQueryLoading({pivotTableId: this.pivotTableId}));
@@ -250,11 +680,31 @@
                   resp.error}`);
             }
 
-            console.log(`Query ${query} took ${resp.durationMs} ms`);
-            const data = getPivotTableQueryResponse(this.pivotTableId, resp);
+            const printQuery = query.length <= 1024 ? query : '';
+            console.log(`Query${printQuery} took ${resp.durationMs} ms`);
+            const data =
+                getPivotTableQueryResponse(this.pivotTableId, resp, pivots);
+
+            if (pivotTable.selectedAggregations.length > 0 &&
+                resp.rows.length > 0) {
+              const totalAggregationsRow = Object.assign({}, resp.rows[0]);
+
+              // Modify the total aggregations row to show the total
+              // aggregations.
+              if (pivotTable.selectedPivots.length > 0) {
+                for (const aggregation of pivotTable.selectedAggregations) {
+                  totalAggregationsRow[getAggregationAlias(aggregation)] =
+                      totalAggregationsRow[getTotalAggregationAlias(
+                          aggregation)];
+                }
+              }
+              data.totalAggregations = totalAggregationsRow;
+            }
+
             publishQueryResult({id: this.pivotTableId, data});
 
             this.queryResp = data;
+
             globals.dispatch(
                 Actions.toggleQueryLoading({pivotTableId: this.pivotTableId}));
           });
@@ -300,6 +750,6 @@
   private async getColumnsForTable(tableName: string): Promise<string[]> {
     const query = `select * from ${tableName} limit 0;`;
     const resp = await runQuery(this.pivotTableId, query, this.engine);
-    return resp.columns;
+    return removeHiddenAndAddStackColumns(tableName, resp.columns);
   }
 }
diff --git a/ui/src/controller/selection_controller.ts b/ui/src/controller/selection_controller.ts
index cab23b1..4bb8d45 100644
--- a/ui/src/controller/selection_controller.ts
+++ b/ui/src/controller/selection_controller.ts
@@ -24,11 +24,7 @@
 import {ChromeSliceSelection} from '../common/state';
 import {translateState} from '../common/thread_state';
 import {fromNs, toNs} from '../common/time';
-import {
-  CounterDetails,
-  SliceDetails,
-  ThreadStateDetails
-} from '../frontend/globals';
+import {SliceDetails, ThreadStateDetails} from '../frontend/globals';
 import {
   publishCounterDetails,
   publishSliceDetails,
@@ -73,14 +69,12 @@
     if (selectedId === undefined) return;
 
     if (selection.kind === 'COUNTER') {
-      const selected: CounterDetails = {};
       this.counterDetails(selection.leftTs, selection.rightTs, selection.id)
           .then(results => {
             if (results !== undefined && selection &&
                 selection.kind === selectedKind &&
                 selection.id === selectedId) {
-              Object.assign(selected, results);
-              publishCounterDetails(selected);
+              publishCounterDetails(results);
             }
           });
     } else if (selection.kind === 'SLICE') {
@@ -372,7 +366,8 @@
     const delta = value - previousValue;
     const duration = endTs - ts;
     const startTime = fromNs(ts) - globals.state.traceTime.startSec;
-    return {startTime, value, delta, duration};
+    const name = globals.state.tracks[trackId].name;
+    return {startTime, value, delta, duration, name};
   }
 
   async schedulingDetails(ts: number, utid: number|Long) {
diff --git a/ui/src/frontend/counter_panel.ts b/ui/src/frontend/counter_panel.ts
index 4a3ccd7..eb5d991 100644
--- a/ui/src/frontend/counter_panel.ts
+++ b/ui/src/frontend/counter_panel.ts
@@ -25,8 +25,8 @@
   view() {
     const counterInfo = globals.counterDetails;
     if (counterInfo && counterInfo.startTime &&
-        counterInfo.value !== undefined && counterInfo.delta !== undefined &&
-        counterInfo.duration !== undefined) {
+        counterInfo.name !== undefined && counterInfo.value !== undefined &&
+        counterInfo.delta !== undefined && counterInfo.duration !== undefined) {
       return m(
           '.details-panel',
           m('.details-panel-heading', m('h2', `Counter Details`)),
@@ -34,6 +34,7 @@
               '.details-table',
               [m('table.half-width',
                  [
+                   m('tr', m('th', `Name`), m('td', `${counterInfo.name}`)),
                    m('tr',
                      m('th', `Start time`),
                      m('td', `${timeToCode(counterInfo.startTime)}`)),
diff --git a/ui/src/frontend/details_panel.ts b/ui/src/frontend/details_panel.ts
index 07a9094..27e9952 100644
--- a/ui/src/frontend/details_panel.ts
+++ b/ui/src/frontend/details_panel.ts
@@ -17,6 +17,7 @@
 
 import {Actions} from '../common/actions';
 import {LogExists, LogExistsKey} from '../common/logs';
+import {DEFAULT_PIVOT_TABLE_ID} from '../common/pivot_table_common';
 
 import {AggregationPanel} from './aggregation_panel';
 import {ChromeSliceDetailsPanel} from './chrome_slice_panel';
@@ -35,6 +36,7 @@
 import {AnyAttrsVnode, PanelContainer} from './panel_container';
 import {PivotTable} from './pivot_table';
 import {ColumnDisplay, ColumnPicker} from './pivot_table_editor';
+import {PivotTableHelper} from './pivot_table_helper';
 import {QueryTable} from './query_table';
 import {SliceDetailsPanel} from './slice_panel';
 import {ThreadStatePanel} from './thread_state_panel';
@@ -59,6 +61,38 @@
   return data && data.exists;
 }
 
+function showPivotTableEditorModal(helper?: PivotTableHelper) {
+  if (helper !== undefined && helper.editPivotTableModalOpen) {
+    let content;
+    if (helper.availableColumns.length === 0 ||
+        helper.availableAggregations.length === 0) {
+      content =
+          m('.pivot-table-editor-container',
+            helper.availableColumns.length === 0 ?
+                m('div', 'No columns available.') :
+                null,
+            helper.availableAggregations.length === 0 ?
+                m('div', 'No aggregations available.') :
+                null);
+    } else {
+      const attrs = {helper};
+      content =
+          m('.pivot-table-editor-container',
+            m(ColumnPicker, attrs),
+            m(ColumnDisplay, attrs));
+    }
+
+    showModal({
+      title: 'Edit Pivot Table',
+      content,
+      buttons: [],
+    }).finally(() => {
+      helper.toggleEditPivotTableModal();
+      globals.rafScheduler.scheduleFullRedraw();
+    });
+  }
+}
+
 interface Tab {
   key: string;
   name: string;
@@ -287,50 +321,22 @@
       });
     }
 
-    const pivotTableId = 'pivot-table';
-    const pivotTable = globals.state.pivotTable[pivotTableId];
-    const helper = globals.pivotTableHelper.get(pivotTableId);
-
-    if (globals.frontendLocalState.showPivotTable && pivotTable !== undefined) {
-      if (helper !== undefined) {
-        helper.setSelectedPivotsAndAggregations(
-            pivotTable.selectedPivots, pivotTable.selectedAggregations);
+    for (const pivotTableId of Object.keys(globals.state.pivotTable)) {
+      const pivotTable = globals.state.pivotTable[pivotTableId];
+      const helper = globals.pivotTableHelper.get(pivotTableId);
+      if (pivotTableId !== DEFAULT_PIVOT_TABLE_ID ||
+          globals.frontendLocalState.showPivotTable) {
+        if (helper !== undefined) {
+          helper.setSelectedPivotsAndAggregations(
+              pivotTable.selectedPivots, pivotTable.selectedAggregations);
+        }
+        detailsPanels.push({
+          key: pivotTableId,
+          name: pivotTable.name,
+          vnode: m(PivotTable, {key: pivotTableId, pivotTableId, helper})
+        });
       }
-      detailsPanels.push({
-        key: pivotTableId,
-        name: pivotTable.name,
-        vnode: m(PivotTable, {key: pivotTableId, pivotTableId, helper})
-      });
-    }
-
-    if (helper !== undefined && helper.editPivotTableModalOpen) {
-      let content;
-      if (helper.availableColumns.length === 0 ||
-          helper.availableAggregations.length === 0) {
-        content =
-            m('.pivot-table-editor-container',
-              helper.availableColumns.length === 0 ?
-                  m('div', 'No columns available.') :
-                  null,
-              helper.availableAggregations.length === 0 ?
-                  m('div', 'No aggregations available.') :
-                  null);
-      } else {
-        const attrs = {helper};
-        content =
-            m('.pivot-table-editor-container',
-              m(ColumnPicker, attrs),
-              m(ColumnDisplay, attrs));
-      }
-
-      showModal({
-        title: 'Edit Pivot Table',
-        content,
-        buttons: [],
-      }).finally(() => {
-        helper.toggleEditPivotTableModal();
-        globals.rafScheduler.scheduleFullRedraw();
-      });
+      showPivotTableEditorModal(helper);
     }
 
     if (globals.connectedFlows.length > 0) {
diff --git a/ui/src/frontend/globals.ts b/ui/src/frontend/globals.ts
index e2967dd..af4fbb7 100644
--- a/ui/src/frontend/globals.ts
+++ b/ui/src/frontend/globals.ts
@@ -84,6 +84,7 @@
   value?: number;
   delta?: number;
   duration?: number;
+  name?: string;
 }
 
 export interface ThreadStateDetails {
diff --git a/ui/src/frontend/help_modal.ts b/ui/src/frontend/help_modal.ts
index eac16aa..62dbab1 100644
--- a/ui/src/frontend/help_modal.ts
+++ b/ui/src/frontend/help_modal.ts
@@ -16,6 +16,7 @@
 import * as m from 'mithril';
 
 import {globals} from './globals';
+import {PIVOT_TABLE_FLAG} from './keyboard_event_handler';
 import {hideModel, showModal} from './modal';
 
 let helpModelOpen = false;
@@ -94,6 +95,9 @@
             m('tr',
               m('td', keycap('Ctrl'), ' + ', keycap('b')),
               m('td', 'Toggle display of sidebar')),
+            PIVOT_TABLE_FLAG.get() ?
+                m('tr', m('td', keycap('p')), m('td', 'Show pivot table')) :
+                null,
             m('tr', m('td', keycap('?')), m('td', 'Show help')),
             )),
     buttons: [],
diff --git a/ui/src/frontend/keyboard_event_handler.ts b/ui/src/frontend/keyboard_event_handler.ts
index 6faae5e..cb94e2b 100644
--- a/ui/src/frontend/keyboard_event_handler.ts
+++ b/ui/src/frontend/keyboard_event_handler.ts
@@ -13,8 +13,9 @@
 // limitations under the License.
 
 import {Actions} from '../common/actions';
-import {Area} from '../common/state';
 import {featureFlags} from '../common/feature_flags';
+import {DEFAULT_PIVOT_TABLE_ID} from '../common/pivot_table_common';
+import {Area} from '../common/state';
 
 import {Flow, globals} from './globals';
 import {toggleHelp} from './help_modal';
@@ -25,7 +26,7 @@
 } from './scroll_helper';
 import {executeSearch} from './search_handler';
 
-const PIVOT_TABLE_FLAG = featureFlags.register({
+export const PIVOT_TABLE_FLAG = featureFlags.register({
   id: 'pivotTables',
   name: 'Pivot tables',
   description: 'Show experimental pivot table details tab.',
@@ -79,10 +80,10 @@
       moveByFocusedFlow('Backward');
     }
   }
-  if (down && 'p' === key && e.ctrlKey && PIVOT_TABLE_FLAG.get()) {
+  if (down && 'p' === key && !e.ctrlKey && PIVOT_TABLE_FLAG.get()) {
     e.preventDefault();
     globals.frontendLocalState.togglePivotTable();
-    const pivotTableId = 'pivot-table';
+    const pivotTableId = DEFAULT_PIVOT_TABLE_ID;
     if (globals.state.pivotTable[pivotTableId] === undefined) {
       globals.dispatch(Actions.addNewPivotTable({
         name: 'Pivot Table',
diff --git a/ui/src/frontend/pivot_table.ts b/ui/src/frontend/pivot_table.ts
index 88f02b6..70e87ae 100644
--- a/ui/src/frontend/pivot_table.ts
+++ b/ui/src/frontend/pivot_table.ts
@@ -19,7 +19,7 @@
   ColumnAttrs,
   PivotTableQueryResponse,
   RowAttrs,
-} from '../common/pivot_table_data';
+} from '../common/pivot_table_common';
 
 import {globals} from './globals';
 import {Panel} from './panel';
@@ -32,6 +32,7 @@
   row: RowAttrs;
   column: ColumnAttrs;
   rowIndices: number[];
+  expandedRowColumns: string[];
 }
 
 interface PivotTableRowAttrs {
@@ -39,6 +40,7 @@
   row: RowAttrs;
   columns: ColumnAttrs[];
   rowIndices: number[];
+  expandedRowColumns: string[];
 }
 
 interface PivotTableBodyAttrs {
@@ -46,6 +48,7 @@
   rows: RowAttrs[];
   columns: ColumnAttrs[];
   rowIndices: number[];
+  expandedRowColumns: string[];
 }
 
 interface PivotTableHeaderAttrs {
@@ -105,6 +108,10 @@
                    }
                  },
                  sortIcon) :
+               null),
+          (!isPivot && resp.totalAggregations !== undefined ?
+               m('.total-aggregation',
+                 `(${resp.totalAggregations[column.name]})`) :
                null)));
     }
     return m('tr', cols);
@@ -113,14 +120,26 @@
 
 class ExpandableCell implements m.ClassComponent<ExpandableCellAttrs> {
   view(vnode: m.Vnode<ExpandableCellAttrs>) {
-    const {pivotTableId, row, column, rowIndices} = vnode.attrs;
+    const {pivotTableId, row, column, rowIndices, expandedRowColumns} =
+        vnode.attrs;
     const pivotTable = globals.state.pivotTable[pivotTableId];
-    const expandIcon = row.isExpanded ? 'expand_less' : 'expand_more';
-    const spinnerVsibility = row.isLoadingQuery ? 'visible' : 'hidden';
-    const animationState = row.isLoadingQuery ? 'running' : 'paused';
+    let expandIcon = 'expand_more';
+    if (row.expandedRows.has(column.name)) {
+      expandIcon = row.expandedRows.get(column.name)!.isExpanded ?
+          'expand_less' :
+          'expand_more';
+    }
+    let spinnerVsibility = 'hidden';
+    let animationState = 'paused';
+    if (row.loadingColumn === column.name) {
+      spinnerVsibility = 'visible';
+      animationState = 'running';
+    }
+    const padValue = new Array(row.depth * 2).join(' ');
 
     return m(
-        'td',
+        'td.allow-white-space',
+        padValue,
         m('i.material-icons',
           {
             class: pivotTable.isLoadingQuery ? 'disabled' : '',
@@ -132,7 +151,8 @@
               if (value === undefined) {
                 throw Error('Expanded row has undefined value.');
               }
-              if (row.isExpanded) {
+              if (row.expandedRows.has(column.name) &&
+                  row.expandedRows.get(column.name)!.isExpanded) {
                 globals.dispatch(Actions.setPivotTableRequest({
                   pivotTableId,
                   action: 'UNEXPAND',
@@ -140,16 +160,18 @@
                     rowIndices,
                     columnIdx: column.index,
                     value,
+                    expandedRowColumns
                   }
                 }));
               } else {
                 globals.dispatch(Actions.setPivotTableRequest({
                   pivotTableId,
-                  action: 'EXPAND',
+                  action: column.isStackColumn ? 'DESCENDANTS' : 'EXPAND',
                   attrs: {
                     rowIndices,
                     columnIdx: column.index,
                     value,
+                    expandedRowColumns
                   }
                 }));
               }
@@ -170,26 +192,41 @@
 class PivotTableRow implements m.ClassComponent<PivotTableRowAttrs> {
   view(vnode: m.Vnode<PivotTableRowAttrs>) {
     const cells = [];
-    const {pivotTableId, row, columns, rowIndices} = vnode.attrs;
+    const {pivotTableId, row, columns, rowIndices, expandedRowColumns} =
+        vnode.attrs;
 
     for (const column of columns) {
       if (row.row[column.name] === undefined &&
-          row.expandableColumn === column.name) {
-        throw Error(`Row data at expandable column "${
-            row.expandableColumn}" is undefined.`);
-      } else if (row.row[column.name] === undefined) {
-        cells.push(m('td', ''));
-      } else if (row.expandableColumn === column.name) {
-        cells.push(m(ExpandableCell, {pivotTableId, row, column, rowIndices}));
-      } else {
-        let value = row.row[column.name]!.toString();
-        if (column.aggregation !== undefined) {
-          // Indenting the aggregations of expanded rows by 2 spaces.
-          value =
-              value.padStart(((rowIndices.length - 1) * 2) + value.length, ' ');
-        }
-        cells.push(m('td.allow-white-space', value));
+          row.expandableColumns.has(column.name)) {
+        throw Error(
+            `Row data at expandable column "${column.name}" is undefined.`);
       }
+      if (row.row[column.name] === undefined || row.row[column.name] === null) {
+        cells.push(m('td', ''));
+        continue;
+      }
+      if (row.expandableColumns.has(column.name)) {
+        cells.push(
+            m(ExpandableCell,
+              {pivotTableId, row, column, rowIndices, expandedRowColumns}));
+        continue;
+      }
+      let indentationLevel = 0;
+      let expandIconSpace = 0;
+      if (column.aggregation !== undefined) {
+        indentationLevel = rowIndices.length - 1;
+      } else {
+        indentationLevel = row.depth;
+        if (row.depth > 0 && column.isStackColumn) {
+          expandIconSpace = 3;
+        }
+      }
+      // For each indentation level add 2 spaces, if we have an expansion button
+      // add 3 spaces to cover the icon size.
+      let value = row.row[column.name]!.toString();
+      value = value.padStart(
+          (indentationLevel * 2) + expandIconSpace + value.length, ' ');
+      cells.push(m('td.allow-white-space', value));
     }
     return m('tr', cells);
   }
@@ -198,25 +235,27 @@
 class PivotTableBody implements m.ClassComponent<PivotTableBodyAttrs> {
   view(vnode: m.Vnode<PivotTableBodyAttrs>): m.Children {
     const pivotTableRows = [];
-    const {pivotTableId, rows, columns, rowIndices} = vnode.attrs;
+    const {pivotTableId, rows, columns, rowIndices, expandedRowColumns} =
+        vnode.attrs;
     for (let i = 0; i < rows.length; ++i) {
       pivotTableRows.push(m(PivotTableRow, {
         pivotTableId,
         row: rows[i],
         columns,
-        rowIndices: rowIndices.concat(i)
+        rowIndices: rowIndices.concat(i),
+        expandedRowColumns
       }));
-      if (rows[i].isExpanded) {
-        const expandedRows = rows[i].rows;
-        if (expandedRows === undefined) {
-          throw Error('Expanded row cannot have undefined rows');
+      for (const column of columns.slice().reverse()) {
+        const expandedRows = rows[i].expandedRows.get(column.name);
+        if (expandedRows !== undefined && expandedRows.isExpanded) {
+          pivotTableRows.push(m(PivotTableBody, {
+            pivotTableId,
+            rows: expandedRows.rows,
+            columns,
+            rowIndices: rowIndices.concat(i),
+            expandedRowColumns: expandedRowColumns.concat(column.name)
+          }));
         }
-        pivotTableRows.push(m(PivotTableBody, {
-          pivotTableId,
-          rows: expandedRows,
-          columns,
-          rowIndices: rowIndices.concat(i)
-        }));
       }
     }
     return pivotTableRows;
@@ -238,10 +277,16 @@
         pivotTableId,
         rows: resp.rows,
         columns: resp.columns,
-        rowIndices: []
+        rowIndices: [],
+        expandedRowColumns: []
       });
     }
 
+    const startSec = pivotTable.traceTime ? pivotTable.traceTime.startSec :
+                                            globals.state.traceTime.startSec;
+    const endSec = pivotTable.traceTime ? pivotTable.traceTime.endSec :
+                                          globals.state.traceTime.endSec;
+
     return m(
         'div.pivot-table-tab',
         m(
@@ -262,8 +307,9 @@
               (pivotTable.isLoadingQuery ? m('.pivot-table-spinner') : null),
               (resp !== undefined && !pivotTable.isLoadingQuery ?
                    m('span.code',
-                     `Query took ${Math.round(resp.durationMs)} ms`) :
-                   null)),
+                     `Query took ${Math.round(resp.durationMs)} ms -`) :
+                   null),
+              m('span.code', `Selected range: ${endSec - startSec} s`)),
             m('button',
               {
                 disabled: helper === undefined || pivotTable.isLoadingQuery,
diff --git a/ui/src/frontend/pivot_table_editor.ts b/ui/src/frontend/pivot_table_editor.ts
index 37f281d..64a8c67 100644
--- a/ui/src/frontend/pivot_table_editor.ts
+++ b/ui/src/frontend/pivot_table_editor.ts
@@ -13,6 +13,7 @@
 // limitations under the License.
 
 import * as m from 'mithril';
+import {isStackPivot} from '../common/pivot_table_common';
 
 import {globals} from './globals';
 import {hideModel} from './modal';
@@ -41,7 +42,9 @@
     for (const {tableName, columns} of helper.availableColumns) {
       const options = [];
       for (const column of columns) {
-        options.push(m('option', {value: column, key: column}, column));
+        // We can't aggregate a stack column.
+        const hidden = !helper.isPivot && isStackPivot(tableName, column);
+        options.push(m('option', {value: column, key: column, hidden}, column));
       }
       columnOptionGroup.push(m('optgroup', {label: tableName}, options));
     }
diff --git a/ui/src/frontend/pivot_table_helper.ts b/ui/src/frontend/pivot_table_helper.ts
index a7f4409..936a2d7 100644
--- a/ui/src/frontend/pivot_table_helper.ts
+++ b/ui/src/frontend/pivot_table_helper.ts
@@ -15,9 +15,10 @@
 import {Actions} from '../common/actions';
 import {
   AggregationAttrs,
+  isStackPivot,
   PivotAttrs,
   TableAttrs
-} from '../common/pivot_table_data';
+} from '../common/pivot_table_common';
 import {globals} from './globals';
 
 export function isAggregationAttrs(attrs: PivotAttrs|AggregationAttrs):
@@ -92,6 +93,12 @@
   // Dictates if the selected indexes refer to a pivot or aggregation.
   togglePivotSelection() {
     this._isPivot = !this._isPivot;
+    if (this._isPivot === false) {
+      const selectedColumn = this.getSelectedPivotTableColumnAttrs();
+      if (isStackPivot(selectedColumn.tableName, selectedColumn.columnName)) {
+        this._selectedColumnIndex = Math.max(0, this._selectedColumnIndex - 1);
+      }
+    }
   }
 
   setSelectedPivotTableColumnIndex(index: number) {
@@ -131,10 +138,14 @@
     if (!this._isPivot) {
       const aggregation =
           this.availableAggregations[this._selectedAggregationIndex];
-      return {tableName, columnName, aggregation};
+      return {tableName, columnName, aggregation, order: 'DESC'};
     }
 
-    return {tableName, columnName};
+    return {
+      tableName,
+      columnName,
+      isStackPivot: isStackPivot(tableName, columnName)
+    };
   }
 
   // Adds column based on selected index to selectedPivots or
@@ -148,21 +159,28 @@
   // selectedAggregations if it doesn't already exist, remove otherwise.
   updatePivotTableColumnOnColumnAttributes(columnAttrs: PivotAttrs|
                                            AggregationAttrs) {
-    let storage: Array<PivotAttrs|AggregationAttrs>|undefined;
+    let storage: Array<PivotAttrs|AggregationAttrs>;
     let attrs: PivotAttrs|AggregationAttrs;
     if (isAggregationAttrs(columnAttrs)) {
+      if (isStackPivot(columnAttrs.tableName, columnAttrs.columnName)) {
+        throw Error(
+            `Stack column "${columnAttrs.tableName} ${
+                columnAttrs.columnName}" should not ` +
+            `be added as an aggregation.`);
+      }
       storage = this._selectedAggregations;
       attrs = {
         tableName: columnAttrs.tableName,
         columnName: columnAttrs.columnName,
         aggregation: columnAttrs.aggregation,
-        order: 'DESC'
+        order: columnAttrs.order
       };
     } else {
       storage = this._selectedPivots;
       attrs = {
         tableName: columnAttrs.tableName,
-        columnName: columnAttrs.columnName
+        columnName: columnAttrs.columnName,
+        isStackPivot: columnAttrs.isStackPivot
       };
     }
     const index =
@@ -192,7 +210,7 @@
   // Moves target column to the requested destination.
   reorderPivotTableDraggedColumn(
       isPivot: boolean, targetColumnIdx: number, destinationColumnIdx: number) {
-    let storage;
+    let storage: Array<PivotAttrs|AggregationAttrs>;
     if (isPivot) {
       storage = this._selectedPivots;
     } else {
@@ -207,7 +225,7 @@
           `Destination column index "${destinationColumnIdx}" out of bounds.`);
     }
 
-    const targetColumn = storage[targetColumnIdx];
+    const targetColumn: PivotAttrs|AggregationAttrs = storage[targetColumnIdx];
     storage.splice(targetColumnIdx, 1);
     storage.splice(destinationColumnIdx, 0, targetColumn);
   }
diff --git a/ui/src/frontend/pivot_table_helper_unittest.ts b/ui/src/frontend/pivot_table_helper_unittest.ts
index 6c3ae29..2f45b1f 100644
--- a/ui/src/frontend/pivot_table_helper_unittest.ts
+++ b/ui/src/frontend/pivot_table_helper_unittest.ts
@@ -12,14 +12,15 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-import {TableAttrs} from '../common/pivot_table_data';
+import {SLICE_STACK_COLUMN, TableAttrs} from '../common/pivot_table_common';
 import {PivotTableHelper} from './pivot_table_helper';
 
 const AVAILABLE_COLUMNS: TableAttrs[] =
-    [{tableName: 'slice', columns: ['id', 'type', 'dur']}];
+    [{tableName: 'slice', columns: ['id', 'type', 'dur', SLICE_STACK_COLUMN]}];
 const ID_COL_IDX = 0;
 const TYPE_COL_IDX = 1;
 const DUR_COL_IDX = 2;
+const STACK_COL_IDX = 3;
 
 const AVAILABLE_AGGREGATIONS = ['SUM', 'AVG'];
 const SUM_AGG_IDX = 0;
@@ -35,10 +36,9 @@
   helper.setSelectedPivotTableColumnIndex(ID_COL_IDX);
 
   helper.updatePivotTableColumnOnSelectedIndex();
-  expect(helper.selectedPivots).toEqual([{
-    tableName: 'slice',
-    columnName: 'id',
-  }]);
+  expect(helper.selectedPivots).toEqual([
+    {tableName: 'slice', columnName: 'id', isStackPivot: false}
+  ]);
 
   helper.updatePivotTableColumnOnSelectedIndex();
   expect(helper.selectedPivots).toEqual([]);
@@ -91,13 +91,13 @@
   helper.updatePivotTableColumnOnSelectedIndex();
 
   expect(helper.selectedPivots).toEqual([
-    {tableName: 'slice', columnName: 'id'},
-    {tableName: 'slice', columnName: 'type'}
+    {tableName: 'slice', columnName: 'id', isStackPivot: false},
+    {tableName: 'slice', columnName: 'type', isStackPivot: false}
   ]);
   helper.reorderPivotTableDraggedColumn(true, 0, 1);
   expect(helper.selectedPivots).toEqual([
-    {tableName: 'slice', columnName: 'type'},
-    {tableName: 'slice', columnName: 'id'}
+    {tableName: 'slice', columnName: 'type', isStackPivot: false},
+    {tableName: 'slice', columnName: 'id', isStackPivot: false}
   ]);
 });
 
@@ -109,8 +109,12 @@
 
 test('Select column based on attributes', () => {
   const helper = createNewHelper();
-  helper.selectPivotTableColumn(
-      {tableName: 'slice', columnName: 'dur', aggregation: 'AVG'});
+  helper.selectPivotTableColumn({
+    tableName: 'slice',
+    columnName: 'dur',
+    aggregation: 'AVG',
+    order: 'DESC'
+  });
   expect(helper.isPivot).toEqual(false);
   expect(helper.selectedColumnIndex).toEqual(DUR_COL_IDX);
   expect(helper.selectedAggregationIndex).toEqual(AVG_AGG_IDX);
@@ -118,8 +122,18 @@
 
 test('Selecting a column with invalid attributes results in an error', () => {
   const helper = createNewHelper();
-  expect(() => helper.selectPivotTableColumn({
-    tableName: 'foo',
-    columnName: 'bar',
-  })).toThrow('Selected column "foo bar" not found in availableColumns.');
+  expect(
+      () => helper.selectPivotTableColumn(
+          {tableName: 'foo', columnName: 'bar', isStackPivot: false}))
+      .toThrow('Selected column "foo bar" not found in availableColumns.');
+});
+
+test('Selecting stack column sets isStackPivot', () => {
+  const helper = createNewHelper();
+  helper.setSelectedPivotTableColumnIndex(STACK_COL_IDX);
+
+  helper.updatePivotTableColumnOnSelectedIndex();
+  expect(helper.selectedPivots).toEqual([
+    {tableName: 'slice', columnName: SLICE_STACK_COLUMN, isStackPivot: true}
+  ]);
 });
diff --git a/ui/src/frontend/record_page.ts b/ui/src/frontend/record_page.ts
index 7b957d9..ec62542 100644
--- a/ui/src/frontend/record_page.ts
+++ b/ui/src/frontend/record_page.ts
@@ -29,9 +29,10 @@
   isAndroidTarget,
   isChromeTarget,
   isCrOSTarget,
-  RecordingTarget
+  MAX_TIME,
+  RecordingTarget,
+  RecordMode
 } from '../common/state';
-import {MAX_TIME, RecordMode} from '../common/state';
 import {AdbOverWebUsb} from '../controller/adb';
 
 import {globals} from './globals';
@@ -43,6 +44,7 @@
   DropdownAttrs,
   Probe,
   ProbeAttrs,
+  SelectAllNoneDropdown,
   Slider,
   SliderAttrs,
   Textarea,
@@ -733,28 +735,19 @@
   });
 
   return m(
-      'div',
-      m(Dropdown, {
-        cssClass: '.singlecolumn',
+      '.chrome-categories',
+      SelectAllNoneDropdown({
+        categories: defaultCategories,
         title: 'Additional Chrome categories',
-        options: defaultCategories,
-        set: (cfg, val) => cfg.chromeCategoriesSelected = val,
         get: (cfg) => cfg.chromeCategoriesSelected,
-        sort: (a, b) => {
-          return a.localeCompare(b);
-        },
-      } as DropdownAttrs),
-      m(Dropdown, {
-        cssClass: '.singlecolumn',
+        set: (cfg, val) => cfg.chromeCategoriesSelected = val,
+      }),
+      SelectAllNoneDropdown({
+        categories: disabledByDefaultCategories,
         title: 'Additional high overhead Chrome categories',
-        options: disabledByDefaultCategories,
-        set: (cfg, val) => cfg.chromeHighOverheadCategoriesSelected = val,
         get: (cfg) => cfg.chromeHighOverheadCategoriesSelected,
-        sort: (a, b) => {
-          return a.localeCompare(b);
-        },
-      } as DropdownAttrs),
-  );
+        set: (cfg, val) => cfg.chromeHighOverheadCategoriesSelected = val,
+      }));
 }
 
 function AdvancedSettings(cssClass: string) {
diff --git a/ui/src/frontend/record_widgets.ts b/ui/src/frontend/record_widgets.ts
index 4f71447..af3e384 100644
--- a/ui/src/frontend/record_widgets.ts
+++ b/ui/src/frontend/record_widgets.ts
@@ -340,3 +340,46 @@
     );
   }
 }
+
+// Dropdown augmented with select all/none buttons
+export function SelectAllNoneDropdown(args: {
+  categories: Map<string, string>,
+  title: string,
+  get: Getter<string[]>,
+  set: Setter<string[]>,
+}) {
+  return m(
+      '.categories-list',
+      m('button.config-button',
+        {
+          onclick: () => {
+            const config = produce(globals.state.recordConfig, draft => {
+              args.set(draft, Array.from(args.categories.keys()));
+            });
+            globals.dispatch(Actions.setRecordConfig({config}));
+          }
+        },
+        'All'),
+      m('button.config-button',
+        {
+          onclick: () => {
+            const config = produce(globals.state.recordConfig, draft => {
+              args.set(draft, Array.from([]));
+            });
+            globals.dispatch(Actions.setRecordConfig({config}));
+          },
+        },
+        'None'),
+      m('br'),
+      m(Dropdown, {
+        cssClass: '.singlecolumn',
+        title: args.title,
+        options: args.categories,
+        set: args.set,
+        get: args.get,
+        sort: (a, b) => {
+          return a.localeCompare(b);
+        },
+      } as DropdownAttrs),
+  );
+}